***注释怎么写?
注释的目的是帮助读者了解作者在写代码的时候已经知道的那些事情。
什么地方不需要注释?
能从代码本身中迅速推测出意思的。
我们应该写注释的地方有以下原则:
1.为什么代码是这样写,而不是那样写的原因。
2.常量或者变量为什么是这个值的原因。
3.站在全局观上来解释这段代码是用来干什么的时候。
***如何让控制流变得更容易读?
1.在写一个比较时,a<3比3>a更好(变量在左,常量在右)
2.某些编程结构,像三目运算符,do/while循环和goto经常会导致代码可读性变差,最好不要经常使用它们。
3.嵌套代码块需要更加集中精力去理解,把代码写得更加线性避免深嵌套。
4.通常情况可以提前return减少嵌套让代码更简洁。
***如何拆分超长的表达式?
1.根据德摩根定律来操作表达式——可以把布尔表达式用更整洁的方式重写,例如if(!(a && !b))变成if(!a || b)。
2.引入解释变量来代表较长的子表达式。
***如何变量操作变量增加代码可读性?
1.减少变量的数量。
2.减少变量的作用域
***如何把关联性不强的代码抽取出来,然后包装成自定义库函数?
1.把一般代码和项目专有代码分开来,结果就是项目中大部分代码都是一般代码(通用的,不受项目特异性干扰的代码),少部分才是核心代码,让你的项目有区分性的代码,我们开发时专注于这部分代码,就可以提高开发效率。
***如何理解代码“一次只做一件事”?
1.如何我有很难读的代码,可以试着把所做的任务都罗列出来,其中一些任务很容易变成单独的函数提取出来。
***如何把想法变成代码?
1.用自然语言描述程序能够帮助我把代码写出来,在看到我描述中所用的短语或者句子的时候,有助于我把子问题拆分出来。
***每行新的代码都需要测试和维护,代码越多,项目就变得越“重”,那么如何减轻项目重量呢?
1.把项目中不必要的功能删去,不要过度设计。
2.重新考虑需求,解决版本最简单的问题即可,只要能完成工作就行,比如把需求中的N转换为1来思考。
3.经常阅读标准库中的API,熟悉库函数能帮助你更简单高效地解决需求。
-----------------------------------------------以下是对应的教学视频总结----------------------------------------------------------------
***如何把信息装进名字里?
1.使用专业的词。
2.避免使用空泛的词。
3.给变量名带上附加信息。
4.为作用域更大的变量起一个长的名字。
5.有目的地使用大小写和下划线。
***如何起不会让人误解的名字?
1.简单阅读你的代码的人应该理解你的本意,不会有其他的理解。
2.表示上下限: max,min
表示包含的范围:first,last
表示包含、排除某个范围:begin,end
3.命名一个布尔类型的值,应该使用is、has这样的词来明确它所表达的含义,而避免使用disable。
4.要小心用户对特定词的期望,例如用户会认为get或size是一个轻量的方法。
***怎么注意代码的审美?
1.如果多个代码块做同样的事情,尝试让它们有同样的格式。
2.把代码块按照“列”对齐,可以让代码更容易阅读。
3.如果一段代码定义A、B、C方法,那么在之后调用的时候,最好保持一致顺序。
4.使用“回车”让大段代码分为逻辑上的段落。
***我们该写什么样的注释?
1.注释此处代码写成这样的理由。
2.注释此处代码的不足之处。
3.注意常量背后的含义,为什么是这个值?
4.在文件、类级别使用“全局观”来注释这部分代码是如何工作的。
5.注意如果能从代码本身快速推断的事实,则不需要注释。
6.写出言简意赅的注释:
* 当像“这里”和“it”这样的代词可以指代多个事物时,避免使用它们;
*尽量精确描述方法行为;
*在注释中用典型的输入和输出案例来说明方法的功能;
*声明代码的高层次意图而非明显细节;
***如何简化流程使得代码变得易读?
1.写一个比较时,把“变量”放在左边,把常量放在右边。
2.if-else语句优先处理“正逻辑”。
3.三目运算符和do while循环少用,会使代码可读性变差
4.尽量把多层嵌套代码,类似多个if语句的代码,抽取出来变成单层代码。
5.早点return可以让代码更简洁。
***如何拆分“又臭又长”的表达式?
1.引入“解释变量”替代较长的表达式,例如
2.利用摩尔根定理来操作逻辑表达式:
***如何调整变量来增强代码的可读性?
1.减少变量,通过立刻处理结果来消除中间变量。
2.减少变量作用域,作用域越小越好。
3.变量只写一次最好,只设置一次的变量会让代码变得更容易理解。