16.2. Прозрачность — ключ к повторному использованию кода

16.2. Прозрачность — ключ к повторному использованию кода

История Дж. Рэндома Ньюби была испытана на множестве опытных программистов. Если читатель относится к их числу, то он, вероятно, отреагирует, как и большинство коллег: возгласом понимания. Если же читатель не является программистом, а управляет программистами, то автор искренне надеется, что история получилась назидательной.

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

В основе большинства неприятностей Дж. Рэндома Ньюби (и крупномасштабных проблем качества, которые они подразумевают) лежит прозрачность — или, вернее, ее недостаток. Невозможно устранить проблему в коде, который невозможно посмотреть изнутри. Фактически в любой программе с нетривиальным API-интерфейсом невозможно даже должным образом использовать то, что нельзя увидеть изнутри. Документация неадекватна не только на практике, но и в принципе. Она не способна передать все нюансы, реализованные в коде.

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

Существует еще одна жизненно важная необходимость в исходном коде. Урок, который Unix-программисты изучали в течение десятилетий, заключается в том, что исходный код выдерживает испытание временем, а объектный — нет. Изменяются аппаратные платформы и служебные компоненты, такие как библиотеки поддержки, в операционных системах появляются новые API-интерфейсы и устаревают прежние. Меняется все, а непроницаемые двоичные исполняемые модули не способны адаптироваться к изменениям. Они хрупки, невозможно надежно обеспечить их дальнейшую переносимость, а кроме того, их необходимо поддерживать с помощью расширяющихся и подверженных ошибкам уровней кода эмуляции. Они замыкают пользователей в рамках предположений разработчиков. Исходный код необходим, ведь даже если нет ни намерений, ни необходимости изменять программу, в будущем для обеспечения работоспособности программы ее придется перекомпилировать в новых средах.

Важность прозрачности и проблема устаревания кода являются теми причинами, по которым следует требовать открытости повторно используемого кода для проверки и модификации[135]. Это лишь предварительный аргумент в пользу того, что сейчас называется "открытым исходным кодом". Понятие "открытый исходный код" имеет более важный смысл, чем просто требование прозрачности и видимости кода.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

5.9 Подготовка к использованию ПО

Из книги ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ВСТРОЕННЫХ СИСТЕМ. Общие требования к разработке и документированию автора Госстандарт России


Руководство по использованию диска

Из книги Photoshop. Мультимедийный курс автора Мединов Олег

Руководство по использованию диска Прежде чем установить прилагаемый к данной книге диск, внимательно прочтите предлагаемое руководство. Это поможет избежать возможных ошибок в работе и в конечном итоге сэкономит ваше драгоценное


Руководство по использованию диска

Из книги Excel. Мультимедийный курс автора Мединов Олег

Руководство по использованию диска Прежде чем установить прилагаемый к книге диск, внимательно прочтите данное руководство. Это поможет избежать возможных ошибок в работе и в конечном итоге сэкономит ваше драгоценное


Руководство по использованию диска

Из книги Windows Vista. Мультимедийный курс автора Мединов Олег

Руководство по использованию диска Прежде чем установить прилагаемый к данной книге диск, прочтите предлагаемое руководство. Это поможет избежать ошибок в работе и сэкономит


Руководство по использованию диска

Из книги Office 2007. Мультимедийный курс автора Мединов Олег

Руководство по использованию диска Прежде чем установить прилагаемый к книге диск, внимательно прочитайте данное руководство. Это поможет избежать возможных ошибок в работе и в конечном итоге сэкономит ваше драгоценное


Сетчатая прозрачность

Из книги КОМПАС-3D V10 на 100 % автора Кидрук Максим Иванович

Сетчатая прозрачность По многочисленным просьбам пользователей в девятой версии в системе КОМПАС-3D был доработан механизм расчета и отображения полупрозрачных объектов. Теперь в программе можно выбирать один из двух видов отображения прозрачности: сетчатая или


16.2. Прозрачность — ключ к повторному использованию кода

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

16.2. Прозрачность — ключ к повторному использованию кода История Дж. Рэндома Ньюби была испытана на множестве опытных программистов. Если читатель относится к их числу, то он, вероятно, отреагирует, как и большинство коллег: возгласом понимания. Если же читатель не


Лекция 4. Подходы к повторному использованию

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Лекция 4. Подходы к повторному использованию В этой лекции будут рассмотрены некоторые из проблем, направленных на широкомасштабное внедрение повторного использования программных компонентов. Цели повторного использования "Последуйте примеру проектирования


«Высокий ключ»

Из книги Цифровая фотография без Photoshop автора Газаров Артур Юрьевич

«Высокий ключ» High key, или «высокий ключ», – это фотография в светлой тональности, выполненная в светло-белесых тонах, когда контуры и очертания объектов будто растворяются в светлом сиянии – ярком белом свете. У зрителя создается впечатление, что все в кадре заполняет


«Низкий ключ»

Из книги VBA для чайников автора Каммингс Стив

«Низкий ключ» Low key – «низкий ключ» – техника съемки, которая используется для получения фотографии с преобладанием темных тонов (рис. 10.4). На снимке будут иметь место абсолютно черные участки, а также резкие тени. Вам нужно добиться, чтобы фон получился совершенно черным,


Номер - это ключ.

Из книги IT-безопасность: стоит ли рисковать корпорацией? автора Маккарти Линда

Номер - это ключ. После того как файл открыт для доступа VBA, обращение к нему осуществляется по номеру, а не по имени. Если приходится работать с несколькими файлами одновременно, отслеживать то, какой файл вам необходим в данный момент, совсем не просто. В принципе, никто не


Обучать использованию

Из книги Реконизм. Как информационные технологии делают репутацию сильнее власти, а открытость — безопаснее приватности автора Сименко Илья Александрович

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


4.2. Инструкция по использованию

Из книги Wiki-правительство [Как технологии могут сделать власть лучше, демократию – сильнее, а граждан – влиятельнее] автора Новек Бет

4.2. Инструкция по использованию Программа GraphExpress, которая прилагается к книге, представляет собой упрощенную аппликацию для проведения простого графологического анализа. Использовать ее может каждый, кто хоть немного ознакомился с признаками почерка. Поэтому и


5.2. Инструкция по использованию

Из книги автора

5.2. Инструкция по использованию Программа достаточно проста в использовании и имеет удобный пользовательский интерфейс.Для удобства, перед тем как начать анализ почерка, на чистом листе бумаги напишите все буквы алфавита (прописной и строчный варианты) и/или несколько