Каковы некоторые методы для ограничения зависимостей компиляции в проектах C++?

В проекте C++ зависимости компиляции могут затруднить сопровождение программного проекта. Каковы некоторые из лучших методов ограничения зависимостей как внутри модуля, так и между модулями?

4 ответа

Решение

Херб Саттер отлично описывает эту тему в пунктах 26, 27 и 28 "Минимизация зависимостей времени компиляции, части 1, 2 и 3" в своей превосходной книге " Исключительный C++", ISBN: 0201615622.

http://ak.buy.com/db_assets/prod_images/489/30611489.jpg

ИМХО, это одна из лучших доступных книг по программированию на C++.

Я думаю, что вы должны быть очень осторожны и внимательны к этому. Как правило, вы можете ограничить зависимости, разделяя код и используя абстрактные интерфейсы (например, указатели функций или эквивалентные объекты), но разделение обычно добавляет хрупкость. Например, вы можете вызывать модуль через общий абстрактный интерфейс, чтобы уменьшить зависимость от фактической реализации объекта, но вы должны обновить интерфейс синхронно с самим объектом, иначе код не будет работать во время выполнения.

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

Другие вопросы по тегам