Clean_Code_ch2_ch3_ch4

CH2 有意义的命名

关于按领域命名:

编程实际上包括两个层面,问题领域和解决方案领域,优秀的程序员工作之一就是分离解决上述两个领域的问题。

涉及到代码命令,原则是靠近问题解决领域的代码使用解决领域概念命名,比如Job_queue,靠近问题领域的代码使用问题领域概念命名。

 

关于添加语境:

方法1优于方法2

方法1:通过类名,函数名获取相应语境。优点:可以获取短的变量命名。

方法2:通过增加前缀。

不要添加无用语境

缺点1:名称太长

缺点2:IDE无法帮助,比如都是SCS_开头的变量

 

CH3 函数

关于代码缩进:

作者建议函数的缩进只能是1或者2,意味着所有的IF/ELSE/WHILE 代码块只能只有一行代码:

优点1: 函数短小

优点2:块内调用函数有较明确的描述性名称

优点3:没有嵌套

 

关于函数只做只做一件事:

什么称之为一件事:

1 该函数名下的所有语句都在同一抽象层次,判断是否是在统一抽象层次可以看看是否可以使用TO起头的段落来描述这个函数。

2 看是否能再拆出一个函数。

 

关于邪恶的switch语句:

邪恶1:违反了单一职责原则(SRP)

邪恶2:违反开放封闭原则(OCP)

邪恶3:可能同一个概念分叉在不同代码里反复出现

解决方案:

1 将switch下放到抽象工厂的底层,抽象工厂通过switch创建对象实例

2 上层方法method通过多态方式实现分叉功能。

原则是允许switch出现一次,用于创建多态对象

 

关于处理错误码:

代码中处理错误码,违反函数单一处理的要义,相当于函数做了两件事:正常流程;错误处理

解决办法:使用异常代替返回错误码。

try{

xxxxxxxxxxxxxxxx   //throws Exception{xxx}

}

catch()

{

}

 

关于如何写出这样的函数:

1 没有人从一开始就按照规则写函数。

2 首先写这样的函数,配上单元测试用例,覆盖每一行测试。

3 refine直到称心如意。

 

CH4 注释:

尽量不要写注释了~~~~~~

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值