понедельник, 22 ноября 2010
Все выходные думал, не удалить ли мне предыдущее псто гнева. Все-таки писал в состоянии аффекту, но решил оставить. Заодно укрепился во мнении, что к моменту рефакторинга нужно будет попытаться изменить наш локальный стандарт кодирования. Не могу сказать, что он так уж плох, ведь он поддерживает определенный порядок, но в голове давно уже роится представление о «правильном» проекте. На всякий случай выкладываю:
Должна быть описана цель проекта.
В зависимости от цели необходимо сформулировать задачу, которую будет решать проект, и требования к ее решению.
Общая задача должна быть декомпозирована (разбита) на набор более простых и независимых друг от друга подзадач, разделенных семантически и функционально. Эти моменты должны быть четко описаны.
На основе такого разделения следует описать интерфейс сформированных ранее блоков (наборы входных и выходных данных, данные для управления обработкой и общее описание механизмов). Интерфейс следует делать как можно более умеренным.
Вся специфика реализаций (привязка к операционной системе, внутренние механизмы, алгоритмы и даже язык реализации) должна быть предельно укрыта за этим интерфейсом и невидима для для других блоков.
Каждый момент должен быть задокументирован и описан с обоснованием выбора конкретного решения и способа его реализации.Разумеется, следуя этим же пунктам, я должен обосновать каждый из них, чтобы была предельно видна их логика и их цель. Если это будет кому-либо нужно, я это распишу.
PS: Перечитав список во время правки, внезапно вспомнил, что именно этого требовал от нас М. А. Верхотуров во всех наших лабораторках. Забавно... и спасибо.
@темы:
работа