Бьерн Страуструп - Язык программирования С++. Главы 11-13 - Свод правил

ОГЛАВЛЕНИЕ

11.5 Свод правил

В этой главе мы затронули много тем, но как правило не давали настоятельных и конкретных рекомендаций по проектированию. Это соответствует моему убеждению, что нет "единственно верного решения". Принципы и приемы следует применять тем способом, который лучше подходит для конкретных задач. Для этого нужен вкус, опыт и разум. Все-таки можно указать некоторый свод правил, который разработчик может использовать в качестве ориентиров, пока не наберется достаточно опыта, чтобы выработать лучшие. Ниже приведен свод таких правил.

Эти правила можно использовать в качестве отправной точки в процессе выработки основных направлений для проекта или организации или в качестве проверочного списка. Подчеркну еще раз, что они не являются универсальными правилами и не могут заменить размышления.

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

Еще некоторые правила можно найти в $$12.5