Поискал. По сути это те же макросы, но для макросов запилили, а для этого нет. Загадочно.
Если бы была кнопень "развернуть преобразования" в среде разработки, я был бы доволен. Надо поискать, может есть такая. Макросы можно разворачивать нередко.
Например есть енам ошибки. Он реализует трейт фром для кучи других и есть обертка, к которой этот енам автоматом можно привести. В итоге я могу в коде сразу вызвать метод обертки. Компилер поймет, что ошибку А можно привести к Б, а Б к В, а у В есть метод context(). В итоге в коде написано только чтото.context() все остальное магия компилятора и автоматического дерефа и прочих конвертаций типа фром. Я привык к тому, что всю цепочку легко отследить и пройти по шагам...тут же иногда не так.
Главным образом эти вещи вызывают проблемы потому, что ошибки показываются в таких случаях где попало. Но в целом я почти привык, просто хочется найти методику быстрого разрешения подобного.
Потому, что до этого инто может пройти три дерефа и потом еще дрянь какая, и компилер знает, что все норм, а показать где не может. Это прям бесит. Плюс я плаваю в сложных случаях когда ограничений и времен жизни сразу много, вроде и не сложно, но как-то пока не привычно.
Мне пока только не нравится то, что иногда я не понимаю где искать трейты. Написано into() а во что оно и как превратится, хз, приходится не просто нажать на методе и попасть в имплементацию для структуры, а открывать структуру (иногда еще поди пойми какую) и там просматривать код в поисках. Не найду никак быстрый способ искать такое.
Я прям горжусь чуваком
Правда как без мидлевары логировать тело запроса не нашел, а писать ее не хочу, уж очень она кривая выходит. Может и обойдусь...или найду получше чего.
я даже нашел как логировать 404 запросы стандартным способом и выкинул свою мидлевару, ради этого написанную. Изучаю постепенно экосистему.
Базовые эндпоинты, которые я для примера делал, два штуки, стали короче, модели стали короче, все стало нагляднее и проще, не надо скакать по коду куда попало. Вот это уже похоже на рабочий инструмент, который можно использовать, а не страдать. Плюс теперь у проекта нет внешних зависимостей совсем. Ошибки только страшноватые, но это потом, уже от жиру можно. Пока надо бы еще пару эндпоинтов запилить. Но уже не сегодня.
Маппинги из базы стали тоже простыми. В базу я не использую так как удобнее видеть, что и как берется, а написать их быстро так как автодополнение есть. Вот из базы удобнее что бы само делалось что бы не писать бесконечные entity.get("field_name"). С новым валидатором и прочими штуками все теперь удобно и быстро, без лишней писанины. При этом банальности всякие на моделях генерятся сами собой. Красотень, вот теперь я доволен и это похоже на то, что надо.
В итоге чистка проходит пока успешно, кода становится банального все меньше. Заменил сложные типы своими простыми, а для них сериализаторы получаются автоматом, собственно как и валидация тоже либо сама, либо совсем просто.
Медитирую, недавно впервые играл в d&d, люблю смотреть научпоп лекции в ютубе, гулять. По субботам хожу в баню потом сижу в кондитерской и читаю. Обожаю музеи современного искусства и особенно импрессионистов. Предпочту посидеть у озера и посмотреть на горы. Этот инстанс мой. Еще есть канал https://youtube.com/@user-tc9eq9pz2q?si=uPmChHjU3UyZIDET
Политическая платформа - гороскопианец в рамках метакратии
Религия - вера в макаронного монстра
Космополит безродный.
Местоимение они/их, царь я или не царь!?