Я только начал работать над проектом, и мы используем управляемый доменом проект (как определил Эрик Эванс в « Управляемом доменом проектировании: решение сложных задач в основе программного обеспечения» . Я считаю, что наш проект, безусловно, является кандидатом на этот проект). шаблон, как Эванс описывает его в своей книге.
Я борюсь с идеей постоянного рефакторинга.
Я знаю, что рефакторинг необходим в любом проекте и неизбежно произойдет при изменении программного обеспечения. Однако, по моему опыту, рефакторинг происходит, когда меняются потребности команды разработчиков, а не меняется понимание домена («рефакторинг для лучшего понимания», как называет его Эванс). Меня больше всего волнуют прорывы в понимании модели предметной области. Я понимаю, что нужно вносить небольшие изменения, но что, если в модели необходимо большое изменение?
Какой эффективный способ убедить себя (и других) в том, что вам следует провести рефакторинг после получения более четкой модели предметной области? В конце концов, рефакторинг для улучшения организации или производительности кода может быть полностью отделен от выразительности с точки зрения вездесущего языкового кода. Иногда кажется, что на рефакторинг не хватает времени.
К счастью, SCRUM предоставляет возможность рефакторинга. Итеративный характер SCRUM позволяет легко создать небольшой фрагмент и изменить его. Но со временем этот кусок станет больше, и что если у вас будет прорыв после того, как этот кусок станет настолько большим, что его будет слишком сложно изменить?
Кто-нибудь работал над проектом с использованием доменного дизайна? Если так, было бы здорово получить некоторое представление об этом. Особенно мне хотелось бы услышать некоторые истории успеха, поскольку DDD кажется очень сложным для понимания.
Спасибо!