боры. Обычно это вызвано не
последовательной сменой главных разработчиков, а разбиением проекта на
множество частей, выполняемых многими людьми.
Я продолжаю настаивать на том, что концептуальное единство является
самым важным соображением при проектировании системы. Лучше иметь систему,
не имеющую некоторых не слишком существенных свойств, но воплощающую в
единое целое множество концепций проектирования, чем систему, содержащую
много хороших, но независимых и нескоординированных идей.
В этой и двух последующих главах мы рассмотрим именно эту сторону
создания систем программирования и попытаемся ответить на вопросы:
* Как добиться концептуального единства проекта?
* Не подразумевает ли такая постановка проблемы деления на элиту, т. е.
аристократов-архитекторов, и серую массу плебеев-программистов, творческие
таланты и идеи которых всячески подавляются?
* Как удержать архитектора от витанпя в облаках, от создания
нереализуемых или просто дорогих спецификаций?
* Как добиться того, чтобы каждая, даже незначительная деталь
спецификации, сделанной архитектором, дошла до исполнителя, была им
правильно осмыслена и нашла свое место в конечном продукте?
Как добиться концептуального единства
Система программирования предназначена для того, чтобы облегчить
пользование вычислительной машиной. С этой целью создаются -машинные языки и
другие различные средства, являющиеся по существу программами. Обращение к
ним и управление ими тоже выполняется с помощью машинного языка. Но эти
средства весьма дороги: внешнее описание системы программирования стоит в
десять-двадцать раз больше, чем внешнее описание самой вычислительной
системы. Пользователю гораздо легче самому определить любую требуемую
функцию, чем выбрать ц запомнить множество вариантов, форматов и т. п.
Пользование облегчается, если время, выигранное благодаря
|