假设项目的构建时间很长。因此,我想计划一个重构项目,将其中的某些部分作为单独的组件来避免重新编译。现在,我可以尝试重构很多东西,因此最好能够确定那些可以最大程度减少构建时间的模块。
那么我该怎么做呢?我可以根据粗略的人类可计数指标(例如行数或方法数)进行预测吗?或者我可以使用某种编译器分析器来测量编译器处理各种模块的速度,甚至对哪些模块最需要重构做出明确的声明/建议?
我本身不会太担心构建时间。如果项目构建时间花费如此长的时间,并且如果减少单个程序集的大小会有所帮助,那么这可能意味着单个程序集中有太多不相关的类。
我首先会重构您的类,以确保它们具有单一职责。我还会确保您的班级和班级成员使用尽可能少的访问权限 - 不要让您的所有班级
public
,也不要让您的所有成员public
或protected
。
接下来,尝试找出哪些公共类是相关的。如果您对它们进行了适当的命名,那么您应该能够根据类的名称来执行此操作。
考虑每组相关类有一个程序集的可能性。希望每个这样的程序集都包含主要相互引用的类。对其他程序集会有一些依赖性。您必须弄清楚哪些新程序集真正需要访问哪些其他程序集。
使用 ReSharper(或其他此类工具)可以使此过程变得实用。