第十章 柔性设计

柔性设计强调设计的可修改性和易用性,包括INTENTION-REVEALING INTERFACES、SIDE-EFFECT FUNCTION、ASSERTION、COUNCEPTUAL CONTOUR和CLOSURE OF OPERATOR等模式。通过这些模式,可以创建更易理解和维护的代码,提高团队合作效率。例如,使用透露意图的接口减少理解成本,采用无副作用的函数简化程序逻辑,运用断言确保代码质量,构建概念轮廓增强设计内聚性,并利用闭合操作实现集合内的高效操作。

一、定义:为了使项目能够随着开发工作的进行而加速前进,而不会由于它的老化而停滞不前,设计必须要让人们乐于使用,而且易于做出修改。这就是柔性设计。

二、模式:INTENTION-REVEALING INTERFACES(透露意图式的接口)

why?

如果代码只是在执行规则后得到结果,而没有把规则显示地表达出来,那么我们不得不一步一步去思考软件的执行步骤。那些只是运行代码然后给出结果的计算--没有显示地把计算逻辑表达出来,也有同样问题。如果不把代码与模型清晰地联系起来,我们很难理解代码的执行结果,也很难预测修改代码的影响。

如果开发人员为了使用一个组件而必须去研究它的实现,那么久失去了封装的价值。如果使用组件的新的开发者不得不根据实现来推测用途,那么推测的结果可能不是那个操作或者类的主要用途。很危险!

how?

在命名类和操作时要描述他们的效果和目的,而不是要暴露他们是通过何种方式达到目的的。这些名称应该与UBIQUIOUS LANGUAGE保持一致,以便团队成员可以迅速推断出他们的意义。

在创建一个行为之前先为它编写一个测试,这样可以促使你站在客户开发人员的角度上来思考他。测试可以反映出我们希望以哪种方式与这些对象进行交互。

三、模式: SIDE-EFFECT FUNCTION(无副作用的函数)

概念阐述:

在计算机科学中,任何对系统状态产生的影响都叫副作用

返回结果而不产生副作用的操作成为函数

why?

大多数操作都会调用其它操作,而后者又会调用另外一些操作,一旦形成这种任意深度的嵌套,就很难预测一个操作将要产生的所有后果。第二层和第三层操作的影响可能并不是卡户开发人员有意为之,于是他们就变成了完全意义上的副作用。

如果没有可以安全地预见到结果的抽象,开发人员必须限制“组合爆炸”,这就限制了系统行为的丰富性。

how?

尽可能把程序的逻辑放到函数中,因为函数是只返回结果而不产生明显副作用的操作。严格地把命令(引起明显的状态改变的方法)隔离到不返回领域信息的、非常简单的操作中。当发现了一个非常适合承担复杂逻辑职

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值