Что предлагается для того чтобы это было возможно:
- Не делайте дизайн системы в самом начале. Дизайн системы должен развиваться по мере того как мы больше узнаем про систему и требования к ней.
- Оптимизируйте процесс взаимодействия между теми что знает бизнес и тем кто знает код чтобы упростить внесение изменений в дизайн системы.
- Любители пытаются сделать все правильно с первого раза. Эксперты выявляют ошибки до того как они приведут к проблемам.
- Используйте объект-ориентированный дизайн и компонентную разработку. Например:
- Используйте модули. Прячьте поведение внутри модуля, откладывайте дизайн модуля как можно дольше.
- Используйте интерфейсы. Отделите интерфейсы от реализации.
- Используйте параметры.
- Используйте абстракции.
- Декларативное программирование, а не процедурное. Алгоритмы не должны зависеть от окружения.
- Избегайте повторений кода - DRY.
- Модуль имеет одну, простую функцию. Поэтому метод по валидации объекта не должен менять содержимое этого объекта (чтобы оптимизировать лишний SQL запрос), Марат.
- Инкапсуляция. Изменения не должны приводить к каскадными изменениям в других модулях.
- Реализуйте максимально простое решение сейчас вместо того чтобы делать решение которое будет удовлетворять "будущим" потребностям. Завтра вы будете знать больше, потому завтра вы сделаете более крутое решение.
- Избегайте лишних фич, добавляйте их лишь just-in-case. Любая фича - это потери на понимание, реализацию, тестирование, подддержку. НЕ бывает бесплатных фич.
- Исследуйте то что критически важно бизнесу. Малое время формирования ответа. Когда тратить на него силы? В самом начале и потом поддерживать его до конца проекта, или оставить на завершение работ и сэкономить время? Это не ваше решение - это приоритет бизнеса. Если ему это критически важно - сделайте в самом начале, чтобы снизить риски изменения архитектуры в конце работ.
- Чем медленнее ваша реакция на изменения, тем раньше вам нужно принимать решения. Чем быстрее вы можете менять код системы, тем больше вы сможете отложить решение.
Комментариев нет:
Отправить комментарий