编写可读代码的艺术读书笔记--简化和重新组织代码
来源:互联网 发布:mac mounty 灰色文件 编辑:程序博客网 时间:2024/06/05 17:24
第二部分:简化循环和逻辑
把控制流变得易读
关键思想:把条件、循环以及其他队控制流的改变做得越“自然”越好,运用一种方式使读者不用停下来重读你的代码。
拆分超长的表达式
关键思想:将超长的表达式拆分成容易理解的小块
例如:
if(request.user.id == document.owner_id){//user can edit this document}…If(request.user.id != document.owner_id){//document is read-only…
这段代码的主要概念是“该用户拥有此文档吗?”这个概念可以通过增加一个总结变量来表达得更清楚。
Final Boolean user_owns_document =(request.user.id == document.owner_id);If(user_owns_document){//user can edit this document}..If(!user_owns_document){//document is read-only}
变量与可读性
假设你有一个网页,上面由几个文本输入字段,布置如下:
<input type = “text” id = “input1” value= “Dustin”><input type = ”text” id = “input2”value=”Trevor”><input type = ”text” id = “input3” value= “”><input type = “text” id = “input4”value=”Melissa”>
你的工作是写一个叫setFirstEmptyInput()的函数,它接受一个字符串并把它放在页面上第一个空的<input>字段中,返回已更新的元素(如果没有剩下任何空字段则返回null)。
var setFirstEmptyInput = function(new_value){ var found = false; var i = 1; var elem = document.getElementById(‘input’+ i); while(elem != null){ if(elem.value== ‘’){ found= true; break; } i++; elem= document.getElementById(‘input’ + i); } if(found) elem.value = new _value; return elem;}
三个变量存在于整个函数中,并且写入了多次。中间变量(found)可以通过提前返回来消除,elem在整个代码中以循环的方式多次用到,这段代码让我们觉得elem就是在迭代的值,实际上只是在累加i。所以把while循环重写成对i的for循环。
var setFirstEmptyInput =function(new_value){ for(varI = 1; true; i++){ varelem = document.getElementById(‘input’ + i); if(elem== null) returnnull;//Search failed. No Empty input found. if(elem.value==’’){ elem.value= new_vlaue; returnelem; } }}
第三部分:重新组织代码
抽取不相关的子问题
积极地发现并抽取出不相关的子逻辑。
1. 看看某个函数或代码块,问问自己,这段代码高层次的目标是什么?
2. 对于每一行代码,问一下,它是直接为了目标而工作吗?这段代码高层次的目标是什么?
3. 如果足够的行数在解决不相关的子问题,抽取代码到独立的函数中。
0 0
- 《编写可读代码的艺术》读书笔记(下)简化循环和逻辑和重新组织代码
- 编写可读代码的艺术读书笔记--简化和重新组织代码
- 【编写可读代码的艺术】第三部分 重新组织你的代码
- 读书笔记-编写可读代码的艺术[上]
- 读书笔记-编写可读代码的艺术[中]
- 读书笔记-编写可读代码的艺术[下]
- 《编写可读代码的艺术》读书笔记
- 《编写可读代码的艺术》读书笔记
- 《编写可读性代码的艺术》读书笔记 第三部分 重新组织代码
- 编写可读代码的艺术
- 编写可读代码的艺术
- 编写可读代码的艺术
- 编写可读代码的艺术
- 编写可读代码的艺术
- 编写可读代码的艺术
- 编写可读代码的艺术
- 【编写可读代码的艺术】第二部分 简化循环和逻辑
- 《编写可读代码的艺术》读书笔记(一)
- Hadoop第一天---初识Hadoop
- 当程序员老去
- weblogic 获取文件路径 下载文件
- Hadoop第一天---初识Hadoop
- lcd显示失色的分析
- 编写可读代码的艺术读书笔记--简化和重新组织代码
- MapReduce的job调优
- Hadoop第一天---初识Hadoop
- 使用list-maps将你的Sass技术水平提高到另一层次
- 汇编 leave popl
- 使用Python写一个小小的项目监控
- Hadoop第一天---初识Hadoop
- 利用chrome 控制台生成guid
- 写给自己的几句话