Продолжаю работу с ментатами 🤓
Я больше не хочу экспериментировать с реорганизацией своего проекта и в очередной раз просить агента перетащить модуль из одного пакета в другой. Гораздо лучше правильно организовать этот и все следующие проекты в виде направленного ациклического графа модулей и зависимостей...
Компания активно продвигает подход: сначала AI, потом все остальное, с чем мне пока сложно согласиться. Если задача занимает 2 минуты времени, то делаю ее на опыте без участия AI, пока не понял, есть ли в этом проблема...
Чтобы AI делал работу за программиста - это иллюзия, нигде такого нету, если совсем не примитивные рутинные задачки. Это к сожалению ещё одна очередная тема, доказать менеджерам абсурдность которой невозможно. Разве что втягивать их в конкретику через рекомендацию "ну если AI может всё сделать, вот и делайте с ним сами".
Мой код почти полностью соответствует примеру Говнокод / Спагетти / Школьный стиль. За несколькими исключениями имеет те же плюсы и минусы...
TDD до сих пор не привычный подход для меня подход и если он эффективен, возникает вопрос - почему этому не учат сразу?
Этот вопрос можно задать всему мэйнстриму в целом, подставив вместо TDD любую из 100500 полезных фич программной инженерии :)
Каждый раз, проходя такие курсы, жалею, что в универе не было толкового обучения по ФП:) Подсадили на ООП...
Честно говоря, в начале я думал, что уровень реализации — это «для разминки», всё очевидно. Оказалось, что нет. Самое интересное — это не if вместо if/else if и не кортеж вместо DTO. Самое интересное — это то, что каждая из этих проблем прячет потерянное намерение...
Закончил курс по архитектурам, больше всего впечатлили функциональные концепции. Как же много можно достичь на уровне синтаксиса, какой элегантности. Очень понравились уроки про state monad, AST, DSL и capabilities. Аж F# решил в конце потрогать. Если, конечно, к этому и математику еще прикрутить…
В какой-то момент поймал себя, что одну строчку кода пишу две 25 минутные помидорки. При этом конечно был уже сделан, тест, закомментирована его большая
часть, и убирал комментарии увеличивая тестовую часть.
Во время работы с ним стало появляться ощущение понимания Django...
Смотря на все эти защитные трюки "от дурака" понимаешь, что если ты начинаешь в самом начале проектировать дизайн и типы как надо, то и нет необходимости на низком уровне делать какие-либо дополнительные проверки. Это все идёт из-за спешки, в погоне за временем и результатом. И стоит остановиться и посмотреть, что ты написал и начинаешь понимать, что тут проверка на проверке, хоть это и не асерты...
Понравилась цитата Торвальдса из материала:
Плохие программисты думают о коде. Хорошие программисты думают о структурах данных и взаимосвязях между ними
Недавно разбирал большой кусок легаси-кода и вспоминал эту цитату. Код сначала казался страшным и очень запутанным. Но потом я постарался подняться немного выше и сосредоточить своё внимание на данных и том, что с ними происходит в целом. После этого всё стало гораздо проще, я увидел, как и куда перемещаются данные, понял зачем это делается. И как будто бы разглядел даже некоторую красоту в этом куске легаси, потому что на уровне данных вся картина воспринимается проще и ты начинаешь понимать, что здесь приняли неплохие решения, с учётом стоявших проблем. Цитата Торвальдса меня зацепила, поскольку она напоминает о том, что важно на самом деле. Буду стараться чаще смотреть на проект в первую очередь с точки зрения данных и их связей...
Последний суб-модуль который я переписывал за уже уволенным пакистанецем, я просто по промпту из функционального проектирования взял и сделал отличный расширяемый парсер инвойсов))) Спасибо вам большое! Очень здоровый код, пусть не совсем про порт-адаптер, но зато если клиенты принесут новые форматы документво и там LLM как ocr-parser понадобиться – я смогу добавить его за минут 30 работы...
Я использую реализацию паттерна "самодукоментррубщицся код", но через добавление логирования...
Post #2356
634
- 👍 36
- 🏆 5
- ❤ 3
- 😁 2