IT架构上的5分:良好软件架构的三个定律

体系结构决策的问题在于它们会影响整个系统,并且/或者您经常需要在开发过程的早期就将其制定出来。 如果您在几个月后更改该决定,则需要付出很多努力。 从经济角度来看,架构决策通常是不可撤销的。 好的架构可以使架构师做出较迟的决策,而不会对工作和成本产生明显的影响。 让我们记录下来。
法则1:好的架构是使建筑师能够做出最少的,不可撤销的决定的架构。
为了最大程度地减少不可撤销的决策,系统需要对变化做出响应。 我从软件开发项目中学到了一个重要的教训:除了改变,没有什么是永久的。 客户改变了他对需求的看法。 利益相关者改变他们对重要事物的看法。 人们加入并离开项目团队。 改变本身并不会改变的事实使我想到了良好架构的第二条规则,即:
法则2:要使决定可撤销,您需要设计灵活性。
这是最具挑衅性的声明,我在这里进行有争议的讨论。 原因是灵活性引入了抽象需求。 抽象使用简化策略,其中先前的具体细节含糊不清,含糊不清或不确定(来自Wikipedia )。 这种简化过程并非总是容易做到的,尤其是对于其他人而言,是遵循的。 “使某些事情易于更改会使整个系统更加复杂,而使所有内容易于更改会使整个系统非常复杂。 复杂性使软件难以更改。” 来自M. Fowler的文章 )这是构建良好软件体系结构的核心问题:开发易于更改但同时易于理解的软件。 有几种概念试图解决这个矛盾问题: 设计模式面向对象的设计原则 。 多态性,松散耦合和高内聚性是我的灵活性促成因素。
法则3:要利用灵活性,需要无情地重构。
灵活性本身并不是目的。 您需要积极利用灵活的设计。 如果有什么变化,并且使先前的设计或体系结构决策过时,则需要进入代码并更改软件。 否则,构建灵活软件的工作将毫无用处,技术债务可能会导致延迟交付和维护噩梦。 您对代码库采取了严格的措施,这一事实要求您不断地反馈有关软件质量的信息。 因此,为了能够进行重构,必须有足够数量的自动化测试来覆盖代码库。 在理想情况下,所有内容都集成到一个持续集成环境中,以接收有关代码库运行状况的永久反馈。
参考:来自我们JCG合作伙伴 Niklas的“关于IT架构的5分:良好软件架构的三大法则”。

翻译自: https://www.javacodegeeks.com/2012/05/5-on-it-architecture-three-laws-of-good.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值