Александр Павлюк, так если по такой логике алиасить поле id у второй сущности например на idSmth, то и в структуре в теге надо будет такое же указать, а если везде алиасить поле айди, то это уже больше на костыли похоже, а ведь там еще могут повторяться другие поля типа name и прочих. Сейчас я просто использую звездочку в запросе и эти поля возвращаются в datagrip с префиксом таблички, которая сджоинилась, но толку от этого все равно не много при маппинге. Но на самом деле я еще не так подробно изучил структуру ответа pgx, возможно смогу из ее недр достать список запрашиваемых полей и через рефлексию как то маппить все это дело, чтобы приблизиться к универсальности и переиспользуемости решения
- Ну вот я все больше убеждаюсь, что все используют кастомные мапперы, значит скорее всего и мне придется)
- по поводу sqlc - к сожалению не могу использовать, потому что у pgx есть солидное преимущество в том, что он поддерживает тот функционал постгри, который не поддерживают ни sqlc ни sqlx и иже с ними.
- неее, орм это харам, если бы хотел на орм писать, то оставался бы на пхп :D
Александр Павлюк, вот сканить в структуру как в sqlx я могу только простые запросы, собственно так и делаю, а вот с джоинами маппер scany например уже ругается, потому что у двух сущностей есть поле id и он не может это смаппить в плоскую структуру из-за конфликта, а в структуру с вложенностями тупо не умеет. Поэтому наверное да, вы правы, кастомные мапперы это наш путь) просто думал вдруг есть какое то универсальное решение, которое уже отлажено и проверено временем
mayton2019, у меня сейчас так и есть) проблема только в маппинге селектов с джоинами в структурки голанга. Делать это руками геморрно, а библиотек подходящих нет, чтобы прям маппили в структуры со вложенностями
Александр Павлюк, так вот с джоинами выдача получается не 1 строка = 1 сущность, а для одной сущности может быть 5 строк, потому что у игры может быть несколько раундов например. И получается если писать свой маппер, то недостаточно проходить итеративно по строчкам, создавать структуру и класть в слайс, надо еще держать мапку индексов в результативном слайсе уже смапленных структур-игр, чтобы знать, куда положить очередной смапленный раунд. Это еще я не говорю про то, что pgx возвращает результат каждой строки как обезличенный слайс пустых интерфейсов, то есть надо вспомнить какое значение к какому полю относится и еще привести его к гошному типу, обработав ошибки, а таких полей 30+. Все это кажется не столь уж простым и на каждом этапе множатся возможности ошибиться и все это только для одной выдачи :\
Спасибо за развернутый ответ! Работаю в windows, про winscp не знал, посмотрю поподробнее. На счет "прав на запись к исходному коду" не совсем понял. На данном этапе у меня сервер может писать в корень веб-приложения и любые вложенные папки, а что такое рантайм директории не очень понимаю. И еще можно ли разъяснить про девелоперский и прочие инстансы, не силен в терминологии?:) Ну то есть сейчас мой сервер это и девелоп и прод, так как приложение больше делаю для себя
Ну так вот сейчас я добавил админа и www-data (тоже юзер или процесс, точно не уверен) в группу к фтп пользователю, но тогда мне надо повысить права группы на директории и файлы, не опасно ли это? Дают ли какие-нибудь проблемы с безопасностью в перспективе права 775 и 664 вместо 755 и 644? Мне как новичку не видится особой угрозы, но я могу ошибаться, поэтому лучше подстраховаться мнением уже опытного коллеги. А насчет гита, вот изменю я одно слово в коде и как коммит такой обозвать? А потом же вся эта куча бесполезных по большей части коммитов утечет в репозиторий github, а если еще и при устройстве на работу дать ссылку на такую репу, то совсем со стыда сгореть можно:)
ProjectSoft, Спасибо, получилось) Но все же, это косяк процентов как единицы измерения или же с помощью процентов это можно как-то сделать? До css3 как то же должны были с этой задачей справляться.
то есть если взять мой случай, то в папке libs/App/Controllers хранились бы вспомогательные классы, используемые в контроллерах, а в libs/App/Models те, что используются в каких либо моделях, как то так?