《编写可读代码的艺术》

说在最前面
    最近在微信读书上发现了一本书,当我读了有一会儿的时候突然发现了一张图,然后才发现这本书差不多在一年前的时候竟然已经看过了[/汗],没做好读书笔记真是惭愧,但好书值得重读。


关于这本书
    如果可以通过另一本书《代码大全》来带入的话,那么这本书属于《代码大全》的入门级读物,虽说入门级,但干货当然也不少,至少对于我来讲收获还是很多的。

为什么要读这本书?
    一句话,烂代码一样可以工作,但有追求的程序员一定会照着书上的建议去做。

读书笔记
命名建议
1.jquery变量变量名带$
2.函数名使用fetch代替get
3.不使用tmp ret类似的变量
4.为变量加上细节性的说明,比如时间是毫秒还是秒
5.作用域越大的变量,命名长一点没关系,只要能说明它具体是做什么的
6.length多少有多义性,比如说字符长度还是字节长度?可以使用max_chars来表示,其余的还有filter和limit
7.边界性变量使用min max
8.推荐用first和last来表示包含的范围
9.推荐用begin和end来表示包含/排除范围
10.服务端程序接收form表单数据可以按照一定的顺序接收,比如按照在表单中的顺序接收或其他

逻辑控制
1 if/else处理方式
先处理正逻辑
先处理简单逻辑
先处理有趣的或可疑的逻辑

 2 三目运算符
一般情况下都使用if/else,简单情况使用三目
3 禁用do while
     
do {
    continue;
     while(false);
     

“我的经验是,do语句是错误和困惑的来源……我倾向于把条件放在“前面我能看到的地方” __C++之父

4 慎用goto
5 嵌套
    思考:嵌套层次是如何被慢慢加大的?
    如何减小嵌套层次?
提早return
continue
    当你对代码做改动时,从全新的角度审视它,把它作为一个整体来看待。

拆分超长表达式
1 适当引入解释变量,虽然会多加一行
2 改写冗长难以理解的逻辑表达式

变量与可读性
1 减少变量数量
2 不必要的临时变量
3 减少控制流变量(放在if或while中的变量,用于控制循环)
4 缩小变量作用域 注意在js中用var定义变量
5 定义变量向下移

重新组织代码
1 抽取不相关子问题,抽取项目相关和不相关得代码
2 你永远都不要安于使用不理想的接口
3 一次只做一件事
4.适当了解函数库
5 大声用自然语言叙述功能,橡皮鸭技术
6 删除无用代码

最后
    开头已经说了这是《代码大全》的入门级读物,有追求的程序员会继续阅读《代码大全》、《重构》等书了。

《编写可读代码的艺术》

发表评论

电子邮件地址不会被公开。 必填项已用*标注