Главная » Программирование звука » Приложение C Стиль программирования

0

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

Я  потратил  достаточно  много  времени  на  разработку  стиля  программирования,  используемого  в  этой  книге.  Моя  основная  цель  заключается  в  том,  чтобы сделать  код  более  легким  для  понимания.  Для  этого  нужно  сохранить  отдельные классы  относительно  простыми  и  в  то  же  время  сделать  интерфейсы  классов  непротиворечивыми  и  понятными  (вам  необязательно  знать,  что  находится  внутри класса, чтобы быть в состоянии использовать его). Для простоты я также не активировал ряд возможностей C++.

Эффективность   вторичный  параметр.  Хотя  я  уверен,  что  мой  программный код   достаточно   эффективен,   я   избегал   некоторых   сложных   подходов,   которые могли бы сделать его еще более эффективным. Гибкость также вторична. Этот код достаточно  легко  использовать  во  многих  случаях,  однако  я  опустил  ряд  деталей (таких   как   конструкторы   преобразования   и   виртульные   функции-члены),   которые могли сделать его еще более гибким.

Далее  представлен  список  некоторых  используемых  мною  соглашений  в  слу-

чайном порядке:

?  я   интенсивно   привлекаю   спецификаторы   области   видимости   (такие   как public, protected или private) в определениях классов. Вам не нужно долго копаться в коде, чтобы определить область видимости элемента;

?  я  упростил  обработку  ошибок.  Многие  из  них  обрабатываются  через  вывод

простого  сообщения  в  cerr и  вызов  функции  exit.  Хотя  это  делает  код менее  устойчивым,  зато  значительно  его  упрощает.  Если  вы  хотите  использовать  мой  код  в  коммерческом  продукте,  вам,  вероятно,  придется  доработать данный аспект;

?  я не применяю множественное наследование;

?  я не привлекаю глобальные переменные;

?  я  использую  там,  где  возможно,  статические  (спецификатор  static),  ло-

кальные  для  файла  функции  и  переменные.  Это  иногда  позволяет  мне  со-

хранять детали реализации вне заголовочных файлов;

?  многословные    идентификаторы    записываются    с    прописными    буквами

в начале слов. Например, ClassName или variableName;

?  имена классов и функций начинаются с прописных букв;

?  имена  переменных  всегда  начинаются  со  строчной  буквы.  Имена  перемен-

ных-членов   с  символа  подчеркивания.  (Это  позволяет  различать  локаль-

ные переменные функций и переменные-члены.);

?  все переменные-члены объявляются со спецификатором private;

?  только простейшие методы определяются в заголовочных файлах;

?  я   интенсивно   использую   новую   запись   для   приведения   типов.   Вместо

(double) i применяется static_cast<douЫe>i.Teм  нe мeнee лyчшe нe брать  в  расчет  динамическое  приведение  (dynamic_cast),  так  как не  все компиляторы поддерживают его;

?  чтобы  код  был  достаточно  простым,  я  избегал  привлечения  шаблонов,  вло-

женных  типов,  больших  иерархий  наследования,  пространств  имен,  статичес-

ких классовых методов и переменных и многих других возможностей C++;

?  я  использую  новый  тип  данных  bool,  появившийся  в  C++,  хотя  есть  компи-

ляторы,  которые  не  поддерживают  его.  Учитываю  только  основные  возмож-

ности, чтобы вы могли запустить код, добавив следующие строки:

type int bool;

#define true (1)

#define false (0)

Источник: Кинтцель Т.  Руководство программиста по работе со звуком = A Programmer’s Guide to Sound: Пер. с англ. М.: ДМК Пресс, 2000. 432 с, ил. (Серия «Для программистов»).

По теме:

  • Комментарии