Clean Code
有意义的命名
名副其实
指明计量对象、计量单位
避免魔法值
避免误导
避免与本意相悖
提防使用不同之处较小的名称
避免在名称中出现容器类型名
避免O01l
做有意义的区分
依意命名,注意对立区分(src 与 obj)
避免意义含混,避免相同意思却不同名称
避免废话冗余 (nameString \ UserTable.... are bad)
让大家能读得出来
主要是为了方便大家交流
避免自造词、使用恰当的正规词
更别说拼音了
使用可搜索的名称
这个就取决于项目命名习惯
尽量与前辈保持一致
总结命名规律 方便快速搜索
资源文件、常量类等更要注重
避免使用编码命名
这条无视 现在不会有这个问题
避免思维映射 明确才是正道
类名/对象名为名词 方法名为动词
使用解决方案领域名称
添加有意义的语境
例如地址中的State 单独出现并不能知道其明确意义 可命名为AddState
但是看我们目前的代码并没有很好的这样做
当然也不要添加没用的语境
说到底 命名要让人看得懂 最重要 大家对这个类或方法会有类似甚至相同的命名 这样我就不必记忆具体命名 而有一套命名逻辑 直接找到对应的代码
函数
短小精悍 专注于单一功能呢
每个函数只有一个抽象层级
利用多态来确保switch语句埋藏在较低的抽象底层
使用描述性的名称
函数参数尽量少
如果出现三个及以上参数,那么说明基于需要将参数封装成类了
因为一些参数本身就组合成一组概念,例如坐标x,y两个参数可用一个Point类来作为入参。
确保函数无副作用
尽量避免使用输出参数
抽离tyy/catch
结构化编程
只有一个return
循环不要出现break/continue
不使用goto
无它,唯熟练耳
注释
一句话,被妄想注释能美化你的代码,还是老老实实把代码写好吧!
最好让代码自己来阐述,而不是注释
当然 有些注释是必须的 那你得写好
好注释是个啥
法律信息
解释意图
阐释晦涩难懂的代码(最好还是把代码写的通俗易懂)
警示注释 TODO 重要代码放大
JavaDoC
坏注释
自言自语 多余废话
误导性的注释往往具有破坏性
冗余