Крупные проекты, с давней историей — начиная с 90-х годов, в большинстве случаев основаны на монолитной архитектуре (не касаясь веба — корни уходят еще глубже).
В своей работе я часто сталкиваюсь с подобными системами и все они имеют практически одинаковые проблемы, и об этом мне хотелось бы сейчас поговорить.
Главная проблема
При создании он не предполагает увеличения функциональности.Любая «новая кровь» создается «раз и навсегда» — не из той группы и вызывает отторжение.
Любое хирургическое вмешательство рано или поздно приводит к появлению «Франкенштейна» — сущности Сета, объединенного синтетическими связями.
Со временем в любом проекте наступает этап, когда базового функционала становится недостаточно.
Исходя из первого тезиса, существует несколько возможных решений:
Инъекции
«—Я не знаю, как это работает — сделаю сверху» Так как у Системы много пап (мам) — ее новые родители часто экономят свое время и нервы — они не пытаются разобраться в чьих-то кусочках чужое «наследие» и просто работать «поверх» того, что есть.Многим знакомы симптомы такого отношения: или превентивное внедрение кода замены после генерации.
Основная проблема в том, что если проекту 10+ лет, то похожие «методы» наслаиваются друг на друга.
Внесение изменений в ядро
Вышеуказанные проблемы присущи, но на «более низком» уровне.Вырезаются целые сегменты системы и встраиваются новые, независимые, с разорванными, синтетическими связями, что в целом приводит к расщеплению на самостоятельные подсистемы (своеобразное извращенное подобие модульности), разреженности и усложнению архитектуры.
Чистый лист
Создание новой системы предполагает колоссальные затраты времени и финансов, которые с каждым днем текущей «версии» только увеличиваются.Так как за это время его развитие (увеличение функционала) происходит другими способами.
В большинстве случаев полностью остановить работу системы при создании новой невозможно, так как это приводит к потере потенциальной прибыли.
… Я решил опубликовать только самое начало.
Для того, чтобы узнать, насколько паблик Хабра заинтересован в этой проблеме.
Интересный? - продолжение следует. Теги: #архитектура системы #разработка #монолитные системы #Веб-разработка #Разработка веб-сайтов
-
Настенный Кронштейн Для Планшета
19 Oct, 24 -
Сколько Мяса В Рисе?
19 Oct, 24 -
Видео Sip-Клиент В Браузере
19 Oct, 24 -
Давайте Освоим Python. Унция Ноль. Введение.
19 Oct, 24 -
Нано Снеговик Из Нпл
19 Oct, 24