保证代码简洁性:禁止重复,不可有多余代码,且代码看起来应该simple and stupid
代码抽象化:函数化+保证代码块同一层级(简单操作与核心功能不要混为一坛)+代码的开闭性(内部修改代码不影响其他地方,且能方便的扩展)
代码可读性作为第一要务
像写书一样写代码,层次分明,文件开头要有注释等,目录级别代码,正文内容(低级)
每一个函数就是一个段落,一条语句就是一句话,按章文章逻辑把代码写的具有故事性
做到见名知意,名字一定功能一致,保证名字可搜索到(太短重复的不要),专注逻辑阅读。
编程思想:
站在与读者交流的角度编写代码
只将代码关键部分放在显眼位置,其余文件操作等低级部分,放在util文件夹
效应局部化:修改只看这一部分就可以,也不影响其他位置,无需全局阅读
单一功能的密集性:频繁调用的代码要放在一块
模块内部分割管理:一句代码表达一件事,一个意思在一起
数据逻辑一体化:使用数据的逻辑尽量封装在一起
对称性:相同思想在代码任何地方都用相同形式表示,要朴实,stupid
修改对称性:同时间修改的代码放在同一地方,写明修改理由,修改理由要概括,比如固有逻辑
单一职责性:一个模块只做一件事,比如金融计算就是写金融逻辑,里面的货币计算单独函数
抽象思维:舍象,保证只关注当前函数重点代码,一般化是提纯多个函数内的公共部分
保证模块都是独立零件,数据和逻辑分别是小单位模块,
信息隐藏:用户只能根据最低公开限度的函数操作模块
关注点分离:将最核心部分最后变成类封装到一起
讲究形式上的对称:想到标志1的处理就有标志0的处理,增加容错性与代码完整性,有add就尺寸
命名也要讲究对称性,比如end与begin
写代码过程中:首先一步一个脚印,先保证所有函数的纯粹性,中等性,以及正确性,最后运行无误之后再整合到一块,注意,要本着给别人看的思想,适当的对于大的模块或者函数分割为适当的。
一定本着简洁性原则,对于稍微复杂之处的代码,在函数内部可以设置断言来检查输入格式,并且实时的打印数据或者log来透明化流程,方便更改。
代码之间避免出现耦合现象,包括数据的耦合,总之一个改了另一个不会影响即可。
最小意外原则:fetch与get 最小化原则,可扩展原则
unix哲学:小就是美,工作唯一,层次化骨架意识语境,可移植性。文本数据,过滤器化:输入输出皆是数据流。
保证代码的内聚度,减少耦合度,保证正交性,可逆性,即使发现难以理解,难以更改的坏味代码,坚决不要技术负债,防止破窗效应,以及给牦牛剃毛效应,避免重新造车轮
遇到bug可以给他人讲解一遍就能很快发现问题所在——橡皮鸭调试法