好代码

认识和了解我的人,大概都知道,我这个人对代码是有要求的。我很反感仅仅为了功能来写代码,把代码写的平铺直叙,如果流水账一样。这样做,也许老板并不知道,老板关心功能,关心你是否竭尽全力。不过我始终认为,对于软件来说,代码就是它的全部,不重视代码质量的软件公司是注定不可能长久的。

我是web程序员,比较擅长java方面的开发,对java,scala,clojure,javascrit掌握的比较好.如果仅仅从语言的角度个人最喜欢clojure,最讨厌java。为什么不喜欢java呢?最主要的原因是java太啰嗦了,而且琐碎,缺乏数据结构支持,导致程序庞大,可读性差。

所以好代码第一条就是要简洁, 完成一个功能其代码要尽可能的少,越少越好。这个观点受《黑客与画家》这本书影响比较大。感兴趣的同学其实可以好好看看这本书,不过这本书是鼓吹lisp的。有人可能会认为代码越少可读性就越差,我觉得恰恰相反,人类理解认识的时间,其实大大少于翻阅代码的时间。简而言之,就是理解的时间远远小于翻阅的时间。这一点可能写过lisp的人会比较有体会,经常会对着几行代码冥思苦想,而javaer会不停的滚动鼠标,不停的在类和类直接切换。想要减少代码量,尽可能的使用类库是很重要的一种手段。好的 类库可以大大减少你的代码量,比如说google的guava。

好代码的第二条就是 没有重复的代码。这一点做到并不容易,需要很多的手段,对于java来说,就需要大量的 抽象手段。并尽可能的抽取方法。同时自己多写一些 工具类,如StringUtil,DateUtil等

第三尽可能减少复杂的if语句。其实无论什么语言,这都是一个问题,对于scala来说,有模式匹配,可能还好一点,但其他语言实在是缺乏削减if语句高度的手段。在java语言里面一个比较好的方法是用枚举定义很多相关的状态,然后用if语句切换状态,最后用case语句实现分支。这样可以大大削减if语句的高度,因为if语句体中不包含具体的处理手段。而case语句又可以转换成策略模式,用类的手段还可以大大的减少代码重复。

第四,不要过多无用注释。特别是大量注释掉的代码。这一点可以参看鲍勃大叔的《clean code》这本书。
第五,不要出现错别字。
第六,不要出现怪异的写法,例如:if(xxxx){return true}else{return false}直接写成return xxxx;就好了。总之java培养了人啰嗦的习惯。但啰嗦实在是坏习惯。
最后,大家去看看《clean code》这本书吧。我觉得我的观感其实是建立在这本书上的。另外大家可能注意到,我没有说注释。其实好代码往往是自解释的,基本就不需要注释。可能仅仅需要文档来说明API的用法。

你可能感兴趣的:(好代码)