Разработчики Qt объявили о начале работы над проектом по приведению фреймворка к модульному виду. Многие из подсистем Qt разрабатываются разными группами разработчиков, развиваются с повышенной интенсивностью или плотно зависят от сторонних проектов, при грамотном разбиении фреймворка на модули, подобные подпроекты смогут обновляться и поставляться независимо от других частей Qt.

В частности, в настоящее время отдельно от Qt развиваются подпроекты Qt Creator, QMF и Qt Mobility, после перехода на модульную структуру аналогичную независимость получат такие подсистемы, как QtWebKit, Qt Quick, Tools (Assistant, Designer, Linguist), Qt3Support (прослойка для совместимости с Qt3), примеры и документация. Переход на модульную модель поставки планируется уже в версии Qt 4.8. В процессе реализации не предвидится подводных камней, так как в текущем виде Qt уже достаточно неплохо разбита на части через разнесение функций по разделяемым библиотекам.

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

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

монолитная архитектура:
модульная архитектура:


Источник: http://www.opennet.ru/opennews/art.shtml?num=28425