Книга: Искусство программирования для Unix

19.2.4.4. Проектирование с учетом обновлений

19.2.4.4. Проектирование с учетом обновлений

По мере выхода новых версий, программы изменяются. Некоторые изменения обратно не совместимы. Соответственно, следует серьезно продумать проектирование схемы инсталляции, для того чтобы несколько установленных версий кода могли сосуществовать в одной системе. Это особенно важно в отношении библиотек — нельзя рассчитывать на то, что все клиентские программы будут обновляться по мере изменения вашего API-интерфейса.

Проекты Emacs, Python и Qt имеют хорошее соглашение для реализации этого принципа: каталоги с номерами версий (другой практический прием, который, вероятно, становится установившейся практикой благодаря FSF). Ниже показано, как выглядит установленная библиотека Qt (${ver} — номер версии).

/usr/lib/qt /usr/lib/qt-${ver}
/usr/lib/qt-${ver}/bin     # Расположение moc
/usr/lib/qt-${ver}/lib     # Расположение .so
/usr/lib/qt-${ver}/include # Расположение заголовочных файлов

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

Оглавление книги


Генерация: 1.156. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз