У нас есть программный пакет, которому около 16 лет. Он прошел почти каждую версию Delphi (помимо .NET). На протяжении многих лет все становится очень запутанным, когда речь идет о перекрестных ссылках и правильной настройке дополнительных пакетов (например, сторонних библиотек). Мне было интересно, есть ли какая-то стандартная практика, когда речь идет о создании крупных проектов (и групп проектов), подобных этому.
Итак, чтобы объяснить текущую настройку...
Это многозадачная система. Смысл, есть 12 исполняемых проектов (и несколько DLL и сервисные проекты). Мы также держим вещи в SourceSafe, и несколько разработчиков работают над одним и тем же кодом на разных компьютерах. Все эти проекты более загружены в центральную папку. Папка "Root" содержит основной проект EXE (вместе с примерно 20 папками, все содержащие единицы и формы), и это почти похоже на бесконечную иерархию папок и файлов. Только один проект содержит полмиллиона строк кода.
Затем все дополнительные приложения не обязательно должным образом отделены от этого основного проекта. Каждый из этих проектов имеет свою собственную папку, основанную на главном проекте проекта.
Две мои основные проблемы:
- Как правильно настроить файлы DCU, чтобы они не смешивались с проектами? DCU НЕ следует размещать в SourceSafe (и любом подобном файле, если на то пошло), или иначе - любой файл, скомпилированный из проекта. Visual SourceSafe делает файлы доступными только для чтения, когда их не выгружают, а файлы DCU (и EXE файлы и т.д.) Не могут быть записаны в этом случае. Итак, как правильно отделить любой из таких файлов с удаленным местоположением, чтобы избежать какой-либо смеси с исходным кодом?
- Как правильно настроить пакеты и библиотеки? У нас есть следующее:
- QuickReports 5.05
- Библиотека NativeJpg V302 -
- Другая анонимная библиотека отчетов
- Наш собственный пакет компонентов, который требует QuickReports, NativeJpg и другую анонимную библиотеку
Все 4 из этих библиотек хранятся в совершенно разных местах каждого компьютера и нуждаются в некоторой централизации. Самая большая боль при настройке каждого нового компьютера-разработчика - найти их у ведущего компьютера-разработчика и скопировать их на одно место на другом компьютере (и убедиться, что путь библиотеки правильный и т.д.).
Нам также необходимо сохранять полностью отдельные среды для разных версий Delphi на одном компьютере. Это означает копию проектов на каждом компьютере, копию пакетов и библиотек на каждом компьютере, копию проектов и пакетов и библиотек в SourceSafe и т.д. Каждый компьютер должен иметь идентичную настройку. Мы уже используем переменные среды, чтобы направлять наши проекты, где искать определенные файлы проектов (и библиотеки).
Еще одна новая проблема: XE2 представляет 64-битные возможности. Мы еще не планируем на 64-битную компиляцию, но мы, безусловно, будем в будущем. Как правильно отличить 32bit от 64bit во всех этих проектах?
То, что я действительно прошу, - это ссылка на хороший учебник о том, как оптимизировать такую среду и держать ее организованной лучше всего. Я не ожидаю, что кто-нибудь найдет время и ответит на все это в вопросе. Проектам исполнилось более 15 лет, в их распоряжении были более 200 разработчиков со всего мира, и у них много перекрестных ссылок между проектами. Например, один проект может использовать единицу из другого проекта и наоборот. Мне лично это не нравится, но я также не разрабатывал его для начала. Мне была поставлена задача организовать эту систему и тщательно документировать, как настроить Delphi на новом компьютере для новых разработчиков для работы над нашими проектами. Поскольку я смотрю на наши проекты (поскольку я не обязательно разработчик системы, но меня втягивают в разработку), я вижу много путаницы в том, как организован код.
Я предполагаю, что, возможно, у Embarcadero есть некоторые рекомендации и стандарты по настройке такой среды?