降低代码的复杂度
2009-11-26 09:21
169 查看
不知道有多少人以前在写代码的注意过“代码复杂度”的问题?!我问了很多人,得到的答案是“好像在学校的算法课上提到过”,仅此而已。 现在很多程序的可扩展性都不是太好,不知道大家有没有想过,这点是不是和复杂度有本质的关系?如果真的有,那么控制代码的复杂度是不是很重要? 以前,我曾经听到过这样的话“某某写的代码太抽象,很难看懂。”显然,初看起来是非常的乱,但是你知道它的可扩展性是相当的强吗?只能说“他写的代码让你很迷惑,很费神,因为你显然不了解它的模式”。 据科学的观点,人类能记住的数字大概是在7位左右。这就很好解释了为什么你能很容易的记住座机号码但是很难记住手机号码的原因。那么在这个追求客户体验的年代,写代码是不是也要追求或者尽量满足这个规律呢?记得以前我看不懂或者说很反感看spring.net的代码,原因之一就是方法太多,但方法体很短,一般3-5句就结束了,导致了上面我听到的那句话“太抽象”了,我相信就算是现在,很多人也都是有这种感觉的。慢慢的发现,原来真的是我不明白“它的模式”!其实spring.net的复杂度是很低,大家可以用软件测测,复杂度低了,可扩展性就强了,这就是为什么要降低复杂度,增加可扩展性的原因。 我突然想起了CMMI中的度量,原来的公司把代码的质量也度量了,其中有一个标准就是复杂度,通过一款软件测试代码的复杂度,特别是核心类,核心方法的复杂度,这样能降低软件的风险,增加软件的可扩展性。 现在,我正在努力的去追求spring.net创始团队追求的复杂度降低哲学“把业务代码写在5行之内”。你是不是也该想想改变一下自己原有的写代码方式呢?
相关文章推荐
- 【第1076期】 如何无痛降低 if else 面条代码复杂度
- [Code Health]减少嵌套,降低代码复杂度
- 写高质量OC代码52建议总结:39.用handler块降低代码分散程度
- 最大M子段和 辅助数组降低时间复杂度
- 变换循环变量,降低复杂度
- 降低代码耦合度 – Service Locator
- 获取数据和解析数据的方法尽量分开写,这样可以降低代码之间的耦合性
- OpenCV:Mat元素访问方法、性能、代码复杂度以及安全性分析
- OpenCV:Mat元素访问方法、性能、代码复杂度以及安全性分析
- 追求代码质量: 监视圈复杂度
- PHP 用数组降低程序的时间复杂度
- 安装并使用CheckStyle/PMD与FindBug && 安装并使用SourceMonitor检测代码复杂度
- 有一堆扑克牌,其中某张牌的张数超过了扑克牌总数的一半,请找到这张牌。写出算法思路、代码实现和算法的时间复杂度,要求算法尽可能高效。假设给定一个扑克牌的数组poker和它的大小n,请返回所求的扑克牌。
- 算法代码实现之选出第k小元素、中位数、最小的k个元素(线性复杂度),Java实现
- 追求代码质量: 监视圈复杂度
- 为什么堆排序可以降低复杂度
- 基于Table方法降低代码圈复杂度
- 【算法与数据结构】关于代码运行时间复杂度的计算方法
- n个数,找出其中最小的k个数,写出代码,要求最坏情况下的时间复杂度不能高于O(n logk)
- 空间换时间,把递归的时间复杂度降低到O(2n)