代码整洁之道读书笔记--函数
2015-11-01 14:42
337 查看
好函数的需要满足:
1. 短小:
经过漫长的试错,经验告诉我,函数就该小。一个强制性的原则是,代码长度最好20行封顶。
2.代码块和缩进:
if、else、while语句等,其中的语句只有一个,就是一个函数调用语句;函数的缩进层级不该多于1层或2层。
3.只做一件事:
函数应该做一件事,做好这件事,只做这一件事。判断函数是否只做了一件事,有如下2种判断方法:
1.函数是否只是做了该函数名下同一抽象层上的步骤;
2.看是否能再拆出一个函数,该函数不仅只是单纯地重新诠释其实现。
4.自顶向下读代码–向下规则:
让代码拥有自顶向下的阅读顺序,让每个函数后面都跟着位于下一抽象层级的函数。这样一来,在查看函数列表的时候,就能循抽象层级向下阅读了,这叫向下规则。示例如下:5.函数参数:
最理想的参数数量是零,其次是一,再次是二,应尽量避免三,有足够特殊的理由才能用三个以上参数。includeSetupPage()要比includeSetupPageInto(newPage-Content)易于理解。参数与函数名处在不同的抽象层级,它要求你了解目前并不特别重要的细节。参数在测试时更加叫人为难。6.无副作用
函数承诺只做一件事,但还是会做其他被藏起来的事。有时,它会对自己类中的变量做出未能预期的改动;有时,它会把把变量搞成向函数传递的参数或是系统全局变量。无论哪一种情况,都是具有破坏性的,会导致古怪的时序性耦合以及顺序依赖。有副作用的示例代码如下:副作用就在于对Session.initialize()的调用,函数名checkPassword顾名思义就是用来检查密码的,并未暗示它会初始化该次对话。所以该函数有抹除现有会话的风险。
7.如何写出这样的函数:
写代码和写别的东西很像。在写论文或文章时,你先想什么就写什么,然后再打磨它。初稿也许粗陋无序,你就斟酌推敲,直至达到你心目中的样子。起初写函数时,往往都冗长而复杂,有太多的缩进和嵌套循环,有过长的参数列表,名称是随意起的,也会有重复的代码。然后再打磨这些代码,分解函数、修改名称、消除重复、缩短和重新安置方法,有时还要拆散类,同时保持测试通过,最后组装这些函数。
相关文章推荐
- ThinkPHP如何禁止直接通过路径访问
- 一个轻量级的c编写的php接口平台框架
- Java线程池
- asp.net之简易聊天室
- c++常量头文件的书写
- JAVA数组之课后作业
- c/c++程序优化
- Java Jdk Jre initial install
- java学习笔记.05——CyclicBarrier和CountDownLatch
- 链表中的倒数第k个节点
- 3-4 计算长方形的周长和面积--SDUT
- C++11:右值引用和转移赋值
- 3-3 构造函数的调用(高级)--SDUT
- win7下安装Canopy(EPD) 及 Pandas进行python数据分析
- 几种常见排序算法的Java代码实现
- 用python tkinter显示Mandelbrot图
- TortoiseGit配合msysGit在Git@OSC代码托管的傻瓜教程
- JAVA学习笔记之继承
- 在Eclipse中反编译Class文件
- Java,泛型的题目