组织即战略
2024-01-03 19:38:47
软件设计很大程度上取决于良好的组织。遗留软件项目通常缺乏这种质量。尽管主题很大,但本文将重点讨论较小的领域。
常量和类型对于良好的设计至关重要。这些声明的范围比通常给出的范围更值得考虑。
首先,将常量和简单类型设为全局不会对代码产生任何影响。由于它们不生成代码,因此范围问题的关注度有限。但是,您可能希望为常量创建多个文件,为小型类型创建多个文件,以更好地管理它们的组织,并反映出某些文件可能是全局的,而另一些文件可能仅适用于应用程序的较小区域。
您可能想知道为什么这很重要。原因之一是,在遗留项目中,您可能需要与单元依赖循环 (UDC) 作斗争。许多 UDC 的存在会减慢构建速度,并显着增加复杂性。此外,它们几乎完全是设计错误的证据。
如果您的项目存在大量 UDC,那么当您将模块添加到 use 子句时,您可能会增加 UDC 数量。有时,添加引用可能只是为了访问常量或枚举。于是就有了这篇文章。
您最好开始将常量和简单类型移动到单独的模块中。一次执行几次此操作,然后修复由此产生的构建错误。完成构建后,使用 CnPack ( https://cnpack.org ) 使用 Cleaner 来处理您添加了对常量和类型的新模块的引用的每个模块。CnPack 将识别出您不再需要引用的模块。
您可能还希望使用 MMX ( https://www.mmx-delphi.de ) 来分析单元依赖性,并保留一些减少的记录。
与遗留项目工作的几乎任何方面一样,这将是一场马拉松,而不是短跑。如果您有数百个模块,请不要期望在几天内完成工作。并认识到,当您继续进行时,已经清洁过的单元将需要再次清洁。但最终,这些行动虽然简单,但却会结出硕果。