版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、易读程序之美学,心得复习,2,易读程序之美学一、二、三章 复习,3,让其它人读你的程序时,所需时间降到最低 顺手、养成习惯写上批注 好的命名能够减少bug,易于Debug,4,让其它人读你的程序时,所需时间降到最低 顺手、养成习惯写上批注 好的命名能够减少bug,易于Debug,5,6,让其它人读你的程序时,所需时间降到最低 顺手、养成习惯写上批注 好的命名能够减少bug,易于Debug,7,8,9,让其它人读你的程序时,所需时间降到最低 顺手、养成习惯写上批注 好的命名能够减少bug,易于Debug,10,顺手、养成习惯写上批注,让别人能理解你写的程序代码,让别人能理解你写的程序代码,Fun
2、ction 的命名 For 循环的变量名称,命名方式就可知道丢入SQL的参数,由学生数据去寻找班级数据,16,程序对齐 程序增加备注说明 选择有意义的顺序,易于Debug,17,让程序对齐 顺手、养成习惯写上批注 好的命名能够减少bug,易于Debug,18,19,让其它人读你的程序时,所需时间降到最低 程序写上批注说明 好的命名能够减少bug,易于Debug,20,21,22,让其它人读你的程序时,所需时间降到最低 顺手、养成习惯写上批注 选择有意义的顺序,易于Debug,23,24,一致的风格比正确的风格更为重要 避免模棱两可的代名词 批注程序代码缺陷 导演说明(director comm
3、entary) 适当使用列对齐,25,一致的风格比正确的风格更为重要 避免模棱两可的代名词 批注程序代码缺陷 导演说明(director commentary) 适当使用列对齐,26,27,一致的风格比正确的风格更为重要 避免模棱两可的代名词 批注程序代码缺陷 导演说明(director commentary) 适当使用列对齐,28,29,一致的风格比正确的风格更为重要 避免模棱两可的代名词 批注程序代码缺陷 导演说明(director commentary) 适当使用列对齐,30,31,一致的风格比正确的风格更为重要 避免模棱两可的代名词 批注程序代码缺陷 导演说明(director com
4、mentary) 适当使用列对齐,32,33,一致的风格比正确的风格更为重要 避免模棱两可的代名词 批注程序代码缺陷 导演说明(director commentary) 适当使用列对齐,34,35,简化循环与逻辑 消除变数,减少巢状结构,减少巢状结构,减少巢状结构&消除变数,减少巢状结构&消除变数,40,尽早由函数中返回 减少巢状结构 消除不必要的暂存变数,41,尽早由函数中返回 减少巢状结构 消除不必要的暂存变数,42,43,44,尽早由函数中返回 减少巢状结构 消除不必要的暂存变数,45,46,47,尽早由函数中返回 减少巢状结构 消除不必要的暂存变数,48,49,抽离不相关子问题 一次一
5、项工作 将想法转化为程序代码,50,抽离不相关子问题 一次一项工作 将想法转化为程序代码,51,52,53,抽离不相关子问题 一次一项工作 将想法转化为程序代码,54,55,抽离不相关子问题 一次一项工作 将想法转化为程序代码,56,57,建立通用程序代码 把想法变成程序代码 一次一项工作,易于Debug,58,59,通用程序代码,60,61,建立通用程序代码 把想法变成程序代码 一次一项工作,易于Debug,62,交换的程序,A-B B-C C-A,63,建立通用程序代码 把想法变成程序 一次一项工作,易于Debug,64,65,撰写较少程序代码 让错误讯息易读,66,撰写较少程序代码 让错
6、误讯息易读,67,69,撰写较少程序代码 让错误讯息易读,71,让程序更易读 维持程序小而美,72,让测试更易读 维持程序小而美,73,74,让测试更易读 维持程序小而美,75,76,测试易读与维护,77,78,PHP 5.4.8,79,80,81,易读程序之美学四、五、六章 复习,82,第四章 美学(一),花时间排列程序代码 经过排版、排列整齐的程序,更利于阅读与除错 有意义的顺序的程序片段需要持续保持 适当的换行与段行,能够更明确区分步骤,83,我到底该不该对齐,对齐需要花很多时间呀? 我曾经看过其它公司的程序代码是这样排列显示的? 团体的一致性比正确的风格更加重要,第四章 美学(二),将
7、程序简化及易读,84,第五章 批注(一),批注的目的是协助使用者了解程序代码作者的思想。 哪些是不需要批注的? 字面解释,不要批注能很快从程序代码中知道的事实。 遵守好程序坏程序+好批注的原则?,85,第五章 批注(二),想象程序代码在外人眼中的样子,预期可能出现的问题。 哪些是需要批注? 批注程序代码的缺陷,承认程序代码不好之处 因为什么原因而特定写了这段程序? 常数的批注,写上当下设定这个数值的原因,86,函式批注范例,87,详细批注的好处,88,第六章 让批注精确与简洁,阅读批注需时间与空间,所以要精确 避免模棱两可的代名词 写上具代表性的范例 直接写上表达程序的意图 利用行内批注,89
8、,90,易读程序之美学七、八、九章 复习,91,第七章 提高控制流程可读性,条件判断、循环与其他改变流程的叙述尽量自然: 数值比较时,将变量放在左侧,常数放在右侧,比较符合语言习惯。 先肯定而非否定的情况。 简单的判断逻辑优先,这样其他人能够直接看完,然后进入下个比较复杂的判断区块。 先有趣或明显的情况优先。,92,第七章 提高控制流程可读性,缩短其他人理解程序所需时间比减少程序代码行数好: ? :条件式(又称三元运算符) 如果最简单情况使用条件式(ab ? c:d),用之无妨,可以有限度的减少程序代码行数,并可让程序代码增加可读性,且更简洁好看。 如果是非常大量的条件运算的话,最好还是使用i
9、f-else。,93,第七章 提高控制流程可读性,尽早从函式中返回(return): 某些程序设计认为函式只能有一个return叙述。 强调单一跳出点的原因之一是要执行资源清除。 减少巢状结构: 多层巢状结构程序代码十分难懂。,94,第七章 提高控制流程可读性,重要观念 缩短他人理解程序所需的时间,比减少程序代码行数还要好。 修改程序代码时要以全新的角度审视,退一步以整体的角度考虑程序代码。,第八章 分解巨大表示式,解释性变量: 以一简短的批注当作开头来解释程序的功用,但也要注意不必要的暂时性变量。 例: bIsCheck = AB, if(bIsCheck)。 复杂的逻辑述句可以用笛摩根定律
10、化简。,95,第八章 分解巨大表示式,重要观念 将巨大表示式分解为更容易消化的大小。 注意写法很酷的程序代码经常会对后续使用程序的人造成困扰。,96,第九章 变数与可读性,消除变数: 减少对可读没帮助的变量。 程序没有更加明确。 只使用一次,没有消除任何重复程序代码。 避免使用全局变量。 缩限变量范围: 减少看到变数程序代码行数。,97,第九章 变数与可读性,重要观念 尽可能减少可以看到变数的程序代码行数。 操作变量的地方愈多,愈难记得变量目前的值。,98,99,易读程序之美学十、十一、十二章 复习,100,第十章 抽离不相关子问题,将大问题分解成小问题,直到这个小问题是一个函数就可以处理完成
11、。 积极的将解决特定不相关子问题,抽离成独立的函数。 需要一组核心的基本工具。 如果接口不够简洁,就自制包覆函数,自行简化函数接口。,第十章 抽离不相关子问题,付出的成本需获得相对的代价,否则就会产生过犹不及:一大推小小的函数减少可读性,却没获得相对代价。,101,第十一章 一次一项工作,列出所有程序代码执行的工作,工作的定义十分宽松。 尽量将工作拆开到能分离到不同函数,或至少能放在程序代码的不同段落。,102,第十一章 一次一项工作,103,第十二章 将想法转化为程序代码,让程序代码更加清晰的程序 用口语描述程序行为再转换为程序代码,能帮助程序设计师写出更自然的程序代码。 如果无法用口语说明遇到的问题或设计,可能遗漏了某些东西或有问题还未定义。,104,105,易读程序之美学十三章十五章 重点复习,第十三章 撰写较少程序代码,不开发非必要的功能 询问与分解需求 系统名称:商店搜寻系统 系统功能:根据用户目前所在的位置,找出最接近的商店。 -要100%正确找出商店位置 1.处理位于国际日期变更线两侧的地点。 2.处理接近南、北极的位置。 3.修正地球曲率对距离的影响,也就是每英里的经度差修正。 -找出商店约略位置 1.只要计算使用者与最近商店的距离即可。,106,第十三章 撰写较少程序代码,维持程序代码小而美 移除未使用的程序代码。 熟
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年兰州市安宁区政务服务中心(窗口人员)招聘笔试备考题库及答案详解
- 2026年珠海市拱北区医疗系统事业编人员招聘笔试备考试题及答案详解
- 2026年沈阳市和平区政务服务中心(窗口人员)招聘笔试参考题库及答案详解
- 2026广东揭阳市揭西县教育系统招聘教师42人(编制)考试模拟试题及答案详解
- 2026江苏无锡市人民医院招聘第一批合同制编外人员(劳务派遣)15人考试模拟试题及答案详解
- 2026年西安市灞桥区政务服务中心(窗口人员)招聘笔试参考题库及答案详解
- 2026年沈阳市于洪区工会人员招聘考试参考试题及答案详解
- 2026年南通市港闸区医疗系统事业编人员招聘笔试参考题库及答案详解
- 2026年吴忠市红寺堡区医疗系统事业编人员招聘笔试备考试题及答案详解
- 2026年商州区政务服务中心(窗口人员)招聘笔试模拟试题及答案详解
- 2026年注册安全工程师(初级)(安全生产管理实务)试题及答案
- 课件-人才盘点完全应用手册
- 海洋工程作业安全预案
- 2025-2026学年北师大版(2024)小学数学二年级上册(全册)教学设计(表格版)(附目录P255)
- DB36∕T 1296-2020 城市消防物联网大数据应用平台接口规范
- 公建工程交付指南(第三册)
- 工厂安全生产环保操作规程
- 钻井队用电安全培训
- JG/T 3055-1999基桩动测仪
- 人教版数学九年级上册第一单元测试卷(附答案)
- 民事诉讼法戴鹏讲义
评论
0/150
提交评论