Переносимость
Степень переносимости
Наконец, стандартизация, так же как и соглашения, может служить еще одной демонстрацией строгого порядка. Но, в отличие от соглашений, она принимается в современной архитектуре как продукт, хоть и украшающий нашу технологию, но опасный из-за ее потенциального доминирования и грубости.Язык
Придерживайтесь стандарта. | Первое, что необходимо для создания переносимого кода, – это, конечно, использование языка высокого уровня, причем его стандарта, если таковой определен. Двоичные коды переносятся плохо, исходный код – несколько лучше.Заголовочные файлы и библиотеки
Заголовочные файлы и библиотеки предоставляют возможности, расширяющие базовый язык. Например, ввод и вывод осуществляются с помощью библиотек stdio в С, lost ream в C + + и Java, io в Java. Строго говоря, эти элементы не являются частью языка, но они определен!Организация программы
Существуют два основных подхода к переносимости, которые мы назовем объединением и пересечением. Объединение подразумевает использование лучших возможностей каждой конкретной системы; компиляция и установка при этом зависят от условий конкретной среды.Изоляция
Нам хотелось бы иметь единый исходный код, который бы компилировался без изменений во всех системах, но, к сожалению, это может быть нереально. Однако было бы ошибкой позволить непереносимому коду расползтись по всей программе, как это и происходит при условной компиляции.Обмен данными
Текстовые данные передаются между системами в неизменном виде, так что это самый простой и универсальный способ для передачи произ вольной информации между системами. | Для обмена данными используйте текст. | С текстом легко оперировать посредством множества программ;Порядок байтов
Несмотря на все описанные выше недостатки, иногда двоичные данные оказываются необходимы. Например, они несравненно более компактны и их гораздо быстрее декодировать, а эти факторы очень важны для компьютерных сетей. Но двоичные данные имеют серьезнейшие проблемы с переносимостью.Переносимость и внесение усовершенствований
Одним из наиболее огорчительных источников проблем переносимости является изменение системного программного обеспечения за время жизненного цикла. Изменения могут затронуть любой интерфейс системы, приводя к неоправданной несовместимости версий. | При изменении спецификации изменяйте и имя.Интернационализация
Если вы живете в Соединенных Штатах, то вы, может быть, забыли, что английский – не единственный язык на свете, ASCII – не единственный набор символов, $ – не единственный символ валюты, что даты могут записываться с указанием сначала дня, а потом уже месяца, что время может записываться в формате с 24-мя часами и т. п.Заключение. Дополнительная литература.
Переносимый код – это идеал, к которому надо стремиться, поскольку только он способен сэкономить вам время при переносе программы из системы в систему или при изменении текущего окружения. Однако переносимость достается не бесплатно – вам придется быть особенно внимательными при написании кода, а также представлять себе детали всех потенциально пригодных систем.