Search
Write a publication
Pull to refresh

Comments 11

Пожалуйста, не выкладывайте пост с кодом претендующим на что то продакшен реди, без тестов.

А так же задумайтесь, почему до сих пор нет такой обертки, которую вы изобрели. Или есть?

Согласен. Не стоит пренебрегать тестами. К тому же они выступают частью документации. В golang даже есть Example выполняющиеся как тесты.

Признаюсь, тесты я временно засунул в 'TODO' 😅. Но теперь, с вашей критикой, точно исправлюсь — следующий PR будет с тестами! Благодарю!

Вечером как раз ровно на это же сетовал, магия. Без тестов действительно сложновато все тонкости реализации понять, в документации интересующего момента тоже не нашел. У меня случай, когда поля типа вложенной структуры обязательные, а само поле с этим типом опциональное. Вообще-то было бы неплохо, чтобы любители расписывать преимущества вместе с тем представляли список хотя бы самим известных недостатков. Торопиться внедрять ради удобства в чем-то одном, чтобы потом нарваться на что-то другое, очень не хочется.

Pgx с пятой версии поддерживает сканирование в структуры по тегам

См. pgx.CollectRows

а для более ранних есть scany. но изобретать велосипеды интереснее, видимо

В проекте reflect и требуются тесты производительности, о чем сказано было в прошлой статье (кстати еще и в issue висит такой же запрос). Автор слышать это не хочет, а производительность у нас звездочками, а не юнит тестами которые можно запустить у себя и проверить.

На тему самих инструментов замещающих кодогенерацию под конкретную задачу, в век различных чатботов которые решают эту продлему очень хорошо - считаю это ненужная прокладка, которая очень часто ломает производительность

На тему рефлекта, как и ансейф миллион и одна статья с глубоким разбором. И общий посыл этих статей: «вы должны знать что вы делаете и зачем» и данные пакеты не являются пакетами которые надо использовать чтобы упростить себе жизнь.

В pgx есть различные CollectRow, CollectRowBy... В простых случаях их более чем достаточно. Для моделей более сложной вложенностью есть pgxscan, который использует под капотом scany и делает все тоже самое, что написал автор.

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

Плюс написание тегов для вложенных структур через нижнее подчёркивание это проблема, так как в корневой структуре вполне могут быть (и есть) поля с пересекающимся неймингом. В том же pgxscan это решено гораздо умнее.

https://github.com/ManyakRus/crud_generator
кодогенератор делает код для CRUD операций,
а также для сложных объектов - заполняет вложенные структуры из внешних ключей.

Так ещё лучше :-)

Sign up to leave a comment.

Articles