技术控是病

答应了一个客户周一更新,但是拖延症犯了,的确拖到周一才完成。时机非常重要,这不,失去睡觉的时机,我反而精神抖擞,于是决定写点东西。

客户的系统是2005年开发的,2005年9月份开始实施,至今已经整11年,这个系统支撑了客户300多家分公司的业务数据,基本上包含了除了对外财务数据的所有数据。这些年,断断续续更新了一些功能,一直健壮的运行着。应用服务器用的是resin2,跑在一台普通的HP服务器上;数据库服务器SQL2005,相对好一点的HP服务器。服务器硬件历经11年以上,因为当时就不是新的。以这种低成本的硬件环境处理如此大的数据,我一直非常满意。系统压力有多大,我对比下就比较清晰。客户第一次选型的开发商,来自NB的上海,一拨玩过SAP的人搞的,功能还是可以的,但是实施几个分公司以后,系统就被压垮了,所以才由我们开发;JINDIE的系统只能服务一个工业园(客户有8个工业园),那个园的财务经理强势挺了半年,被我们的系统换掉,因为JD系统不能把所有园区和分公司统一管理,无法让业务正常运行。

为什么说到上面这些,不是广告,因为ERP、CRM已经不是我的主业,除非特别合适单子我也不会接。而是我感觉原来那个老旧的系统其实很好,增加功能很快,如果不是拖延症,我1天就可以搞定。从而让我意识到过分追求技术,所谓的技术控实际是一种病,就犹如我之前谈到的过分设计是错误地一样。技术人员或者产品经理很容易被光鲜漂亮的理论引入泥潭,对,泥潭,过分设计和过分追求设计就是泥潭,浪费时间和人力,最简单地说浪费钱,除了让技术人员或者产品经理镀上一层晃眼的壳贴上一张张NB的标签可以谋求更高工资骗骗小白外,对老板来说就是噩梦。我有必要解释下,我只是说一般应用系统,12306那种神级的应用离我很远。

我被经常问到这样的问题:

1、为什么不用SSH,这个词还是我几年前面试时学会的。我只能解释说,我设计这个平台时只有struts,斟酌再三后我选择turbine,就像美女很多,我只能选择一个做我老婆一样,就是一种选择。类似的问题还有为什么选择resin,而不是标配的tomcat。我们平台现在也支持spring、sringmvc,angular等,但是我一直没有抛弃原来的平台,做到多种技术融合,可以根据业务进行选择用那种方案。我们的平台十多年一直更新,还能保持兼容。奉劝一句,尽量打消对老系统用新技术重新开发的想法,除非是让技术元人员练手,让他们可以谋求更高的工资。

2、你的表为什么这样设计,不符合范式,有的甚至语气中有很多不屑。我不想说我有多聪明,我只是知道这么做十多年很实用。我一直坚持:不用外键;不用时间、枚举等数据类型;业务表有一些冗余字段;企业类表状态字段就用中文...具体原因我不想过多解释。

...

技术只是为我们服务的,而不是要我们追新技术。不仅仅是经济学的原因,即使从好用的角度,总是更迭技术也是错误地。一种技术能够解决原来平台解决起来很难的事,就考虑使用,例如我们很早使用了多窗口,ajax(我们最早用的是buffalo),但是要尽量保持兼容。有的应用我们采用angular,我们移动框架采用ionic等等,我选择的标准一个是解决原来的问题;一个是提高效率;一个是如果我们原来没有包袱,就勇敢采用应用比较广有持续生命力授权良好的框架,不要害怕学习。

技术控是病,和懒惰惧怕学习的程序员一样,都需要治疗。我开出的药方:遵守团队选择,以工作为目的,提高生产力是关键。当然,老板思维采用这样做。因为:屁股决定脑袋。

你可能感兴趣的:(技术控是病)