Комментарии 11
Спасибо за статью. В закладки.
+2
Сначала даём возможность фронту (и всем-всем-всем) нагружать бэк слабо контролируемыми запросами, потом мужественно пытаемся решить эту проблему.
Экономия на написании нормальных API эндпоинтов с предсказуемой логикой выливается в издержки по дальнейшему окостыливанию наколеночного GraphQL поделия.
P.S. требования 'гибкости' продукта обычно произрастают из хренового планирования, как бизнес- так и технологической части. Конечно, зачем тратиться на аналитиков и прорабатывать модели и архитектуру, когда можно захреначить в продакшен вот уже завтра (конкуренты же так и ходят стаями!), «а там посмотрим».
Экономия на написании нормальных API эндпоинтов с предсказуемой логикой выливается в издержки по дальнейшему окостыливанию наколеночного GraphQL поделия.
P.S. требования 'гибкости' продукта обычно произрастают из хренового планирования, как бизнес- так и технологической части. Конечно, зачем тратиться на аналитиков и прорабатывать модели и архитектуру, когда можно захреначить в продакшен вот уже завтра (конкуренты же так и ходят стаями!), «а там посмотрим».
+2
Интересно, я один как идиот тыкал на «play» на этой картинке, чтобы воспроизвести видео?
+5
Статья понравилась, хороший обзор. Лишний раз убедился в правильности выбора между двух "зол". Правда я выбрал зло от гугл, https://grpc.io/. Рекомендую приглядеться.
-2
кстати в коде загрузчика данных есть один момент, притом важный, о котором кстати не сказано ни слова, это
отдать список юзеров нужно в строго том же порядке что и получили список id, так же если для id нет данных в бд, нужно обязательно вернуть nil, иначе сломается ответ, об этом написано в оригинальной библиотеке от facebook портом на го которой является dataloaden
for i, id := range ids {
users[i] = userById[id]
i++
}
отдать список юзеров нужно в строго том же порядке что и получили список id, так же если для id нет данных в бд, нужно обязательно вернуть nil, иначе сломается ответ, об этом написано в оригинальной библиотеке от facebook портом на го которой является dataloaden
0
Здесь выполняются лишь два запроса к базе данных, в результате все теперь счастливы
А если нужно JOIN, а не 2 последовательных запроса, то как этого добиться?
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
GraphQL и Golang