Ive*_*aev 0 delphi scope naming-conventions delphi-xe2
随着 Delphi XE2 的出现,类似Xml.Internal.AdomCore_4_3或 的范围单元System.StrUtils开始流行。
我喜欢使用此类描述性名称的能力,但我对命名约定和首选目录结构是什么感到困惑。
应该是
com.company.project.Security.Compression.ZLib.pas就像在Java中一样
System.Security.Compression.ZLib.pas就像在 .NET 中一样
或者是其他东西?
我应该将文件放在这样的目录结构中吗
System\Security\Compression\System.Security.Compression.ZLib.pas
或者只是System.Security.Compression.ZLib.pas在根文件夹中?
看看 Embarcadero 组织其单元的方式,我留下的印象是他们只是保留了 Delphi 5/6/7/.../XE 中的目录结构
请指教。
我相信每个人都应该确定自己的单位范围。(仅当您是第 3 方组件供应商时,您才不需要执行此操作 - 因为您希望减少您使用的任何外部单元上的名称冲突。)通过确定单元的范围,您将在很大程度上防止单元命名问题。
我强烈建议您为所有内部创建的单元使用一个全局前缀。您可以使用公司名称的缩写形式,也可以根据您的喜好使用全名。我会推荐一些可读且易于输入的内容。
如果您参与几个主要项目,那么将遵循项目特定的名称,例如 Widgets 产品/项目的 Acme.Widgets.SlicerUtils.pas 和 Wonkers 产品的 Acme.Wonkers.WippleFactory.pas。
无论命名如何,这都应该与您对项目进行版本化和管理源代码的方式密切相关。您希望能够轻松设置 Widgets 项目 1.2.1.0 版本的构建,以包含与该特定构建相关的所有单元。(1.2.1.0 小部件可能包括系统库的显式修订版 1.5.3.0)这需要让所有开发人员轻松理解并无缝管理。您应该需要一键操作来开始 Widgets 项目 1.2.1.1 的工作。
子目录问题可以通过将版本控制项目分离到它们自己的子目录中的一般规则来回答。因此,如果您的 Acme.System.Security.Compression 库与 Acme.System.Security.Auth 是单独进行版本控制的,那么您将拥有 root\System\Compression 子目录结构...但更有可能的是您只拥有 Acme。小部件.系统)
希望这有所帮助。
| 归档时间: |
|
| 查看次数: |
594 次 |
| 最近记录: |