11.5 Свод правил.
В этой главе мы затронули много тем, но как правило не давали
настоятельных и конкретных рекомендаций по проектированию. Это
соответствует моему убеждению, что нет "единственно верного решения".
Принципы и приемы следует применять тем способом, который лучше
подходит для конкретных задач. Для этого нужен вкус, опыт и разум.
Все-таки можно указать некоторый свод правил, который разработчик
может использовать в качестве ориентиров, пока не наберется достаточно
опыта, чтобы выработать лучшие. Ниже приведен свод таких правил.
Эти правила можно использовать в качестве отправной точки в
процессе выработки основных направлений для проекта или организации
или в качестве проверочного списка. Подчеркну еще раз, что они не
являются универсальными правилами и не могут заменить размышления.
- - Узнайте, что вам предстоит создать.
- - Ставьте определенные и осязаемые цели.
- - Не пытайтесь с помощью технических приемов решить социальные
проблемы.
- - Рассчитывайте на большой срок
- - в проектировании, и
- - управлении людьми.
- - Используйте существующие системы в качестве моделей, источника
вдохновения и отправной точки.
- - Проектируйте в расчете на изменения:
- - гибкость,
- - расширяемость,
- - переносимость, и
- - повторное использование.
- - Документируйте, предлагайте и поддерживайте повторно используемые
компоненты.
- - Поощряйте и вознаграждайте повторное использование
- - проектов,
- - библиотек, и
- - классов.
- - Сосредоточьтесь на проектировании компоненты.
- - Используйте классы для представления понятий.
- - Определяйте интерфейсы так, чтобы сделать открытым минимальный
объем информации, требуемой для интерфейса.
- - Проводите строгую типизацию интерфейсов всегда, когда это
возможно.
- - Используйте в интерфейсах типы из области приложения всегда,
когда это возможно.
- - Многократно исследуйте и уточняйте как проект, так и реализацию.
- - Используйте лучшие доступные средства для проверки и анализа
- - проекта, и
- - реализации.
- - Экспериментируйте, анализируйте и проводите тестирование на
самом раннем возможном этапе.
- - Стремитесь к простоте, максимальной простоте, но не сверх того.
- - Не разрастайтесь, не добавляйте возможности "на всякий случай".
- - Не забывайте об эффективности.
- - Сохраняйте уровень формализации, соответствующим размеру проекта.
- - Не забывайте, что разработчики, программисты и даже менеджеры
остаются людьми.
Еще некоторые правила можно найти в $$12.5