7 Препроцессор ooc — Обеспечение выполнения стандарта кодирования

Предыдущая  Содержание  Следующая V*D*V

После просмотра последней главы кажется, что мы решили одну большую проблему, прояснив сопровождение класса, путём введения другой большой проблемы: у нас теперь есть ужасное количество договорённостей о том, как должны быть написаны некоторые функции (в первую очередь конструктор метакласса) и какие дополнительные функции должны быть предоставлены (селекторы, селекторы суперклассов, и инициализации). У нас также есть правила для защищённого кодирования, то есть проверки аргументов, но эти правила не являются единообразными: мы должны быть параноиками в селекторах и статически скомпонованных методах, но можем быть более доверчивы в динамически скомпонованных методах. Если позже мы решим изменить наши правила, скорее всего придётся пересмотреть значительное количество достаточно стандартного кода — повторяющийся и подверженный ошибкам процесс.

В этой главе мы рассмотрим проект препроцессора ooc, который поможет придерживаться соглашений, разработанных в предыдущей главе. Этот препроцессор достаточно прост, чтобы быть реализованным в течение нескольких дней с помощью awk [AWK88] и позволяет следовать (а затем перепроектировать) наши соглашения кодирования. ooc документирован с помощью страницы руководства в приложении C, реализация подробно описана в приложении B, а полный исходный код доступен как часть исходников для этой книги.

ooc, конечно, не преследует цели ввести новый язык программирования — мы все ещё работаем с ANSI-C и то, что получается на выходе из ooc это именно то, что мы хотели бы написать вручную.

 

Предыдущая  Содержание  Следующая