Павел
Какой нить интерпайз, где одни пишут одно а другое другое - не берем
Иван
Павел
контроль
Над 2 полями, которые я уже увижу перейдя в сам sql сервис? Много мне тут нужно контролить
Иван
ну и в доку автогенерируемую дто попадёт
Иван
Над 2 полями, которые я уже увижу перейдя в сам sql сервис? Много мне тут нужно контролить
в базе источник полей а то что на выход такие поля, ты будешь видеть в контроллере и в твиге и ещё где нибудь
Павел
в апи, профита не вижу
Nikolay
в апи, профита не вижу
Генерация доки
Konstantin
И то и другое. Лишняя прокладка ввиде класса
это вы сами решаете, что вам дороже: время долбокодера, у которого руки отсохнут написать дата-класс из трёх полей или качество проекта. по такому же принципу можно и тесты не писать, и доки, и вообще проектированием особо не заниматься, надо ведь код колбасить
Павел
Генерация доки
Я доку могу руками написать, какая разнциа писать в дто (но еще и дто) или отдельно
Павел
Профит должен быть осязаемый
Nikolay
Я доку могу руками написать, какая разнциа писать в дто (но еще и дто) или отдельно
Руками выше шанс допустить ошибку и может неактуально стать
Павел
Руками выше шанс допустить ошибку и может неактуально стать
Да ладно, а аннотации нельзя с ошибками написать
Konstantin
Я доку могу руками написать, какая разнциа писать в дто (но еще и дто) или отдельно
дока руками - говно. она всегда будет отставать, врать и забываться. дока (она же схема апи) должна быть автогенерируема из исходного кода
Павел
Павел
В контроллере тоже анотации
Иван
ещё и в аннотации
Konstantin
Да ладно, а аннотации нельзя с ошибками написать
не совсем понимаю, вы пришли спрашивать как лучше или нам рассказать что "и так сойдет"?
Konstantin
если нас научить, то спасибо, это полезно, но нет времени сейчас
Konstantin
если послушать про нормальные подходы - задавайте предметные вопросы, а не "не вижу проблем с качеством"
Павел
Konstantin
так и есть
Павел
так и есть
ЧСВ выше гор
Konstantin
да нет же, это не моё лично мнение, это принятые подходы. камон, я не говорю "так правильно потому что я сказал", так правильно потому что есть этому куча аргументов "за"
Иван
отдельные реквест дто тоже не нужны они сразу прямо должны приходить в виде внутренних команд
Konstantin
если хотите, можно говорить предметно о том, почему хорошо применять те или иные подходы. если они не подходят конкретно вашему проекту здесь и сейчас (например, нет времени или низкая квалификация разработчика) - всё ок, делайте как вам удобнее, вам в любом случае виднее. но спорить с общепризнанными практиками - дурная затея, вы на себе крест, скорее, ставите
Иван
Это обычно данные из реквеста маппятся на дто?
да, в реквесте должно быть ровно то, что потом будет скормлено хендлеру не нужно отдельных реквест дто и комманд дто
Павел
Тем более что с прокладкой не ведется работы
Konstantin
если задуматься, всё веб-программирование - это про "переложить базу в джсон и обратно", если так рассуждать, то действительно надо всё выкинуть и класть $_POST в базу через mysql_query или как там
Nikolay
да, в реквесте должно быть ровно то, что потом будет скормлено хендлеру не нужно отдельных реквест дто и комманд дто
Не совсем понял на уровне реализации как это выглядит. Есть например handler, в который прилетают данные, они маппятся на команду (дто), которая валидируется и отправляется дальше. Примерно так или по-другому?
Павел
Пока мне профит не понятен, сорри
Konstantin
Во всем должен быть профит
профит навскидку в 1) САМО(!!!!!!!!)документируемость 2) тестируемость 3) понятный контракт
Павел
Да, я сам юзаю модели, когда мне понятен профит, а когда надо из бд сразу в json - лишняя работа, имхо
Павел
Если бы вы мне сказали, что дока без анотаций я бы и спорить не стал
Павел
Что парсятся свойства
Konstantin
ручная дока - это когда вы swagger.json пишете руками, от и до
Konstantin
вся остальная - это самодокументируемая
Иван
ручная дока - это когда вы swagger.json пишете руками, от и до
когда от и до пишется аннотация к контроллеру - это тоже не самодокументация
Павел
когда от и до пишется аннотация к контроллеру - это тоже не самодокументация
Так в любом случае придется писать (если речь идет про нелмио). Вопрос лишь в том, в контроллере полностью или часть уйдет в модели
Павел
я проклял всё, когда писал сам
Ну у меня опыт и там и там был, но честно больше боли мне доставляли рид модели, куда их положить, как назвать, зачем пишу вообще (опять таки надо правильно промапить запрос из БД на модель (т.е. свойства чтобы совпали), надо за этим следить). Навернео на вкус и цвет.
Мария
Аннотации phpstorm неплохо генерит вроде
Павел
Хотя тоже вопрос, как лучше сложить. Например отчет, чем не рид модель, но в тоже время там должен быть функционал формирования xml. Или отчет отдельно, но он использует readmodel, тоже малеха странно. Папчки мамочки такое себе
Павел
в папку readmodel
Больше вопрос в нейминге классов, если упоромться в оптимизацию. Tag, ShortTag, TagWithHueg
Павел
Модели кайфово использовать, где потом они юзаются. Или наример автокомплит. А чтобы просто перегнать в json сериалайзером- ну такое себе. Если кому то доку удобнее - ну ок. Но типо что это все один единственный путь - остальное гавно. Ну кек.
Vlad
так не используй serializer на респонсе
Павел
Павел
профит навскидку в 1) САМО(!!!!!!!!)документируемость 2) тестируемость 3) понятный контракт
Про тесты вот немного интересно. Вы можете автоматом сопоставить в функиональном тесте респонсДТО с json из клиента?
Иван
так не используй serializer на респонсе
буэ какое-то пишем приватное поле, а потом аннотацию к нему, чтобы сериализатор его выплюнул
Иван
а если там камелкейс, то надо специально написать, чтобы остался камелкейс
Иван
public readonly))
так точно, я про то, как некоторые думают, как правильно писать
Vlad
public readonly))
не аннотацию,а геттер)
Иван
не аннотацию,а геттер)
п - приватность
Vlad
ну а чо) иммутабельность как то надо сохранять до 8.1,можно конечно псалмом,а можно геттерами
Иван
ну а чо) иммутабельность как то надо сохранять до 8.1,можно конечно псалмом,а можно геттерами
это какой-то абсурд ещё один как можно случайно присвоить в ридмодель? не хотел не хотел, а присвоил?
Иван
оно по дизайну должно быть так, чтобы вне фетчера даже в голову не пришло смутировать
Иван
это как венгерская нотация а давайте всем писать префикс типа
Иван
а зачем? а вдруг кто-то перепутает
Павел
это как венгерская нотация а давайте всем писать префикс типа
Ну возможно в питоне каком то смысл есть, чисто что бы не дергать не менять лишнего. Там же вроде нет приватки
Konstantin
Это из раздела упороться по архитектуре.
если есть возможность что-то сделать - это будет сделано. особенно долбокодерами, которым "резко сейчас" (а не "правильно") надо решить задачу. полезут куда угодно. поэтому и нужно максимально ограничивать технические возможности что-то сделать - финальные классы, иммутабельность, приватность, константность ссылок итд итп
Иван
но обсираться на нём не перестанут
Konstantin
ну та же симфони примерно так и написана
Konstantin
оправдано или нет - сложно сказать, но если посмотреть на то, что люди делают с джанго, рором или жсом - волосы на жопе шевелятся зачастую. пропатчить глобальный корневой объект фреймворка потому что вот здесь тебе в формочке нужна была кнопка в другом месте? - пожалуйста!
Konstantin
а потом это очень быстро становится неподдерживаемым и необновляемым клубком