clean code 第三章 函数
程序员文章站
2022-06-15 19:36:13
...
3.1 短小
记录:
- 每个函数只做一件事,每个函数依序把你带到下一个函数中。
- if/else/while这样的语句中,代码块应该只有一行
- 函数的缩进不能多于2层
例1:看不懂版
例2:能看懂版
例3:简洁版
3.2 只做一件事
记录
- 函数应该只做一件事,且做好这件事。
- 判断一个函数只做一件事的方法是:该函数是否可以再差分出其他不同抽象层的函数
3.3 每个函数一个抽象层
一个函数中包含多个抽象层,往往让人迷惑。读者无法判断某个表达式是细节还是基础概念。
3.4 switch语句
switch一般要执行N个任务,和前面说的一个函数只干一件事冲突,代码往往较长,并且switch的可扩展性差,一般用多态来替代。
3.5 使用描述性的的名称
将testableHtml改为SetupTeardownIncluder。
别怕长名称,长而具有描述性的名称,要比短而令人费解的名称好。
3.6 函数参数
函数参数的数量遵循“能少就少,最好没有”的原则。多个参数对于函数的阅读很不便。
3.8 将指令和询问分开
就是遵循函数只干一件事,而指令和询问是两件事情,不能放在一个函数,这样阅读起来会产生歧义。
函数要么做什么事,要么回答什么事,二者不可兼得!
如:定义set函数,功能是判断name是否为张三,不是则将name修改为张三,并返回true;是则返回false。
bool set(string attribute, string value){
if(attribute == value){
return false;
}else{
attribute = value;
return true;
}
}
但是在读代码的时候,这个set的意思并不明确(不能被直接读出来),因为set内部执行了两个任务,一是测试name的值和value是否相等,二是对name进行修改,任务二其实是一个测试的分支
if(set("name", "张三")){
}
上一篇: Vue_初接触
推荐阅读
-
PHP 代码简洁之道 ( PHP Clean Code)(第二部分)
-
删除打印字符的CLEAN函数及清除文本空格的TRIM函数详解
-
PostgreSql 的hash_code函数的用法说明
-
Clean Code之JavaScript代码示例
-
clean code 第三章 函数
-
【PHP】 code函数名有关问题,求大神指教
-
【PHP】 code函数名问题,求大神指教
-
php函数ob_start()、ob_end_clean()、ob_get_contents()_PHP教程
-
Excel 数据清洗函数 Trim 去除多余空格及 Clean 去除打印字符
-
php函数ob_start()、ob_end_clean()、ob_get_contents()_PHP教程