2010年10月20日
15:38
引子
“民国14年,费孝通到湖南永顺考察,当地人问他:‘如今谁坐龙位?’,14年光阴弹指一瞬,龙位看来和山坳上的百姓毫无关系。
某天早晨,我和公司内的一个程序员碰到了一起,我和他随便谈了谈项目的当前状况,他说,“我们的系统变成假3层了”。语气中看来非常寥落。
回头来说3层。7年前,3-ties开发刚刚兴起,但是是否使用3-ties理念的开发是有分歧的。有些人认为我们的产品UI和数据库开发更重,中间件可有可无,最多不过可以解决密码问题而已。有些人认为3-ties就是业务逻辑集中,这个想法不错,只要坚持,一定可以有一个合理的中间件。两者都有各自的说法,但是随着开发的逐步深入,产品的累次更迭,结果却毫无疑问的、几乎是一边倒的走向了假3层——中间件仅仅有几个访问数据库的方法——和几十M大小的客户端,数据库代码相比,中间件不过几百K。规模完全不可同日而语。
相信3-ties有它的用武之地。不过我们的系统是UI密集型,而不是业务密集型,不多的业务也大量的集中于数据库。因此中间件可有可无这一观点,在今天看来也就毫无悬念。
理论跟不上现实,这是我看到的一种情况。理论也常常需要更新以便和实践一致。而这个更新,有必须要关心当前业界的发展趋势。
某天,一个程序员问我:“客户提到了什么Ruby On Rails来访问我们的系统,Ruby On Rails是个什么东西?”。Ruby On Rails(ROR)从2003年开始,N年来最红的一套框架,没有之一。它可以快速,优雅的实现Web应用,有丰富的ajax支持,它把MVC模式做了非常创造性的应用,是对整个行业都有很大的思想触动。因为 ROR 这个框架,脚本语言也鸡犬升天,不再被视为玩具,有史以来第一次登上了和主流编译型语言同等站位上。
网上可是闹翻天了的,随便那个技术型网站都会长篇累牍的讲到这个东西,并且持续时间之久,论坛的火爆程度,都是以往的框架所不及的。微软最近出品的Asp.net MVC2,就是彻头彻尾的对ROR的抄袭——我理解这是对ROR的礼赞。看我这篇文章的人,有多少不知道ROR的?
必然有人和我说,“这个我们用不上”。那么TDD,Refactor总是要用的吧。TDD让代码更好的分而治之;Refactor帮助代码职责明确,符合最佳实践范式。在部门E内,两年来 的反复多次的使用,已经建立了比较成熟的使用套路。回顾两年前,大家都在一个起跑线,如今他们的层次水平已经逐步显现出来。
有不少迹象表明他们做的越来越好:
1. 我看到整个团队范围在讨论重构 而不是个人现象了。
2. 在团队级别的去尝试测试用例了。这个有难度,不容易坚持,但是随着对代码质量的意识越强,越会喜欢TDD。
3. 在Scrum过程中,做团队例行沟通,并且有专门的Review人员
4. 通过发布文章影响他人。比如在谈及复杂度和消减的方法,在谈及Switch和If的优化;
5. 在看Martin Fowler的著作《重构》了。这说明在系统的参详了。
言为心声,这说明重构已经成为他们的基本工作方法之一了;凭藉著优秀的代码和人员能力上的优势,未来几年肯定会越走越顺——快速发布公司需要的产品,同步提升自己想要的素质。
孔子云:“三人行必有我师,见贤思齐,见不肖则改之”。一定要把自己置身于时代之内。我希望所有的同事,我的朋友,业界的各位同行,大家都能够拿出你的勇气和耐心,先苦后甜,享受技术。