分层原则:分层是为了降低软件深度复杂性而使用的关键思想,就像社会有了阶级一样,软件有了层次结构。
模块化原则:模块化是化解软件广度复杂的必然手段,模块化的目的就是让软件分工。
接口实现分离原则:随着软件模块化的不断深入改进,面向接口编程而不是面向实现编程可以让复杂度日趋增高的软件降低模块之间的耦合度,从而让各模块更轻松改进。从这个原则出发,软件也从微观进行了细致的规范化。
细节隐藏原则:很显然把复杂问题简化,把难看的细节隐去,能让软件结构更清晰。其实这个原则使用很普遍,java/c++语言中的封装原则以及设计模式中的Facade(外观)模式就很能体现这个原则的精神。
依赖倒置原则:随着软件结构的进一步发展,层与层之间、模块与模块之间的依赖逐渐加深,而层、模块的动态可插拔要求不端增大。依赖倒置原则可看视 为接口实现分离原则的深化,根据此原则的精神,软件进入了工具时代
必须尽可能早地建立一个良好的架构。即使在理论上,都很难通过采用重构等增量技术将一个糟糕的架构改良为一个好的架构,在实践中,那就更难了。这不是说重构是没有用的,而只是说明从一开始就建立一个良好的架构会更好。否则,重构的成本将很高昂,以致超出了功利的管理者所能接受的程度,那么他/她就会自然而然的选择简单修改而不是重构。所以,一个良好的架构需要在成本很小或者甚至零成本的时候就建立起来。优先构建架构会获得良好的投资回报的,它减少了项目执行过程中的重新设计和大量的返工。如果已经建立了一个良好的初始结构,就可以进行持续地重新评估架构,并做一些必要的完善和重构。
©️公众号:思考者文刀
- 上一篇: 「砥砺阅读」之十八《暗访十年(三)》
- 下一篇: 一致性Hash算法在分布式缓存中的运用
评论
ITSS
回复支持博主!!
冷知识
回复大话题,架构是个大东西