撰写了文章 发布于 2017-05-30 23:48:31
《代码整洁之道》学习笔记 02-1
方法/函数(function)
RAmen!面神关爱每个小个子!
尽量短小的函数,起码保证你的窗口能装下一个函数,一眼就能看完,过长的函数不易于阅读,又臭又长的函数相信谁也不愿意去看。函数的缩进也不应该多余一行或者两行,意味着你的循环语句尽量不要有太多的嵌套。环套环看起来更让人头疼
“这世界不需要英雄,而需要专业人士”——盖骆驼
不要让你的函数成为一个多面手,一段函数只做一件事,并且做好一件事,否则过多的任务会让你的函数显得比较臃肿杂乱。函数的作用就是为了让你的把一个大的概念拆成小的概念。如何去辨别各个函数只做了一件事呢?那就是只做一件事的函数无法被合理地切分成多个区块。
隐藏在血脉之中的能力——switch语句
如果switch只出现一次并且用于创建多态对象,且隐藏在继承关系中,在其他部分看不到,就是最佳的状态。借由接口来进行多态地指派。
“等等!你是干啥的?” 起个长长的名字
给你的函数起个一眼明了的名字吧,采用长而具有描述性的名称易于阅读,当然尽量保持命名风格相同,更加方便理解。
“给我看看你的兜里都有啥?” 函数该有几个参数?
越少越好!参数拥有太多的概念性,所以尽量少加参数,因为每次阅读都需要将实体参数带进去读的话,就显得比较麻烦了。并且在调试的时候也不需要去编写测试用的参数。
“一分钱一分货!”—— 一元函数!
一种是有进有出,另一种则是有进无出,有进无出的函数被视作一种事件,使用参数修改系统状态。如果你的函数有进无出,那么请起一个让读者更加能明白的名字。如果函数拥有输入的参数并进行了转换,那么就应该让结果体现返回值。
“该死的异教徒!”—— 标识参数
向函数传入bool值简直是点燃了炸药一样,如果这么做了的话,必然你的函数就要做两样事,如果bool参数为真和bool参数为假两种做法,而上文中已经提到,你的函数只需要做一件且做好那一件事。
“你会为此付出代价!”—— 二元函数
二元函数的参数在没有自然顺序的时候有可能会被弄混,甚至会有个别参数会在阅读的时候被忽略,而忽略本身就是个漏洞。所以尽量将其转化为一元函数。
“你真的确定要踏上这条不归路咩?”—— 三元函数
三元函数能造成的麻烦和二元函数一样而且更加严重,简直是传说中的加强版,如果真的要使用的话,你得确保你要应付得来啊。
“困得牢!扎得紧!”—— 参数对象
如果一个方法需要两个甚至更多的参数时该怎么办呢,那就将参数打包成类吧,当一组参数被共同传递时,说明他们本身就能够组成某个概念。
“再灵活的变形怪也得从这钻过去!”—— 可变参数
如果你的函数接收的是可变参数,当然也是一样越少越好,当超过三个的时候就要好好考虑一下了。
“这破名字怎么起啊?”—— 动词与关键词
简简单单的通过怎么做和做什么,就完全能够用来描述你要干的事了。
“完全安全!......或者说某些方面上。”—— 函数的副作用
虽然函数只做一件事,但是在看不见的地方,函数依然会做着一些改动,所以要小心其造成的一些更改。

吃葡萄不吐橘子皮 1年前
发布
陈金一 1年前
发布