Этот раздел появился не с целью принудить вас изучать новую нотацию (стиль оформления кода), а для максимального обегчения взаимопонимания и облегчения взаимодействия участиков одного проекта.
Итак, некоторые соглашения, которых следует придерживаться при выполнении заданий:
0. Использование библиотек сторонних разработчиков
Поскольку у каждого участника команды своя версия Delphi, свои предустановленные пакеты и свои предпочтения, необходимо обеспечить полную совместимость кода. А это возможно только с помощью стандартных средств. Тем не менее этот вопрос обсуждаем, т.е. если что-то поможет реально сократить проект, это обязательно будет учтено!
1. Структура проекта
Проект строится по блочно-модульному принципу. Идет разделение на 3 слоя: Интерфейс, События, Действия.
Интерфейс - модуль содержит только формы и вызовы событий, закрепленных за объектами.
События - модуль содержит процедуры, являющиеся шаблоном реакции на каждое событие.
Действия - собственно, модули с программным кодом каждого пункта реакции на событие.
Получается что-то вроде шаблона проектирования MVC (Model View Controller)
Структура модулей проекта такова:
[+] Проект (одна или несколько форм)
[ ] => event.pas - "События" (вызовы реакции на события)
[ ] ===> eng.pas - "Движок" (управляет визуальной частью)
[ ] ===> act.pas - "Действия" (управляет обработкой данных)
[ ] ===> sta.pas - "Статистика" (подсчет частоты событий)
[ ] ===> lib.pas - "Библиотека" (код из прошлых проектов)
2. Шаблон подпрограммы-События
Каждому событию соответствует несколько действий. Первые два всегда будут: сбор статистики (увеличить счетчик данного события) и "движок" (т.е. открыть окошки, вкл/откл опции или пункты меню и т.д.).
Символ "#" я использую для маркировки неготовых фрагментов, а символ "+" - для пометки сделанных.
3. Шаблон подпрограммы-Действия
На этом уровне следует особенно строго подойти к стилю написания кода, что в случае обнаружения ошибки быстро выявить, в какой части она произошла.
4. Именование подпрограмм
Собственно, по поводу этого вопроса не стоит озадачиваться, т.к. я задаю их имена при проектировании. Собственно, выбирая задание, вы просто сообщаете мне имя выбранной подпрограммы.
5. Именование переменных и констант
Здесь я ни в чем не собираюсь вас огроничивать, поскольку все переменные являются локальными. Единственная просьба - давать им все-таки осмысленные имена.
6. Глобальные переменные и константы
Здесь ситуация чуть интересней. Эти сущности в некоторов колическтве обязательно будут присутствовать в проекте. Имена у них, как правило, получаются весьма длинными. Чтобы не набирать каждый раз вручную, можно ввести префиксы в начале имен и воспользоваться автоподстановкой по первым буквам.
Почти Венгерская нотация (Hungarian Notation) с небольшими доработками:
7. Использование объектов
Как и в случае с локальными переменными, здесь не будет ограничений. Единственно: если вы создаете объект, то не забудьте в конце его уничтожить и освоботить память. Использование глобальных объектов обговаривается отдельно.
|