Код на вынос
16 subscribers
1 photo
4 links
Про то, как решения сталкиваются с реальностью.
Факапы, идеи, опыт, код — без глянца.
Download Telegram
💥 Факап понедельника: "Сейчас аккуратно вынесу один модуль в домен"

План был простой:
в понедельник с утра сделать маленький шаг к DDD — вынести небольшой, вроде бы изолированный кусочек логики в доменный слой.

Ну что может пойти не так?
Ответ: всё.🙈

Уже через 20 минут выяснилось, что:
— функция, которую нужно вынести, знает про три разных слоя,
— сервис вызывает репозиторий, который вызывает другой сервис, который вызывает... "а это вообще что?",
— entity внезапно обращается к контроллеру (каким образом?!),
— а половина проекта зависит от одного файла с названием utils.php, который весит как маленькая вселенная.🥲

Дальше — классика понедельника:
"Ну ладно, поправлю ещё вот это…"
"О, а это как связано?.."
"Так, почему здесь точно такой-же код, но работает иначе?.."

И вот ты уже не делаешь маленький рефакторинг.
Ты ведёшь археологические раскопки слоями, написанными пятью поколениями разработчиков, где каждый оставил что-то "быстро, чтобы работало".

🚑 Промежуточный итог:

вынести удалось ровно половину задуманного, зато обнаружилось чуть больше проблем, чем хотелось бы знать в понедельник утром.😅

И работа ещё не завершена...

💡 Вывод: размоноличивание — это не "вынесу за час", а "узнаю о проекте больше, чем хотел".

У кого маленький рефакторинг тоже превращался в раскопки? 😅👇

#факап #понедельник #ddd #монолит #refactoring #itshchen #codetogo
🔥2👍1💯1
🧩 Размоноличивание: что я понял после работы с DDD

Эта неделя началась с понедельничного факапа — попытка вынести один модуль в доменный слой превратилась в археологические раскопки. 😅

Но теперь, когда большая часть работы завершена, есть несколько наблюдений и лайфхаков, которые реально помогают:

💡 1️⃣ Старайся заранее картировать зависимости.
Даже маленькая функция может знать про три разных слоя. Раннее понимание связей экономит кучу времени и нервов.

💡 2️⃣ "Мини-рефакторинг" почти всегда превращается в крупную работу.
Прими, что на один модуль уйдёт больше времени, чем планировал. Меньше стресса — больше контроля.

💡 3️⃣ Документируй каждый шаг.
Даже просто "какой сервис зависит" или "какие сущности вызываются" помогает при следующем заходе.

💡 4️⃣ Используй тесты как страховку.
Каждое изменение проверяй автоматикой. Ручная проверка работает, но на больших проектах — это стресс и потенциальные ошибки.

💡 5️⃣ Маленькие победы — огромный стимул.
Даже если вынесли только половину задуманного — это уже прогресс, и он важен.

💭 Вывод: размоноличивание — это не просто "сделать красиво", а шанс реально понять проект. Каждая сложная точка — это урок, и со временем ты начинаешь видеть, где можно идти быстрее, а где аккуратнее.

А у вас были похожие "археологические" рефакторинги? Какие лайфхаки для постепенного разбиения монолита работают лучше всего?👇

#itlife #мысли #размоноличивание #ddd #refactoring #codetogo #itshchen
👍3🔥2💯1
🎉 Пятница. Конец недели непредвиденного рефакторинга

Эта неделя официально стала неделей "вынужденного размоноличивания". 😅
То, что начиналось как маленький шаг к DDD, превратилось в археологические раскопки: слои зависимостей, utils-файлы размером с энциклопедию, неожиданные связи…

И вот что удивительно: уже сейчас видно, что время не было потрачено зря.
✔️ Модули стало проще тестировать
✔️ Появилась ясность, куда что относится
✔️ Код меньше ломается при деплоях

💡 Мысль недели: иногда большие плюсы приходят не от запланированных задач, а от "вынужденного рефакторинга" в коде.

И даже если на понедельник казалось, что всё пошло не так — к концу недели цифры говорят сами за себя.
Одинаковый по объёму патч в монолите оказался вдвое более долгим и рискованным, чем в новом вынесенном модуле. Выигрыш налицо 😎

А у вас бывают такие недели "сюрпризов", которые в итоге приносят больше пользы, чем плановая работа?👇

#itlife #размоноличивание #рефакторинг #ddd #коднавынос #itshchen #codetogo
👍2🔥2💯1