Pull to refresh

Comments 6

Очень круто. Хорошая статья. Спасибо ​

В Ламоде используется гораздо более продвинутый генератор, чем описанный здесь. Генерация (и главное перегенерация без поломки рабочего кода) всех ендпойнтов, валидации данных, сервисы, модели — из обычной swagger-спецификации.

И вопрос вдогонку — почему GORM? Неужели достаточно таких примитивных запросов к базе, как описаны в коде? В сложных проектах я обычно встречал DataMapper / QueryBuilder для работы с БД.
Добрый день! Да, у нас так же используются более сложные генераторы, чем описанный в статье.
Хотелось упростить пример, сократить логику, чтобы показать как работать с кодогенерацией на простом примере.

В проекте команды несколько различных подходов построения запросов, ODATA, RQL, QueryBuilder. GORM позволяет загружать/сохранять из репозиториев целый агрегат, включая связные сущности. Это удобно при использовании подхода DDD и работе через агрегаты. В случае запросов чтения используем отдельную модель для чтения, там уже либо GORM, либо что-то другое, какой команде как удобно.

Ваша кодегенерация из статьи реализуется простым добавлением параметризированного шаблона в той же IDE Goland. Пока это лично мне видется как попытка сделать то что уже было сделанно и интегрированно в широко известную среду разработки.

Согласен с тем, что пример из статьи быстрее и проще реализовать через шаблоны в IDE.
Данный пример был сделан для упрощения понимания кодогенерации, чтобы показать, что это не сложно.

У нас в организации используются более сложные кодогенераторы, которые через IDE шаблоны было бы сделать проблематично.

Нет бы сразу Common Lisp использовать и не изобретать с нуля то, что известно человечеству уже лет 50.

Sign up to leave a comment.