https://www.jianshu.com/p/5346f031904c
本文主要研究一下软件开发的REP、CCP、CRP原则
复用/发布等同原则
The granular of reuse is the granular of release.
软件复用的最小粒度应等同于其发布的最小粒度,需要有自己的发布版本号。
共同闭包原则,即组件层面的单一职责原则
The classes in a component should be closed together against the same kinds of changes. A change that affects a component affects all the classes in that component and no other components.
我们应该将那些会同时修改,并且为相同目的而修改的类放到同一个组件中,而将不会同时修改,并且不会为了相同目的而修改的那些类放到不同的组件中。
对大部分应用程序来说,可维护性的重要性要远远高于可复用性。如果某程序中的代码必须要进行某些变更,那么这些变更最好都体现在同一个组件中,而不是分布于很多个组件中。因为如果这些变更都集中在同一个组件中,我们就只需要重新部署该组件,其他组件则不需要被重新验证、重新部署了
共同复用原则
The classes in a component are reused together. If you reuse one of the classes in a component, you reuse them all.
不要强迫一个组件的用户依赖他们不需要的东西。建议我们将经常共同复用的类和模块放在同一个组件中。
REP和CCP原则是黏合性原则,它们会让组件变得更大,而CRP原则是排除性原则,它会尽量让组件变小。