Йа волосат и бородат!

Все выходные думал, не удалить ли мне предыдущее псто гнева. Все-таки писал в состоянии аффекту, но решил оставить. Заодно укрепился во мнении, что к моменту рефакторинга нужно будет попытаться изменить наш локальный стандарт кодирования. Не могу сказать, что он так уж плох, ведь он поддерживает определенный порядок, но в голове давно уже роится представление о «правильном» проекте. На всякий случай выкладываю:


  • Должна быть описана цель проекта.
  • В зависимости от цели необходимо сформулировать задачу, которую будет решать проект, и требования к ее решению.
  • Общая задача должна быть декомпозирована (разбита) на набор более простых и независимых друг от друга подзадач, разделенных семантически и функционально. Эти моменты должны быть четко описаны.
  • На основе такого разделения следует описать интерфейс сформированных ранее блоков (наборы входных и выходных данных, данные для управления обработкой и общее описание механизмов). Интерфейс следует делать как можно более умеренным.
  • Вся специфика реализаций (привязка к операционной системе, внутренние механизмы, алгоритмы и даже язык реализации) должна быть предельно укрыта за этим интерфейсом и невидима для для других блоков.
  • Каждый момент должен быть задокументирован и описан с обоснованием выбора конкретного решения и способа его реализации.

  • Разумеется, следуя этим же пунктам, я должен обосновать каждый из них, чтобы была предельно видна их логика и их цель. Если это будет кому-либо нужно, я это распишу.


    PS: Перечитав список во время правки, внезапно вспомнил, что именно этого требовал от нас М. А. Верхотуров во всех наших лабораторках. Забавно... и спасибо.





    @темы: работа