前进的勇气

虽然我的工作平台是基于.NET的,但我常去的一个社区JavaEye,却是一个关注Java和企业应用的网站。兼听则明,偏听则暗,我一直相信,听到不同的声音,听到刺耳的声音,是有好处的。

JavaEye论坛之前是PHP做的,而整个社区是Atlassian基于Java的著名商业软件Confluence(在敏捷开发领域里很有名的ThoughtWorks官方社区就是用的这个软件)。而从06年中期开始,JavaEye站长Robbin带领团队用Ruby On Rails重写了整个站点,当时,RoR浪潮在国内才刚刚兴起不久,而JavaEye团队在RoR上均是新手,敢于全盘重构JavaEye站点,需要极大的勇气。

事实上,JavaEye的这次重写很成功。整个站点全部整合在一起,用户友好性也大大增强(AJAX),而且JavaEye团队都是一群在软件工业领域浸染颇深的人,对社区站点的深刻理解也在设计开发中体现。方方面面的优势,造就了JavaEye站点的耳目一新,说JavaEye是当前国内技术理念最领先的社区,这话不算夸张。

然而,就在JavaEye新版刚上市半年,站长Robbin又在考虑再次重构整个站点了。Robbin认为:

软件开发中最大的难点在于如何在一个软件产品的完整生命周期中始终保持其代码质量和结构合理性。我们已经见过太多的软件在其设计和规划阶段殚精竭虑,精心设计其结构,采用最新的技术,来确保软件尽可能长的生命周期,在开发阶段编写完备的单元测试,来确保软件质量始终保持很好的水平。

但是所有的这些努力其实从某种程度来上来说,都不解决根本问题:随着技术的进步,随着软件不断打补丁,功能升级改进,改来改去,代码会不可阻挡的逐渐腐烂,越到后来越难以维护,越到后来性能越糟糕,越到后来越难以理解,这就是软件熵的现象。

我特别高兴看到JavaEye团队有这样大的勇气去破旧立新。因为我一直以来特别喜欢跟别人讨论的一个话题就是:保护投资的利弊。

在我看来,所谓保护投资,其最大的弊病就是不敢舍,于是历史包袱越背越重,从而失去前进的勇气。可是不敢舍,哪有得?

JavaEye半年便进行一次大版本的重构,这不可避免的涉及到了保护投资的问题:是不是半年前所作的工作基本上都是白做了?在Robbin看来,事情的真相却是:

1) 当我们用RoR开发JavaEye2.0的时候,我们还都是RoR新手,现在回过头去看代码,发现很多地方已经有了更好的实现方式,很多代码写的并不好,甚至很糟糕。

2) 通过这半年时间网站的运营,我们已经对RoR性能的方方面面,长处缺点有了比较清楚的认识,所以对当前网站代码存在的各种问题也有了清楚的认识,完善了代码优化的思路。

3) 在未来我们还有很多创新性的功能要开发和推出,这些新的功能当初并不在我们的构思之内,而是随着网站的发展逐步想到的。因此目前的代码架构并不能很好的支持新功能的灵活扩展。

4) 在我们开发JavaEye2.0的时候,基本上是基于rails1.0的功能开发的,现在rails1.2已经推出了,我们使用的很多技术已经落伍了。

做我们这一行,最需要做的就是与时俱进,拥抱变化了。要前进,就要敢于否定过去,永远不要期待有能够以不变应万变的解决方案出现。

勇于舍,是为了未来更好的得,曾经的得以及现在的舍并不是没有价值的。舍也并非全盘否定,而是萃取菁华。否定一切轻易抛弃并无意义,但死抱住现有资本把前进风险扩大化也是得不偿失。

李敖曾经举了个例子:

美国一个诗人叫罗伯特.s费罗斯特,他讲了一个事很有趣,他年轻时不敢做一个激进派,(因为)怕年老时变成一个保守派。

但其实更可怕的事情是,年轻的时候刚有了一点成绩,就已经变成了保守派了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值