Язык программирования C++ для профессионалов
d51f8a0c

Свод правил


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

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

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



            Содержание раздела