Поддерживать концептуальную целостность сложно. Это проблема, которую необходимо постоянно решать во время архитектуры, дизайна и строительства, и она только усугубляется, когда проект переходит к другому владельцу.
Одной вещью, которая может помочь, является участие людей из первоначальной команды разработчиков в обслуживании. Тот, кто уже имеет представление о концептуальной структуре проекта, сможет лучше придерживаться этой концепции, чем тот, кто изучает ее с нуля.
Кроме этого, это сводится к гигантской теме лучших практик . Почти все "хорошие" методы программирования направлены на простоту обслуживания. Хорошие методы проектирования и строительства приводят к проектам, которые легче понять последующим разработчикам. Стив Макконнелл говорит об управлении сложностью как о главном императиве работы программного обеспечения. Если сложность решается заранее, тем, кто придет позже, будет легче сохранить концептуальную целостность проекта без изменений.
С другой стороны, хорошие методы обслуживания включают работу против энтропии . Держите систему под контролем. Не уменьшайте сцепление и не увеличивайте сцепление ради быстрого исправления или новой функции. Фактически, стремитесь сделать проект более согласованным с каждым внесенным изменением.
Если система была разработана с учетом расширяемости, то для программистов по техническому обслуживанию не должно быть проблем с сохранением целостности концептуальной целостности при выполнении своей работы. И даже если это не так, у них все же должна быть возможность улучшить проект во время технического обслуживания, а не разрушать его дальше.
Если разработчики ПО просто собирают вещи вместе и делают это «простым» способом, это всегда ухудшает концептуальную целостность и усложняет проект. Разработчики должны знать об этом, и они должны сознательно выбирать методы, которые лучше всего позволят им избежать этого.
Основная идея заключается в том, что обслуживание должно быть процессом постоянного улучшения проекта, а не постоянного его ухудшения. Отличная книга, посвященная этой теме, - «1017 * Майкла Фезерса,« Эффективно работающая с устаревшим кодом ». Вы можете проверить это.