Каковы некоторые методы для ограничения зависимостей компиляции в проектах C ++? - PullRequest
6 голосов
/ 09 октября 2008

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

Ответы [ 4 ]

12 голосов
6 голосов
/ 09 октября 2008

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

альтернативный текст http://ak.buy.com/db_assets/prod_images/489/30611489.jpg

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

2 голосов
/ 09 октября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...