前几日,深圳暴雨,官方说是“xx年一遇”。当大家听到“xx年一遇”这一说时,你肯定猜到了后果就是城市成了一片汪洋,整个城市陷入瘫痪,所有的房子都成了海景房,居民推开窗就可以看大海了。
每到此,就想起台湾作家龙应台说的那句话:验证一个国家和城市是否发达,一场雨足矣———最好来一场倾盆大雨,足足下三个小时,因为“它或许有钱建造高楼大厦,却还没有心力来发展下水道;高楼大厦看得见,下水道看不见。你要等一场大雨才能看出它的真面目来。”

心中无数遍地感叹”下水道是城市的良心啊”!深圳这座年轻的城市,下水道建设怎会如此不堪啊? 更难以理解的是,每年都可以不计其数的发现城市道路被挖开,对下水道进行修修补补,可为什么,一到暴雨天,境况仍依旧呢?难道这些修修补补只是在糊弄民众?还是纳税人的钱无处可花?这些疑问,让我苦恼良久!

后来,在一个媒体上看到一个“官方”的解释:深圳的下水道,是30年前才开始建设的,受限于整个城市建设的水平和当政者的眼光,整个下水道都是以一年一遇的雨量(相当于每小时降雨强度约为50毫米)来设计和建设的。最关键的是,30年来,忙于城市表面的快速建设,每年对下水道进行各种小修小补,却从进行过“重构”。悲乎!按此看来,城市的良心被侵蚀是必然的。

作为一个程序员的我,又不由此想到我所从事的这个行业的,与下水道的建设又是何其的相似!我们在系统构建过程中,又何尝不是跟下水道的建设者一样,患着目光短浅,修修补补而从不“重构”的毛病呢?然后,随着业务的发展,不到两年,我们的系统就跟下水道一样,成了一个众人唾骂的“烂摊子”,最悲惨的事情是,你是不是还得跟下水道现在的维护者一样,吃力不讨好地维护着这个“烂摊子”系统呢?

如果说下水道是城市的良心,那代码又何尝不是软件系统的良心呢?在软件系统的构建过程中,我们昧着“良心”,选择了太多的“妥协”,我们向“上线就是硬道理”妥协,向“快速发展就是硬道理”妥协,向“老板说的就是硬道理”妥协。系统最后被腐蚀的原因,就源于我们在构建过程中一次次“妥协”。

但回过头再想,妥协除了外界的非技术的压力外,还有很多是由于程序员自身的“偷懒”。比如,当我们在A处看到一段代码,对我们正在构建的B处很有用,如是,我们偷懒地将这段代码复制到了B处,可能是原封不动的复制,可能只是改一个函数或变量的名称。这么一来,代码就被腐蚀了一部分,以后,系统维护的“熵”也就相应地增加。如果整个开发团队的人均是如此,系统离变得“不可维护”就不远了。

这样的“偷懒”,有的是有意识的有的是无意识的。无意识的是能力问题,需要不断的学习来改善(希望本文能让你开始去意识到“偷懒”的问题)。而有意识的“偷懒”,就是关乎程序员自身的品质问题了,抱着这样的“邪念”来从事软件开发,我想是违背进入到这个行业的初衷。有时候,我们走得太远,别忘回头去想想我们的初衷,或许我们不能阻止波涛汹涌,但我们可以学会踏浪而行。

有句名言说的好,当你写某一坨代码时,最好设想你的代码会被一个挥着斧头的精神病来维护,或许,这样能威慑你别昧着良心来“偷懒”。

行文至此,我其实想到了,在我整个程序员的职业生涯,还是一样需要继续面对各种“烂摊子”系统,就像我生活的这个城市,在下一场暴雨来临时,又还是一片汪洋。哪怕我换一个城市,情况也将是类似。想到这,心里真是凄凉!