函数设计应做到低耦合,高内聚

来源:互联网 发布:周大福钻戒怎么样知乎 编辑:程序博客网 时间:2024/06/05 07:36

        最近,同项目组的一位师姐请产假了,由我接手她之前的部分版本的开发工作。在开发的过程中,我阅读了某个很古老的版本的程序代码,心生感触,想在这里啰嗦几句。

        该版本中很多函数的调用关系都错综复杂,让人读起来非常的费劲。我用如下的图来形象化地表示这种函数之间的调用关系。

        箭头的指向为调用关系,如“函数A”调用了“函数B”、“函数C”、“函数D”、“函数E”、“函数F”,以此类推。

        当函数之间的调用关系太多时,各个函数就组成了一个复杂的调用网络,很难将它们之间的关系理清楚。

        那么,为什么会出现这么“糟糕”的函数设计呢?原因有以下几点:

        第一,最原始版本的开发人员没有做好详细设计,程序是想到哪里就写到哪里。最原始版本犹如一座大楼的地基,地基没有打好,当然后续的工作就没那么顺利了。此外,后续的开发人员总喜欢拿之前开发人员的程序作为参照,“不好”的前辈只会教出更为“不好”的“徒弟”。

        第二,项目组为了赶进度,只要求程序能够实现基本功能,并没有对代码进行严格的同行评审。“赶进度”只会产生糟糕的代码,而如果代码只是一个人说了算,那肯定会留下很多的问题。

        第三,在程序演进的过程中,不同的开发人员对同一个版本的代码进行了修改。如果每个人都对一个版本的程序进行修改,由于大家编写代码的习惯都不尽相同,因此会使得程序“越改越差”。

        那么,优秀的程序有什么样的要求呢?要求之一就是:函数设计应做到低耦合,高内聚。也就是说,在不增加代码复杂度的情况下,尽量减少函数之间的调用关系,在本函数实现规定的功能。

        “低耦合,高内聚”的函数设计有什么好处呢?好处有以下几点:

        第一,便于对程序进行维护。这点很重要,特别是刚入职的员工,如果他们阅读到了逻辑清晰、编程规范的代码,真的是一种福气。

        第二,便于程序版本的演进。有了好的“榜样”,之后对程序的增删改的工作都更加的容易了。

        第三,便于不同项目组或产品线之间的沟通交流。优秀的代码应该拿出来,供大家一起学习。“他山之石,可以攻玉”,只有不断地学习别人好的、成功的经验,自己的能力才能够得到提升。

  

        当然,好的函数设计方法也不是一朝一夕就能够掌握的,只要我们坚持学习、不断总结,相信定然会写出优美的、易于阅读和理解的程序来的。

 

 

(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426,欢迎关注!)

 

3 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 爱奇艺账号怎么修改不了密码怎么办 论文目录显示错误未定义书签怎么办 银行账号被冻结了怎么办 哈罗单车账号被冻结怎么办 麻袋赚赚账号被冻结怎么办 网赌账号被冻结怎么办 梦想城镇账号被冻结怎么办 钱被银行冻结了怎么办 百度云账号密码忘了怎么办 微信钱包忘记密码了怎么办 word文档打开文件出错怎么办 有盘文件删不了怎么办 u盘文档严重损坏怎么办 wps文档打开是乱码怎么办 九游3083网资金冻结怎么办 阴阳师九游版禁止部分玩法怎么办 夜神模拟器游戏打不开怎么办 九游代金券锁定怎么办 被娱乐天地骗了怎么办 win8更新失败无法开机怎么办 安装英雄联盟文件损坏怎么办 电脑玩lol运行内存不足怎么办 守望先锋账号冻结了怎么办 守望先锋服务器发生意外错误怎么办 在先锋社保缺一年上学怎么办 lol更新后反应很慢怎么办 电脑跳舞毯不正常电脑游戏怎么办 PS中缺失的字体怎么办 黑板墙不想要了怎么办 淘宝代练打坏了怎么办 绝地求生与ipad不兼容怎么办 小米手机玩绝地求生卡怎么办 绝地求生服务器目前非常繁忙怎么办 玩绝地求生手机发烫怎么办 绝地求生刺激战场延迟高怎么办 怀孕八个半月打喷嚏头疼怎么办 20岁打喷嚏漏尿怎么办 鼻炎犯了不停打喷嚏怎么办 鼻炎犯了不停打喷嚏流鼻涕怎么办 感冒鼻痒怎么办小窍门 腰扭了屁股也疼怎么办