不是凭着字句,乃是凭着精意。因为那字句是叫人死,精意是叫人活。 《哥林多后书》 3:6

 这是一个充满规则的世界。有形的和无形的规则,看得见的和看不见的规则,几乎渗透了这个世界的每一个角落,甚至人内心深处的每个角落。人与人之间相处有规则。不管是孔子的“以德报德,以直报怨”,还是老子的“以德报德,以德报怨”,抑或基督里面的“爱你的仇敌,为逼迫你的人祷告”,无不都在阐述着群居在一起的人,该如何处理人与人之间的“德怨”规则。国有国法,家有家规。不管是国家领土神圣不可侵犯,国家主权神圣不可侵犯,还是男主内,女主外,“男人是女人的头”,夫唱妇随,也无不在彰显着由人组成的团体之间,和团队内部之间的规则。再拓而言之,人外在的沟通工具,语言或文字,也都有他们自己的规则。同样的,软件系统不管是外在的使用,还是内在的开发,几乎每一个过程,也都被规则引导着。

 对于程序开发来说,这些规则粗到一门编程语言的语法,一种协议,细到一个框架的配置,一个开发工具的使用等。正是掌握了这些众多的规则,程序员才能完成一个项目,一个系统,才能胜任所在的岗位。常言道,无规矩不成方圆。从这个角度来看,规则是个好东西。然而规则虽然是死的,但人是活的。当死一般的规则为活人所用,结果是死是活,恐怕难以定论。正如钱本来也是个好东西,但到了不同的人手里,却并成不同的样。众所周知,钱可以被人所用,也可以把人带进坟墓。或许,规则到了某些人的手里,并不会把他带进显而易见的坟墓,但也不排除被带进一个被禁锢的笼子里,全身心的被困于其中。这笼子,其实和坟墓又有什么区别呢?对于程序员来说,这规则诸如行业规范,或系统配置等。如果程序员只注重了外在的配置,而不深入配置背后的原理,那么就如套上了枷锁,被别人牵着鼻子走。当深入理解了内部的原理,面对换汤不换药的新技术,即不会轻易随波逐流,也能很快上手。

“命令的总归就是爱(《提摩太前书》1:5)”。父母对小孩子有很多诫命,诸如不要学别人抽烟、喝酒,不要玩火等,其背后真正的动机是出于对孩子的爱。社会有诸多法律,但不管是那此法律,还是这彼法律,其起初的本意都在于尽可能的保障每个人,或者每个团体、或机构的权利和义务,能够维持社会的良好秩序。不同的行业里面又有不同的规范,甚至同一个行业里不同的领域也有不同的规范。在软件开发中,更是如此。通讯协议有通讯协议的规范,编写代码有编写代码的规范。“日有日的荣光,月有月的荣光,星有星的荣光;这星和那星的荣光也有分别。(《哥林多前书》 15:41)”不同的协议规范又不一样,不同的编程语言规范也不一样。可不管是这规范,还是那规范,终极最终目的是为了统一规范软件开发这个行业。有了统一的规范,就有了标准,电脑和电脑之间,系统和系统之间,团队和团队之间,程序员和程序员之间都有了共同的语言。有了共同的语言才能更好的对话,交流和沟通,协作。有了良好的对话、交流和沟通,才能便于做好一个项目,开发好一个系统。简而言之,如果说父母对孩子的“命令总归就是爱”,那么软件开发中这诸多的规范,其“总归就是尽力做到统一,并在统一中和谐发展。”

然而,不要忘了,法律是人制定的,各个行业的标准也是人制定的,软件开发行业自然也不例外。可是,人是有限的,是不完美的,不完美的人制定出的法律也难以做到完美。这如有限加有限,其结果还是有限,不可能因为两个或多个有限相加,就变成无限的。因此,哪怕是再多的人,再权威的组织制定的法律、或规范,也不可能至善至美,毫无破口。爱因斯坦说过,他不相信权威,结果上帝在他身上似乎开了个玩笑,最终他也被人列入权威。

我们不是爱因斯坦,但我们每个人都有怀疑权威的自由和权利。我们也没有爱因斯坦般的天赋,即便对权威有所怀疑,也难以在怀疑权威中最终成为权威,但我们每个人都可以设身处地般,假设自己是制定权威的参与人之一。当我们真若设身处地的去想了,久而久之,明白了权威的来龙去脉,明白了权威的本质,就不会被权威所左右。同样的,作为程序员,如果能时常站在制定行业规范者的角度去思考问题,思考规范的作用,表现形式等,久而久之,你就在死气沉沉的规范里面可以做出活生生的设计和系统来。不仅如此,甚者,你可以在僵硬的代码里、有机械般的程序世界里享受一个充满快乐的程序人生。