如今谁坐龙位?



某天早晨,我和一个程序员随便谈谈,他说,我们的系统变成假3层了。语气中看来非常寥落。我脑中便一下子跳出这个“龙位”的故事:
 
“民国14年,费孝通到湖南永顺考察,当地人问他:‘如今谁坐龙位?’,14年光阴一瞬间,在很多人看来如此重要的政权更迭竟然传播到如此不堪的状态。”
 
回头来说3层。7年前,3-ties开发刚刚兴起,但是是否使用3-ties理念的开发是有分歧的。有些人认为我们的产品UI和数据库开发更重,中间件可有可无,最多不过可以解决密码问题而已。有些人认为3-ties就是业务逻辑集中,这个想法不错,只要坚持,一定可以有一个合理的中间件。两者都有各自的说法,但是随着开发的逐步深入,产品的累次更迭,结果却毫无疑问的、几乎是一边倒的走向了假3层——中间件仅仅有几个访问数据库的方法——和几十M大小的客户端,数据库代码相比,中间件不过几百K。规模完全不可同日而语。Delphi是这样,C# 虽然有不少逻辑,但是和数据库,客户端还不比不了的。把访问数据,分页除掉,真正的业务代码少的可怜。大量的业务,验证,页面组织都在客户端和数据库服务器。
 
相信3-ties有它的用武之地。不过我们的系统是UI密集型,而不是业务密集型,不多的业务也大量的集中于数据库。因此中间件可有可无这一观点,在今天看来也就毫无悬念。
 
理论跟不上现实,这是我看到的一种情况。而还有一种让人扼腕痛惜的是完全不去了解现在业界的状况,或者知之不多。最近某天,一个程序员问我,客户提到了什么Ruby On Rails来访问我们的系统,Ruby On Rails是个什么东西?
 
Ruby On Rails(ROR)从2003年开始,红了N年,并且是N年来最红的一套框架,没有之一。可以快速,优雅的实现Web应用,并且有丰富的ajax支持,它把MVC模式做了非常创造性的应用,对整个行业都有很大的思想上的触动。因为 ROR 这个框架,脚本语言不再被视为玩具。第一次登上了和主流编译型语言同等高度上。网上可是闹翻天了的,随便那个技术型网站都会长篇累牍的讲到这个东西,并且持续时间之久,论坛的火爆程度,都是以往的框架所不及的。可是,居然有人对 ROR 听都没有听过。我不知道他们上网都看些什么?作为一个技术人员,难道可以只是完成自己手里的工作就万事大吉了吗?微软最近出品的Asp.net MVC2,就是彻头彻尾的对ROR的抄袭——我理解这是对ROR的礼赞。
 
可能有些人觉得,这个我们用不上,不需要费心去了解。那么TDD,Refactor,尤其是Refactor 总是要用的吧。我觉得TDD,Refactor红了这么多年,身边的人也用了这么多年,完全说明是非常实用的技术,TDD让代码更好的分而治之。Refactor帮助代码职责明确,符合OO和最佳实践的范式,让接受代码的人不会再说“这是什么垃圾代码”。自己的工作完全和业界脱节,甚至和其他的项目组脱节,这是怎样的“碎片”生活?好,我在说一次它们的含义:TDD(Test driven development,测试驱动开发),Refactor(重构)。也顺便了解下它们的创始人,Kent beck,Martin Fowler。
 
过了这么多年,还是局限于“业务更重要,技术是手段”,念叨什么,“满足客户是最重要的”已经过时了。你认为你是需求人员吗 ,你认为你是客服人员吗?不,你是技术人员,你的职位名称告诉你:技术从来都不是附属于那个的,它有独立的生命周期,技术是你满足客户的首要的和持续的方法。念叨什么“太忙了,没有时间啊”也是过时了的——难道不就是因为忙所以才需要改进技术,改进方法吗?这样的非此即彼的思维,是令人厌倦的。
 
 
比起前两种状况更危险的不是不知道,而是不知道自己不知道。某公司做了5年的TDD,Refactor尝试,你总是认为那是某公司的事情,某个项目组做了一年,看来前一个你不能用了,现在我帮你想一个借口——那是他们的事,和我们没有关系。让你们尝试任何新东西都是这样推,那样躲的。你是不想做吗?是不能做吗?你到底在怕什么?所以我说,你不知道自己不知道。你缺乏改变的勇气,害怕处于他人的观察之下可耻的失败,并且不知道自己缺乏面对失败的勇气。这就是事实。
 
芝兰之室,久而不知其香;入鲍鱼之市,久而不知其臭。现在我告诉你,你处于鲍鱼之市,是臭的。你说我习惯了,不觉得臭,也不愿意暂时换口好空气,回头再来——那就是你的错了。我们用的InstallShield,VSS都是网上有名的垃圾软件,仅仅是因为历史久,资格老而活下来。现在我说他们就是垃圾,而你说习惯了,无所谓。这是什么逻辑?
 
引用一同事在feiq上面的签名:我为成功而生,不为失败而活。 我为胜利而来,不向失败低头。我要欢呼庆祝,不要吸泣哀诉。
 
请拿出你的勇气,面对你不熟悉的事物,让它成为你的朋友。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章