Частые изменения требований проекта, включая добавление или удаление функций, не обязательно приводят к спагетти-коду, но, вероятно, будут, если вы не напишите модульное программное обеспечение (см. Модульное программирование ). Вещи, к которым нужно стремиться, включают следующее:
- Каждый модуль (будь то функция, класс, библиотека или завершенное приложение) имеет четко определенную цель .
- Каждый модуль в идеале не больше, чем должен быть , чтобы служить своей определенной цели.
- Модули слабо связаны , что означает, что они могут заменять другие модули без прерывания работы программного обеспечения.
- Модули могут быть проверены индивидуально , чтобы убедиться, что они служат своей цели без ошибок.
- Модули организованы таким образом, что помогает сделать проблемную область интуитивно понятной для других программистов.
Учитывая хорошо организованные модули (опять же, это могут быть функции, классы, библиотеки и полные приложения), которые работают вместе, будучи слабосвязанными, способ справиться с изменениями в требованиях состоит в написании новых модулей, расширении существующих модулей и подключите модули по-новому.
Что касается того, как вы попадаете в ситуацию, когда эти замечательные программные модули стоят на первом месте, рефакторинг является ключевым. Другие методы, такие как модульное тестирование и методология разработки (например, Scrum ) также полезны, но рефакторинг - это ваш хлеб с маслом - и это одна из вещей, которую делают многие бизнес-среды недостаточно времени для.
Для получения хороших советов по написанию слабосвязанного кода проведите исследование внедрение зависимостей .