短小:if语句、else语句、while语句等,其中的代码块应该只有一行;
函数的缩进层级不该多于一层或两层;
只做一件事:判断函数是否可以再拆分出一个函数;
每个函数一个抽象层级:函数中的语句都要在同一抽象层级上;
向下规则:每个函数后面都跟着位于下一抽象层级的函数;
Switch语句:单一权责原则,开放闭合原则
将switch语句埋到抽象工厂底下;
使用描述性的名称:描述函数做的事;长而具有描述性的名称比短而令人费解的名称好;
命名方式保持一致;
函数参数:尽量避免三参和多参函数,无参函数最为理想;
不要向函数传入布尔值,可以将函数拆分为二:true和false时的函数;
尽量利用一些机制将二元函数转换成一元函数;
如果函数需要两个、三个或三个以上参数,就说明其中一些参数应该封装为类了;
无副作用:时序性耦合;
避免使用输出参数,如果函数必须要修改某种状态,就修改所属对象的状态;
分隔指令与询问:函数要么做什么事,要么回答什么事;把指令和询问分隔开,防止混淆的发生;
使用异常替代返回错误码:使用异常,错误处理代码就能从主路径代码中分离出来;
抽离Try/Catch代码块:把try/catch代码块的主体部分抽离出来,另外形成函数;
错误处理就是一件事,处理错误的函数不该做其他事;
别重复自己:消除重复;面向对象编程将代码集中到基类,从而避免冗余;
结构化编程:函数中的每个代码块都应该有一个入口、一个出口;每个函数只该有一个return语句,循环中不能有break或continue语句,没有goto语句;
只要函数保持短小,偶尔出现的return、break或continue语句没有坏处;goto尽量避免使用;
2263

被折叠的 条评论
为什么被折叠?



