Я считаю, что каждый должен следить за своими подразделениями.(Вам не нужно делать это только в том случае, если вы являетесь сторонним поставщиком компонентов - так как вы хотите уменьшить конфликт имен на любых используемых вами внешних блоках.) Обозначая ваши юниты, вы проделываете очень долгий путь, чтобы предотвратить именование юнитов.проблемы.
Я настоятельно рекомендую использовать глобальный префикс, который вы будете использовать для всех внутренних модулей.Вы можете использовать сокращенную форму названия вашей компании или ваше полное имя в качестве полностью ваших предпочтений.Я бы порекомендовал просто что-то читаемое и легкое для ввода.
Если вы работаете в нескольких крупных проектах, за ними будут следовать имена, относящиеся к конкретному проекту, например Acme.Widgets.SlicerUtils.pas для продукта / проекта Widgets и Acme.Wonkers.WippleFactory.pas для продукта Wonkers..
Независимо от наименования, это должно сильно зависеть от того, как вы версуете свои проекты и управляете исходным кодом.Вы хотите иметь возможность легко настроить сборку для версии 1.2.1.0 проекта Widgets, чтобы включить все модули, связанные с этой конкретной сборкой.(1.2.1.0 Виджеты могут включать в себя явную версию 1.5.3.0 системной библиотеки). Это должно быть легко понято всеми разработчиками и, по-видимому, управляемо.Чтобы начать работу над 1.2.1.1 проекта виджетов, вам необходимо выполнить операции одним щелчком мыши.
Ответ на вопрос подкаталога по общему правилу состоит в том, чтобы разделить управляемые версиями проекты в свои собственные подкаталоги.Поэтому, если ваша библиотека Acme.System.Security.Compression контролируется версией отдельно, чем Acme.System.Security.Auth, то у вас будет структура подкаталога root \ System \ Compression ... но, скорее всего, у вас просто будет Acme.Widgets.System)
Надеюсь, это немного поможет.