代码整洁之道

代码整洁之道

一、代码猴子

我们就是一群代码猴子,自以为领略了编程的真谛,写代码龙飞凤舞,上蹿下跳,对自己留下的一堆混乱,熟视无睹。

二、混乱代码的代价

混乱的代码降低团队生产力,趋向于零

三、什么是代码整洁

Bjarne Stroustrup(C++发明者)对整洁代码的理解: “我喜欢优雅和高效的代码,代码逻辑应当直接了当,叫缺陷难以隐藏;尽量减少依赖关系,使之便于维护;依据某种分层战略完善错误处理代码;性能调至最优,省得引诱别人做没有必要的优化,搞出一堆混乱来,整洁的代码之做好一件事。”

Ron Jeffries 对整洁代码的理解: 1.能通过所有的测试。 2.没有重复代码。 3.体现系统中的全部设计理念。

四、怎么写整洁的代码

1、编程态度

态度决定一切, 不端正的职业态度等同于职业自杀!

童子军军规:让营地比你来时更干净。

勒布朗法则:稍后等于永不 (later equals never)

程序员的头等大事不是“让代码能工作”,而是“让代码能沟通” 

2、编程方法

2.1 格式

2.2 命名

  • 名副其实
  • 避免误导
  • 使用可以搜索的变量
  • 避免思维映射
  • 类和对象名是名词短语,不能是动词
  • 方法名是动词或动词短语
  • 使用解决方案领域的名称
  • 添加有意义的语境(增加一定前缀)
  • 不要添加没有用的语境(任意增加前缀)

2.3 函数

  • 短小,不要超过100行,最佳20行
  • 只做一件事,做好一件事
  • 函数中的语句都在同一个抽象层级上(向下读代码)
  • 为函数取一个描述性的名字,不要害怕代码名称长
  • 参数没有最好,一个次之,再次二个,没有特殊理由不要三个以上
  • 分隔指令与查询
  • 使用异常替代返回错误码(会产生IF嵌套;程序员维护不及时,复用之前错误码)
  • 别重复自己

2.4 注释

注释 == 失败! 注释跟不上代码的变化,所以注释会说谎!

  • 注释不能美化糟糕的代码
  • 用代码来阐述
  • 好注释(对意图的解释、警示后来者、TODO注释)
  • 坏注释(误导性注释、规矩性注释、日志注释、废话注释,注释掉代码、位置注释、括号后面的注释)

2.5 格式

  • 向报纸学习,自顶向下阅读。顶部是高层次的概念和算法,向下细节逐步展开。(垂直方向)
  • 每个空白行都是一个独立的线索,标识出新的独立概念(垂直方向)
  • 空白行隔开了概念,相反紧密的代码要互相靠近(垂直方向)
  • 操作符两边使用空白符,强调左边和右边,加强分隔效果(水平方向)
  • 代码宽度不要超过屏幕边线(水平方向)

2.6 异常

错误处理很重要,但是他搞乱了代码逻辑,就是错误的做法

  • 使用不可控异常,可控异常违背了开闭原则
  • 各处异常发生的环境说明
  • 不要返回NULL值,给调用增加检查工作量
  • 不要传递NULL值

2.7 边界

对第三方代码进行学习性测试; 将第三方代码隔离,使用Adapter模式适配符合自身业务逻辑的接口

2.7 单元测试

  • 在编写生产代码之前先编写测试用例
  • 保持测试代码整洁(快速、独立、可重复)

2.8 类的组织

  • 类应该短小(单一权责)
posted on 2017-12-21 14:36  王冬冬冬不烦恼  阅读(363)  评论(0编辑  收藏  举报