注重软件质量——读《浮现式设计》有感

        题记:正在读《浮现式设计:专业软件开发的演进本质》(荣获第19届Jolt生产力大奖)一书,顺手写下了一点自己的感想与浅见,是以为记。

 

        封装、内聚、耦合,这是编码的首要原则。

        这三个原则不是面向对象开发才有的,早在面向过程的开发方法中就已经作为普适原则存在了,随便问一位软件工程师,都能对“高内聚,低耦合”说上几句。到了面向对象方法中,对“封装”的概念进一步得到强化,利用类的设计来封装属性和行为。

        到了实际的编码过程当中,别说这三个词的含义存在多少了,就是这三个词本身还能不能想起来都不一定。

        对于封装,看到最多的就是不会用public\protected\private,一律全是public,如果问一句为什么,回答竟然是“也许别人也用得上这个方法”,汗!

        再来看内聚,对于类内聚,这里最常见的问题是把相关的方法放到一起就定义一个类。这就不得不说到面向对象方法的优势了,本来是通过类的定义来解决问题域到解域的映射,现在脱离了问题域来定义类,我们说这样的内聚是不恰当的。对于方法内聚,当我们发现一个方法的名字与方法的内容不一致了,或者一个方法找不到合适的名字了,往往就是违背了内聚原则了。

        对于耦合,注意是低耦合而不是零耦合,如果没有耦合就出不来软件了。耦合有两种,一种是有意耦合,是设计方案中确定的必然的耦合,另一种是意外耦合,不是经过设计的,而是悄悄潜入系统的耦合。但是,也要注意分辨有意耦合是否真的需要。我们在设计阶段进行的设计验证,很多时候就是在判断这一点。

        以上是提高软件质量的基本原则,还有软件几个软件质量标准,即冗余、可读性、可测试性。


        冗余是一些重复的代码段,比较常见的就是所谓的剪贴板继承了,Copy一段代码,不改或稍加修改即进入了产品库,这样的代码产生的冗余最终导致可维护性的降低,修改一处而忘了另一处。有些时候可以通过引入继承耦合来减少冗余,把公共代码放到基类中,但也要注意上下文语意中是否允许。

        可读性则强调代码风格的一致性、命名的准确性等,记着,代码写成什么样机器都懂,但要写出人能读懂的,很难。

        可测试性现实当中我们也考虑的不多,但不管是否实施了单元测试,在设计代码的时候如果能考虑到可测试性,其实也是在落封装、内聚、耦合的原则,如果真的能把单元测试一起放到工程过程中来,则对软件质量的提高无疑是事半功倍的。


——欢迎转载,请注明出处 http://blog.csdn.net/caowenbin ——

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文斌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值