代码艺术

Posted by Turingdo Studio on June 20, 2017

代码中特殊的注释技术——TODO、FIXME和XXX的用处

  • TODO : Stuff I haven’t gotten around to yet
  • FIXME : Known-broken code here
  • HACK : Adimittedly inelegant solution to a problem
  • XXX : Danger! Major problem here

TODO: + 说明: 如果代码中有该标识,说明在标识处有功能代码待编写,待实现的功能在说明中会简略说明。

FIXME: + 说明: 如果代码中有该标识,说明标识处代码需要修正,甚至代码是错误的,不能工作,需要修复,如何修正会在说明中简略说明。

XXX: + 说明: 如果代码中有该标识,说明标识处代码虽然实现了功能,但是实现的方法有待商榷,希望将来能改进,要改进的地方会在说明中简略说明。

你必须学会编写优秀的 js 代码之编程习惯

你必须学会编写优秀的 js 代码之编程习惯

  • 异常处理

如果你没有使用异常处理的习惯,这可能是因为你并未真正的理解它的作用。当你正确使用异常处理之后,你会发现你的代码最显著的变化就是:少了很多的 if-else 语句 。

  • 事件处理

有经验的开发者一定会知道,随着项目内容增多的时候,代码里面的事件处理程序会特别多,如果没有良好的管理,应用逻辑会和事件处理程序紧密的耦合在一起,而且这时的代码会有很大的冗余。为了解决这种问题,我建议大家采用以下3个方法:

1、隔离应用逻辑 2、禁止分发对象 3、定义事件注册模块。

  1. 隔离应用逻辑:将应用逻辑从所有事件处理程序中抽离出来是最佳的方法,因为你不知道接下来什么时候还会触发同一段的逻辑。
  2. 禁止分发对象:既然应用逻辑和事件处理程序是完全隔离的,那么应用程序中就不能有任何与事件有关的代码,所以,应用逻辑不能依赖于 event 对象来实现某一功能。
  3. 定义事件注册模块:整个时代都在提倡 js 代码统一模块化管理,所以,为了方便管理,我们有必要定义一个事件注册模块,用来统一完成事件的注册( 绑定 ) 和 移除
  • 配置分离

我们都很有必要抽离出配置项,并且定义在 Config 配置模块中。(需要自己自定义一个 Config 配置模块,代码就不用演示了吧。。。)

  • 职责单一

代码应该是一次只完成一个任务

  • 准确具体的命名

变量名中应包含更多信息,避免通用的词(tmp->tmp_file) Boolean型变量命名,通常,给Boolean型变量添加is、has、can、should可以让含义更清晰

  • 注释——记录你的想法
  1. 注释应该记录你思考代码怎么写的结果
  2. 也可以用来记录流程和常量
  3. 当别人读你的代码时,让他们产生疑问的部分,就是你应该注释的地方
  4. 说明可能陷阱(你在写代码的过程中,可能用到一些hack,或者有其他需要读代码的人知道的陷阱)
  • 简化循环和逻辑

让条件语句、循环以及其他控制流程的代码尽可能自然,让读者在阅读过程中不需要停顿思考或者在回头查找,是这一节的目的。

  1. 正向的逻辑在前,比如if(debug)就比if(!debug)好
  2. 简单逻辑的在前,这样if和else就可以在一个屏幕显示 – 有趣、清晰的逻辑在前
  3. 对不符合的条件,尽早return,可以让逻辑更加清晰.(尽早return,在循环中就用continue)