在前面的文章里,我们曾经提到过,如果既有统一的单位来度量需求,也有统一的单位来度量实现(代码),那么软件开发自身的度量才可能真的向前迈进一步。这个时候才容易更客观地比较两种设计方案的优劣,要不然各种比较就只能停留在主观里。
由上面分析可见,要度量代码整体复杂度需要考虑的维度至少有4个,而当下大多时候最终代码整体复杂度只表现为代码行。这就导致很多度量指标歧义性非常大。
比如说,如果用Bug/KSLOC来度量Bug率,那么100个功能点既可以实现成为7KSLOC也可以实现为3.5KSLOC。这个时候如果前一份的实现的Bug数是7个,后一份实现是3.5个,表面上看两者Bug率相同,但事实上后者的Bug率却只是前者的1/2。而如果只使用功能点这样的单位,那么可维护性这样的维度又将失去度量。
在这一节里,我们对复杂度的探讨不过是刚刚开始,也很不成熟,为使复杂度成为一个有效的无歧义的指标,在未来应该还有更长的路要走,这里就算是抛砖引玉吧。
新拿来主义
鲁迅先生在1934年写了一篇著名的杂文叫做《拿来主义》。在这篇文章里,鲁迅先生写道:(www.xing528.com)
“他占有,挑选。看见鱼翅,并不就抛在路上以显其“平民化”,只要有养料,也和朋友们像萝卜白菜一样的吃掉,只不用它来宴大宾;看见鸦片,也不当众摔在茅厕里,以见其彻底革命,只送到药房里去,以供治病之用,却不弄‘出售存膏,售完即止’的玄虚。”
今时今日,在软件的世界里,我们仍然呼唤这样一种精神,并要往前一步。
恰如前文所论述的,软件的特质决定了软件的世界里必然是异论相搅,是非不明的,甚至矛盾的东西可能同时成立。
在这样的一个世界里,怕错,不敢批判,迷信权威,没有“自己”是不行的。我们可以承认自己还浅薄,可以在逻辑和事实面前低头,也可以以开放的心态来包容各种指责,但更关键的是要有勇气相信“我自己是对的。”这不是固执和狂妄,当有逻辑和事实进行支撑时,这反倒是一种务实的精神。
在这样一种精神下运用拿来主义,“我”的内涵就会不断丰富,最终成为真正的优秀人物。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。