Настройка большой программной системы в Delphi

У нас есть программный пакет, которому около 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-битную компиляциювсе же, но мы, безусловно, будем в будущем. Как правильно отличить 32-битную от 64-битной во всех этих проектах?

То, что я действительно прошу, - это ссылка на хороший учебник о том, как оптимизировать такую среду и обеспечить ее наилучшую организацию. Я не ожидаю, что кто-то найдет время и ответит на все это в вопросе. Проектам более 15 лет, в них приняли участие более 200 разработчиков со всего мира, и у них МНОГО перекрестных ссылок между проектами. Например, один проект может использовать модуль из другого проекта, и наоборот. Мне лично не нравится эта концепция, но я также не разработал ее с самого начала. Мне было дано задание организовать эту систему и тщательно задокументировать, как настроить Delphi на новом компьютере, чтобы новые разработчики могли работать над нашими проектами. Когда я смотрю на наши проекты (поскольку я не обязательно являюсь разработчиком системы, но меня втягивают в разработку), я вижу много путаницы в том, как организован код.

Я предполагаю, что, возможно, у Embarcadero есть некоторые руководящие принципы и стандарты для создания такой среды?

Ответы на вопрос(7)

Ваш ответ на вопрос