今天的工作基本上就是在重构实习生写的 JS 代码,改的昏天暗地,他们基本把整个工程的 JS 代码都放到了一个文件中,代码中一会儿以空格缩进,一会儿以 tab 缩进,到处都是不必要的变量,我的代码洁癖又犯了,忍不住直接进行了重构,对 JS 进行模块化的拆分,每一个模块都有相对独立的功能,改了之后舒畅了很多,就像拿掉了卡在喉咙中鱼刺。

工作这几年以来,我也遇到过几个和我一样,有着或者或少代码洁癖的人,看到 IDE 中出现的警告信息就会感到不舒服(从 Eclipse 转到 Intellij IDEA 以后,洁癖的程度越来越严重了,Intellij IDEA 会对你的代码风格做更彻底的检查),看到以 tab 来做缩进简直就像看到异教徒一样,看到代码中已经被注释掉的废弃代码那肯定得马上删掉。

可惜的是,工作遇到的更多的人,在这方面要随意的多,他们更多追求的是把工作完成,让功能能够跑起来,其实一定程度上来说,他们是对的,他们是更加实用主义的程序员,实用主义能够帮助我们更快地达到自己的目标,而不会被和目标无关的东西所牵绊。但是,我觉得,一个程序员在追求程序的实用主义的时候,也应该去追求程序本身的美感。

或许有人会问,什么是程序的美感,关于这一点,我们可以从很多的侧面去描述:

  • 更人性化的用户体验
  • 更简洁的架构
  • 程序内一致的代码风格
  • 更易读的代码

但是,“美”本身是用语言是无法完整描述的,你可以说娜塔丽•波特曼很美,你也可以说加西莫多很多,但是他们之间的差距是如此之大,除了他们都是人之外你都找不到他们的共同点。所以“美”就是“美”,只有你身在其中的时候你才能够感受到。

或许对于很多人而言,“代码美”根本就是个扯淡的东西。其实写代码的过程和做木工的过程是很像的,说白了,都是设计出一样东西,然后拿来用而已。看看下面的无印良品木制家居,不得不承认,它比我们平时从市面上看到的普通的木制家居要舒服地多。同样一段代码也可以比另一段代码看起来更加“舒服”,更加“美”,只是每一个人对这种“美”的感受能力不同而已,有些能够感受到,有些不能感受到(在这一点上,不得不承认,我对“代码美”的感受能力是比较差的)。

image

想要去培养这种对“程序美”的感受能力,一个很好的方式就是去阅读优秀的开源代码,比如 Tomcat,Dubbo 等等,有时候,当你看到一段不错的代码,一个简洁的有用的架构设计的时候,你会感到来自内心深处的愉悦,这就是“美”的一个侧面。我相信,培养这样的感受能力,是非常有益于身心健康的,并且我也相信那些透露出“美”的代码在某种程度上也是更加优秀的代码(内王而外圣)。

这个世界已经够丑陋了,如果我们已经解决了温饱问题,又有了这么多的自由时间,不如做点“漂亮”点的东西出来,写一些更有用,更“美”的代码出来~