GraphQL, стоит ли использовать для социальной сети?
С одним товарищем пишем (в начальной разработке) социальную сеть. Сегодня он мне сказал о таких штуках, как GraphQL и neo4j.
Как вы считаете, стоит ли их использовать? И какие подводные камни будут, если мы планируем сделать соц. сеть, как, например, ВК, со своим API.
PS: Планируется делать как учебный проект. Если выйдет что-то стоящее, то естественно будем продвигать)
Напишу тебе пару своих мыслей, как человек который ежедневно использует GraphQL в связке с реактом. Технология классная, очень удобная и понятная (не зря же её Facebook использует). Но есть и свои минусы (https://www.howtographql.com/advanced/4-security/).
Если у вас есть в запасе пару недель, что вы готовы потратить на изучение в целом технологии, на изучение схемы что строится на бэке, на то что бы понять как вы со всем этим будете работать на фронте, то используйте, все упирается во время.
P.S. использовать REST после GraphQL желания нет...
если вы серьёзно, то пишите на том, что знаете. Рабочая лошадка лучше архитектуры в вакууме, которая не работает.
а если проект учебный, то используйте, хотя бы для кругозора.
"И какие подводные камни будут"
1) слишком развитые конкуренты.
Дмитрий Кузнецов, инструменты решают проблемы. Какую проблему вы решаете? Взаимодействие с приложением? Подойдет хоть REST, хоть GraphQL. REST хорошо описан, есть куча документации, как это сделать, и много проектов его уже используют. GraphQL - дольше и муторнее, меньше примеров использования, но теоретически для больших, заумных апишек он лучше.
Вот только у вас ещё нет проблемы больших заумных апишек, и хорошо если вы когда-нибудь разовьетесь настолько, что сложность апи станет проблемой. На старте такой проблемы нет, поэтому я бы не рекомендовал закладывать в фундамент то, что будет через n-лет.
решайте проблемы по мере возникновения.
если на старте у вас уже сотня сущностей для апи, используйте GraphQL. Иначе REST.
Потому, что вам это не нужно. Реляционки, типа MySQL/PostgreSQL вам будет достаточно. Когда разрастетесь до команды в хотя бы 50 человек и бизнес потребует - смотрите в сторону GraphQL и neo4j.
Facebook успешно использует у себя MySQL + GraphQL. Уверен что в ближайшее время все больше и больше веб приложений будут релизовывать свои API на базе GraphQL.