Код на вынос
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