Может так случиться, что для разных конфигураций сборки проекта может понадобиться разные файлы. Тогда сделать просто, раскидываем файлы по папкам:
build
- Release
- Debug
Но как всегда возникает проблема, что нужно копировать одни и теже файлы в обе папки. Это досадно и неприятно. Получается дублирование файлов. А это зло, так скажет любой нормальный Agile-разработчик.
Для этого рекомендую применить рефакторинг:
Extract Superdirectory
You have two directory with similar files.
Create a superdirectory and move the common files to the directory.
В результате получаем несоколько папок:
build
- Common
- Release
- Debug
Другой вопрос, если в файлах папки Common нужно кастомизировать часть файла исходя из типа сборки. Ну тут чуть сложнее, используем Configuration Adapter паттерн. Который в зависимости от сборки вырезает и заменяет секции файла исходя из типа сборки. Реализация совсем проста - это исполняемый файл, который натравливается на, например, конфигурационный файл, он ищет секции заключённые в нужные теги (@Release@, например), а остальные стерает (@Debug@).
суббота, 6 декабря 2008 г.
Extract Superdirectory (Configuration Refactoring)
на 02:43
Ярлыки: Refactoring
Подписаться на:
Комментарии к сообщению (Atom)
>Другой вопрос, если в файлах папки Common нужно кастомизировать часть файла исходя из типа сборки.
ОтветитьУдалитьДенис, это необходимо в некоей абстрактной сборке или в рамках какой-то конкретной технологии?
Технологий не слышал таких. Обходимся своим "вырезателем" :)
ОтветитьУдалитьПравда там возникают проблемы, которые исходят из того, какого размера секция, которая должна быть оставлена или удалена. Если она слишком маленькая, то указав новоиспечённые метки может получится нарушение конфигурационного xml-файла. Начинают ругаться валидаторы и т.п. Поэтому приходится делать секции больше. А это приводит к дубляжу неких тэгов конфигурации.
Язык программирования какой?
ОтветитьУдалить