[转帖]聊聊软件开发的REP、CCP、CRP原则

聊聊,软件开发,rep,ccp,crp,原则 · 浏览次数 : 0

小编点评

**软件开发中的REP、CCP和CRP原则** **序文** 软件开发中,重复性、可复用性和可维护性是三个重要原则,它们在设计软件时极大地影响代码的可维护性。 **REP复用/发布等同原则(REP)** REP原则表明,软件开发中,复用相同功能的组件应该具有相同的发布版本号。这意味着组件的最小粒度应该等同于其发布的最小粒度,需要有自己的发布版本号。 **Common Closure Principle(CCP)共同闭包原则** CCP原则表明,组件层面的单一职责原则。这意味着组件应该只与同类组件进行交互。如果一个组件需要改变,那么该组件应该包含所有与之相关的类。 **Common Reuse Principle(CRP)共同复用原则** CRP原则表明,类在软件开发中应该被尽可能地复用。如果一个组件可以被多个类使用,那么应该将它们放入同一个组件中。

正文

https://www.jianshu.com/p/5346f031904c

 

本文主要研究一下软件开发的REP、CCP、CRP原则

 
4187683058-8a26ecd11fb02b85_fix732.png

The Reuse/Release Equivalence Principle (REP)

复用/发布等同原则
The granular of reuse is the granular of release.
软件复用的最小粒度应等同于其发布的最小粒度,需要有自己的发布版本号。

The Common Closure Principle (CCP)

共同闭包原则,即组件层面的单一职责原则
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 Common Reuse Principle (CRP)

共同复用原则
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原则是排除性原则,它会尽量让组件变小。

doc

与[转帖]聊聊软件开发的REP、CCP、CRP原则相似的内容:

[转帖]聊聊软件开发的REP、CCP、CRP原则

https://www.jianshu.com/p/5346f031904c 序 本文主要研究一下软件开发的REP、CCP、CRP原则 4187683058-8a26ecd11fb02b85_fix732.png The Reuse/Release Equivalence Principle (RE

[转帖]如何用Perf解开服务器消耗的困境

https://rdc.hundsun.com/portal/article/637.html 无论是网站还是软件产品,服务器作为资源池,其重要性不言而喻。监控并了解服务器资源的消耗情况更是能将众多问题防范于未然,也许,一般的监控对于业内人基本不是问题,那让我们聊聊秘密武器Perf,你也许会有恍然大

[转帖]关于华为产品生命周期

关于企业级产品都有EOL里程碑,因些需要考虑对已购产品、业务的生命周期进行升级、迁移、替换等统筹规划。另外如果遇到产品、业务整体出售,还需要评估对现有资产的影响等不可控因素。 今天聊聊华为产品的生命周期,点击查看原文 华为产品生命周期关键里程碑: 华为软件版本生命周期关键里程碑: 点击查询华为产品生

[转帖]聊聊jvm的Code Cache

https://www.jianshu.com/p/b064274536ed 本文主要研究一下jvm的Code Cache Code Cache JVM生成的native code存放的内存空间称之为Code Cache;JIT编译、JNI等都会编译代码到native code,其中JIT生成的na

[转帖]聊聊 ARM 与 RISC-V(转自邵巍的专栏《说透芯片》)

https://aijishu.com/a/1060000000218521 编者按:2个月前,我在《【揭秘半导体产业,助力中国芯】Winnie shao博士开课了!》中推荐过邵巍博士的这个专栏课程。今天再次推荐是因为全部内容已经连载完成。 可以看到,已经有1700多位读者朋友付费学习。由于时间等原

[转帖]聊聊HotSpot VM的Native Memory Tracking

https://cloud.tencent.com/developer/article/1406522 序 本文主要研究一下HotSpot VM的Native Memory Tracking Native Memory Tracking java8给HotSpot VM引入了Native Memor

[转帖]聊聊jvm的Code Cache

https://juejin.cn/post/6844903809932591112 序 本文主要研究一下jvm的Code Cache Code Cache JVM生成的native code存放的内存空间称之为Code Cache;JIT编译、JNI等都会编译代码到native code,其中JI

[转帖]聊聊Chat GPT-1到GPT-4的发展历程

http://blog.itpub.net/69925873/viewspace-2935360/ OpenAI的Generative Pre-trained Transformer(GPT)模型通过引入非常强大的语言模型,在自然语言处理(NLP)领域引起了巨大震动。这些模型可以执行各种NLP任务,

[转帖]聊聊我对 GraphQL 的一些认知

https://www.modb.pro/db/139451 作者简介:haohongfan 是 Apache Dubbogo Committer,目前就职于京东,擅长高并发架构设计。公众号 HHFCodeRv 会定期发布原创文章,包括源码分析、业务思考、架构设计等。推荐大家关注 每隔一段时间就能看

[转帖]简单聊聊运维监控的其他用途

https://www.cnblogs.com/charlieroro/p/16434344.html 说到监控,一般都会聊到这三个基本维度:metrics、log和tracing,以及这几种常用的工具:Prometheus+grafana+alertmanager、ELK、jaeger。 监控通常