💥 Факап понедельника: "Сейчас аккуратно вынесу один модуль в домен"
План был простой:
в понедельник с утра сделать маленький шаг к DDD — вынести небольшой, вроде бы изолированный кусочек логики в доменный слой.
Ну что может пойти не так?
Ответ: всё.🙈
Уже через 20 минут выяснилось, что:
— функция, которую нужно вынести, знает про три разных слоя,
— сервис вызывает репозиторий, который вызывает другой сервис, который вызывает... "а это вообще что?",
— entity внезапно обращается к контроллеру (каким образом?!),
— а половина проекта зависит от одного файла с названием
Дальше — классика понедельника:
"Ну ладно, поправлю ещё вот это…"
"О, а это как связано?.."
"Так, почему здесь точно такой-же код, но работает иначе?.."
И вот ты уже не делаешь маленький рефакторинг.
Ты ведёшь археологические раскопки слоями, написанными пятью поколениями разработчиков, где каждый оставил что-то "быстро, чтобы работало".
🚑 Промежуточный итог:
вынести удалось ровно половину задуманного, зато обнаружилось чуть больше проблем, чем хотелось бы знать в понедельник утром.😅
И работа ещё не завершена...
💡 Вывод: размоноличивание — это не "вынесу за час", а "узнаю о проекте больше, чем хотел".
У кого маленький рефакторинг тоже превращался в раскопки? 😅👇
#факап #понедельник #ddd #монолит #refactoring #itshchen #codetogo
План был простой:
в понедельник с утра сделать маленький шаг к DDD — вынести небольшой, вроде бы изолированный кусочек логики в доменный слой.
Ну что может пойти не так?
Ответ: всё.🙈
Уже через 20 минут выяснилось, что:
— функция, которую нужно вынести, знает про три разных слоя,
— сервис вызывает репозиторий, который вызывает другой сервис, который вызывает... "а это вообще что?",
— entity внезапно обращается к контроллеру (каким образом?!),
— а половина проекта зависит от одного файла с названием
utils.php, который весит как маленькая вселенная.🥲Дальше — классика понедельника:
"Ну ладно, поправлю ещё вот это…"
"О, а это как связано?.."
"Так, почему здесь точно такой-же код, но работает иначе?.."
И вот ты уже не делаешь маленький рефакторинг.
Ты ведёшь археологические раскопки слоями, написанными пятью поколениями разработчиков, где каждый оставил что-то "быстро, чтобы работало".
🚑 Промежуточный итог:
вынести удалось ровно половину задуманного, зато обнаружилось чуть больше проблем, чем хотелось бы знать в понедельник утром.😅
И работа ещё не завершена...
💡 Вывод: размоноличивание — это не "вынесу за час", а "узнаю о проекте больше, чем хотел".
У кого маленький рефакторинг тоже превращался в раскопки? 😅👇
#факап #понедельник #ddd #монолит #refactoring #itshchen #codetogo
🔥2👍1💯1
🧩 Размоноличивание: что я понял после работы с DDD
Эта неделя началась с понедельничного факапа — попытка вынести один модуль в доменный слой превратилась в археологические раскопки. 😅
Но теперь, когда большая часть работы завершена, есть несколько наблюдений и лайфхаков, которые реально помогают:
💡 1️⃣ Старайся заранее картировать зависимости.
Даже маленькая функция может знать про три разных слоя. Раннее понимание связей экономит кучу времени и нервов.
💡 2️⃣ "Мини-рефакторинг" почти всегда превращается в крупную работу.
Прими, что на один модуль уйдёт больше времени, чем планировал. Меньше стресса — больше контроля.
💡 3️⃣ Документируй каждый шаг.
Даже просто "какой сервис зависит" или "какие сущности вызываются" помогает при следующем заходе.
💡 4️⃣ Используй тесты как страховку.
Каждое изменение проверяй автоматикой. Ручная проверка работает, но на больших проектах — это стресс и потенциальные ошибки.
💡 5️⃣ Маленькие победы — огромный стимул.
Даже если вынесли только половину задуманного — это уже прогресс, и он важен.
💭 Вывод: размоноличивание — это не просто "сделать красиво", а шанс реально понять проект. Каждая сложная точка — это урок, и со временем ты начинаешь видеть, где можно идти быстрее, а где аккуратнее.
А у вас были похожие "археологические" рефакторинги? Какие лайфхаки для постепенного разбиения монолита работают лучше всего?👇
#itlife #мысли #размоноличивание #ddd #refactoring #codetogo #itshchen
Эта неделя началась с понедельничного факапа — попытка вынести один модуль в доменный слой превратилась в археологические раскопки. 😅
Но теперь, когда большая часть работы завершена, есть несколько наблюдений и лайфхаков, которые реально помогают:
💡 1️⃣ Старайся заранее картировать зависимости.
Даже маленькая функция может знать про три разных слоя. Раннее понимание связей экономит кучу времени и нервов.
💡 2️⃣ "Мини-рефакторинг" почти всегда превращается в крупную работу.
Прими, что на один модуль уйдёт больше времени, чем планировал. Меньше стресса — больше контроля.
💡 3️⃣ Документируй каждый шаг.
Даже просто "какой сервис зависит" или "какие сущности вызываются" помогает при следующем заходе.
💡 4️⃣ Используй тесты как страховку.
Каждое изменение проверяй автоматикой. Ручная проверка работает, но на больших проектах — это стресс и потенциальные ошибки.
💡 5️⃣ Маленькие победы — огромный стимул.
Даже если вынесли только половину задуманного — это уже прогресс, и он важен.
💭 Вывод: размоноличивание — это не просто "сделать красиво", а шанс реально понять проект. Каждая сложная точка — это урок, и со временем ты начинаешь видеть, где можно идти быстрее, а где аккуратнее.
А у вас были похожие "археологические" рефакторинги? Какие лайфхаки для постепенного разбиения монолита работают лучше всего?👇
#itlife #мысли #размоноличивание #ddd #refactoring #codetogo #itshchen
👍3🔥2💯1