不知道有多少人以前在写代码的注意过“代码复杂度”的问题?!我问了很多人,得到的答案是“好像在学校的算法课上提到过”,仅此而已。
现在很多程序的可扩展性都不是太好,不知道大家有没有想过,这点是不是和复杂度有本质的关系?如果真的有,那么控制代码的复杂度是不是很重要?
以前,我曾经听到过这样的话“某某写的代码太抽象,很难看懂。”显然,初看起来是非常的乱,但是你知道它的可扩展性是相当的强吗?只能说“他写的代码让你很迷惑,很费神,因为你显然不了解它的模式”。
据科学的观点,人类能记住的数字大概是在7位左右。这就很好解释了为什么你能很容易的记住座机号码但是很难记住手机号码的原因。那么在这个追求客户体验的年代,写代码是不是也要追求或者尽量满足这个规律呢?记得以前我看不懂或者说很反感看spring.net的代码,原因之一就是方法太多,但方法体很短,一般3-5句就结束了,导致了上面我听到的那句话“太抽象”了,我相信就算是现在,很多人也都是有这种感觉的。慢慢的发现,原来真的是我不明白“它的模式”!其实spring.net的复杂度是很低,大家可以用软件测测,复杂度低了,可扩展性就强了,这就是为什么要降低复杂度,增加可扩展性的原因。
我突然想起了CMMI中的度量,原来的公司把代码的质量也度量了,其中有一个标准就是复杂度,通过一款软件测试代码的复杂度,特别是核心类,核心方法的复杂度,这样能降低软件的风险,增加软件的可扩展性。
现在,我正在努力的去追求spring.net创始团队追求的复杂度降低哲学“把业务代码写在5行之内”。你是不是也该想想改变一下自己原有的写代码方式呢?