codemonsters.log
رفتن به کانال در Telegram
| Просто рассказываю про | Научно обоснованный подход | Рациональной и качественной разработки софта @maxology
نمایش بیشتر580
مشترکین
اطلاعاتی وجود ندارد24 ساعت
اطلاعاتی وجود ندارد7 روز
+130 روز
آرشیو پست ها
Увлекательная статья
https://cursor.com/blog/self-driving-codebases
Относитесь к модели как к блестящему новому сотруднику, который разбирается в инженерии, но не знает специфики вашего кода и процессов.Увлекательный отрывок словно из соцреализма
Когда мы требовали 100% корректности перед каждым коммитом, это приводило к серьёзным проблемам с сериализацией и замедлению эффективной пропускной способности. Даже одна небольшая ошибка, например, изменение API или опечатка, могла привести к полной остановке всей системы. Рабочие выходили за рамки своих полномочий и начинали исправлять несущественные вещи. Множество агентов набрасывались друг на друга, пытаясь исправить одну и ту же проблему.#vibe
Математическое доказательство корректности программ
Собрал очень ценную статью про математическое доказательство правильности программы и формальное доказательство, которое мы используем при кодировании. https://codemonsters.team/blog/2025/12/30/program-correctness/
Для меня это особенно важная работа.
Показывает, как от математики мы переходим к инкапсуляции в ООП и типизации (формальному доказательству)
Правильная архитектура даёт нам 100% покрытие бизнес-логики юнит-тестами. Управляемое тестирование, а не тестирование ради процентного покрытия.
Взгляд на пирамиду тестирования уточняется.
Компонентные тесты превращаются в точную верификацию API, а не попытку протестировать крайние точки. Т.е. так мы можем на простом языке описать инструкцию к API нашего черного ящика, которая будет тестироваться автоматом и тут BDD раскрывается в полную силу.
Я напишу далее про это с отсылками к трудам отцов основателей.
Формируется мощный фрейм для программирования на русском языке с AI-ассистентами.
От классических основ к современному синтезу работы человека с машиной.
Бежим дальше.
#codemonsterslog
Модульность программы: как писать код, который не превратится в хаос
Модуль — это последовательность логически связанных фрагментов кода, оформленных как отдельная подпрограмма (функция, класс, сервис).
Ключевой принцип: один модуль — одна функция.
5 главных правил модульного кода:
1. Один вход, один выход — модуль должен возвращать управление тому, кто его вызвал
2. Небольшой размер — обычно 20-200 строк. Если больше — разделяй
3. Единственная ответственность — функция модуля должна выражаться одной фразой: "Валидировать email", "Создать карточку клиента", "Вычислить возраст"
4. Вертикальное управление — модуль может вызывать только подчиненные модули уровнем ниже. Главные решения принимает головной модуль
5. Черный ящик — вызывающий модуль не должен знать о внутреннем устройстве вызываемого
Почему это важно:
- Проще тестировать
- Легче вносить изменения
- Меньше багов
- Код можно переиспользовать
На практике: начинай с нисходящего проектирования (top-down).
Сначала определи общую функцию программы, затем разбей на подфункции, потом детализируй каждую.
Головной модуль — это краткий конспект всей программы.
Читать полностью: ссылка на статью
https://codemonsters.team/blog/2025/12/15/program-modules/
#codemonsterslog
В конце года в 4-м квартале мы запустили Бэкенд Академию для аналитиков и тестировщиков, чтобы переквалифицировать сотрудников в бэкенд инженеров и дать возможность развиваться по бэкенд треку.
Для меня это стало настоящей отдушиной в конце необычного и классного года.
Я люблю инженеров и видеть рост компетенций у ребят - это большая радость.
Меня это сильно заряжает и мотивирует.
Я собрал команду единомышленников, мы провели первичный отбор из 67-ти инженеров отобрали 26.
Выстроили и постоянно улучшаем процессы, например процесс поэтапной аттестации, чтобы отслеживать насколько качественно усваивается материал и выполняются домашки.
Наша цель на выходе получить настоящих инженеров.
Программу построили от теории к практике, так как я убежден, что универсальные теории студенты смогут применять в карьере вне зависимости от стека.
Обучение построено по стандарту, который мы разрабатываем в параллель с инженерами.
От API First, Doc as Cod, до компонентных тестов и качественного проектирования софта до установки в кубер и сопровождения.
Про тестирования мы отдельно даем теорию и практику, чтобы инженер понимал, что от количества тестов качество софта не зависит. Что писать код программы и код тестов нужно меньше - так как это работа, которая стоит денег, а мы строим эффективное производство при котором меньше пишем, больше катим и меньше ошибаемся, а если ошибаемся и роняем, быстро поднимаем.
Про мифы тестирования и введение в структурное программирование собрал материал из классических трудов отцов основателей, просто понятно раскрыта суть вопроса без лишних модных терминов.
https://codemonsters.team/blog/2025/12/12/structured-programming-essential/
Дай пять.🙌
#codemonsterslog
https://youtu.be/mfv0V1SxbNA?si=-1iRVOo0xTJYLob1
Linus собирает Linus-у комп и обсуждает много тем
#vibe
💻 С командой запустили отбор в Бэкенд Академию
Отборочный гейт открыт до 24.03
Перешли тому, кому это важно и нужно
🏎
Заявка в академию
О( М ) мастерстве
🎙
Статью пишу, контекст обновил. Вспомнил суть 😏
Петербурге прекрасная погода была один день. ☀️
М - мастерство, Software Craftsmanship.
Чем больше я узнаю о разработке и общаюсь с инженерами из разных команд и компаний, тем больше топлива поступает в мои баки для имплементации плана. Писать.
Дамп мой про то, как пилить бизнес фичи и сохранять предсказуемое качество от проекта к проекту, от команды к команде, как передавать эти ценные знания и опыт.
Сегодня был очень тяжёлый день 29.02
Иногда мне кажется, я не закончу эту работу, но я вижу ее ценность и целостность,
Кладу руки на деку клавы.
Включаю музыку.
Пальцы клик-клик и запускается поток.
Старые компы так круто жужжали и пикали.
Кто помнит?
Великий и прекрасный SQL в
A Beginner’s Guide to the True Order of SQL Operations от создателя JOOK
https://blog.jooq.org/a-beginners-guide-to-the-true-order-of-sql-operations/
#code
🏎Спойлер. ГПБ Backend Академия
Мы разрабатываем крутой командой Бэкенд Академию для подготовки инженеров-джунов в ГПБ.
Концепция мне очень нравится.
Самое ценное - состав экспертов, которые зарядят на победу, расскажут и покажут как нужно разрабатывать.
Старт промо с 26-28 февраля.
Еду в машине и размышляю: еще вчера мне хотелось создать нечто подобное и вот мы это делаем. Класс.
Топовый Состав преподавателей.
Крутейший разнообразный поток тем. Будет не скучно.
Если отмотать назад таймлайн жизни:
- Услышал звук перемотки?
- Да.
- Класс.
Как передать концепцию эффективной работы?
Не просто про код или инструменты.
Про полный цикл разработки. Про то как мы делаем, как стоит подходить к разработке и достигать качества в нашем ремесле.
Академия про это.
#log
Поеду в Петербург писать продолжение DDD-шнутое.
Там сейчас идеально - промозгло и ддд-шнуто-драйвово 🎂
😟Статьи про DDD и рефакторинг
Пока я подготавливал базу для домашнего облака, статьи и кукбук про DDD покрылись пыльцой, а вместе с этим фактом в душе завибрировало беспокойство.
Пора продолжать писать и освежить в памяти, что мы уже сделали и к чему все это приведет.
Я так и сделал. Перерыв пошел на пользу. Забыл и посмотрел свежим взглядом.1. Как написать чистый код и сделать жизнь проще 2. Как не стоит писать код: разбираем ошибки 3. Гайд по чистому коду: учимся писать тесты В итоге получаем гайд с полезными ссылками, рекомендациями по темам: чистый код и DDD, пайплайн ориентированный подход, юнит-тесты на бизнес-логику, контрактные тесты и как прагматично использовать тест-контейнеры. Эссенция опыта, экспериментов и исследований работ инженеров. Выходит норм пайп :) - Да вы Пишите, Максим, пишите 🚮 - уже начал 💻 #code #кодопись
💪 Другой Академический отпуск
Ушел на 2 недели в отпуск, чтобы собрать дела по бэкенд Академии, статьям, докладам.
- Уделил внимание здоровью: увеличел количество тренировок
- Появилось время для хобби геймс
- Выгреб много мусора из головы
- разгреб дела бэкенд академии
- Приступил к работе над статьей и докладами
Мне очень в этом помогает спорт
Был момент, когда я сделал перерыв. Было фигово. Я ослаб.
Больше года, как я вернулся в ДзюДо и downhill. И меня это сильно заряжает. Прям помогает выжить и креативить.
Единоборства очень многому учат меня и я тащу это в жизнь.
- Гибкость сознания и тела
- Эффективность
- Сила и постоянство
- Убирай лишнее из головы и движения
Прям кайф.
📛Мама, кажется, я не дебажу.
Просматривал темы лекций в нашу бэкенд академию и понял.
Я не дебажу код в работе (стараюсь вообще не дебажить), почти все научился выявлять тестами.
Помню как лютый легаси дебажил. Кровавый монстр Легаси был… и не один…
Тут могла бы быть байка от деда, Макса. Но нет. Не сейчас.
В итоге я пришел к методу:
Я разбирался с монстриком не путем яростного дебага, а пытался понять как он работает. Анализировал код и точки входа в нужный мне флоу (бизнес-процесс).
И все. Я просто разбирался как это работает.
Работает правило:
Разберись как это укулеле работает в целом и что происходит по данному бизнес-процессу.
Возведи понимание в приоритет. Понимание поможет обнаружить ошибку. Понимание поможет упростить.Почему это важно? Потому как я встречал разработчиков, которые для поиска ошибки сразу стартовали процесс дебага, при этом общего понимания функционала не было. И не было тестов. Не делай так! Пиши тесты. А ты как ищешь баги в коде?
Песочница разработчика в МиниПэкашке
Для экспериментов мне нужна песочница разработчика. 🔥
Инфраструктура как код.
Хочу быстро переносить эту песочницу.
Чтобы обеспечить себе свободу экспериментов.
Я экспериментирую, затем применяю на работе.
Минимальный набор разработчика:
- Гитлаб,
- Сервис авторизации и аутентификации (keycloak),
- СУБД, Очереди, и т.д.
- k8s в котором я буду разворачивать:
- Сервисы с состоянием (Stateful) сервисы,
- Сервисы без состояния (Stateless),
Описание состояния первого этапа в комментах
#devops
Repost from N/a
Всем доброе утро! Сегодня выступаю на митапе X5 Backend meetup #3.
Если есть возможность приехать и зарегистрировались на оффлайн — приходите поболтать! А если просто хотите меня послушать, то будет онлайн-трансляция — начало в 19:00, моё выступление в 20:30 😎
ТРАНСЛЯЦИЯ
Привет, друзья! 💻
Меня так захватил ИТ Реорг в нашей прекрасной компании, что я временно потерял дар писать в канал.
Рекомендую вам классный доклад моего друга по DDD Ахтяма Сакаева
https://youtu.be/WTu7EgYFYGU?si=t0tkbqO0aUR2FqwK
О концепции Aggregate. На мой взгляд он хорошо показал творческий подход к реализации тактического паттерна.
Что нас ждет в ближайшее время:
- Я почти закончил первый этап DevOps испытания
В течении двух недель покажу вам лаконичный пример песочницы разработчика, которую можно развернуть в домашней сетке.
Придумал проект ДредНоут - напишу.
А далее нас ждут статьи, эксперименты.
Оставайтесь на связи и передавайте привет Ахтяму.
Личная история про эффективность + 5 правил
🎙
Вопросы на митапе и не только, прекрасный пост Вадима
меня вдохновили написать про некоторые мои правила.
Сообщество инженеров, друганов с кем интересно работать и общаться не всегда сразу можно обрести.
Возможно его нужно заслужить?
Личная история.
Однажды я осознал, что теперь один со своей экспертизой, интересами и исследованиями.
Писал код, думал про Data Flow, слушал Synth Wave.
Важно отметить, что незадолго до этого осознания, был стопор.
Стопор.
Хотелось все, сразу и чем больше я узнавал, тем собственное невежество меня больше пугало. Тысячи вкладок и записок.
Бывает такое?
Не ясно в какую вселенную нырять : мобильна разработка для Android или бэкенд разработка сложных систем, а как стать экспертом?
А ещё есть страх:
вдруг не получится?
вдруг я облажаюсь?
На фотке картинка, которая лет 5 со мной на работе и дома. Я прожил каждое предложение своим опытом.
Авторы:
Brian Buirge and Jason Bacher, co-founders of Good Fucking Design Advice
Правила в комментах.
Гайд по чистому коду: учимся писать тесты
📞
Вышла третья статья из серии
про юзабельный код с тестами и рефакторинг по кукбуку в соавторстве с Вадимом Вагановым.
Замысел:
Начать с основы создания работоспособного приложения - с тестов.
С чего стоит начать перед рефакторингом.
Какие тесты написать и как.
Раскрыть прагматичный метод, который работает.
Запрос:
Оставь, пожалуйста, обратную связь если есть. 🍽
Это ценнее, чем ты думаешь.
#codemonsterslog #insanedeliverymachine
💻Вчера вечером и сегодня ночью сделал 2 доклада за 4 часа.
Побил рекорд личныйВ Пятницу на митапе в ГПБ расскажу про DDD. В субботу на митапе расскажу про Базовые принципы разработчика. Есть наработки, но каждый раз хочу: — получить удовольствие от подготовки и инфы — подать просто и понятно важные идеи Посмотрим как получится в этот раз. #продуктивность
