打开电脑,现在北京时间是2017-11-17 3:56。在深圳这座充满激情的城市,每天深夜和清晨都会迸发出很多灵感。有时候一些突如其来的思绪会让我兴奋地睡不着,就像现在,实在忍不住起床大干一场。
今天注定是个不眠的夜。回想起最近的工作,确实有值写的东西。公司刚开始做线上的业务,系统的所有功能都是按线上的东西去做,可是变化太快,转眼线下的业务开始了。于是每一次的需求评审完就是立即安排输出,系统就像堆积木一样,零零散散,越到后面顾及和兼容的东西越多,解决每次因依赖关系造成的稳定问题刻不容缓。于是在需求之外的三轮主要优化工作开始了。
我是一个比较喜欢折腾的人,在代码方面也有洁癖。同时我不是一个为技术而技术的人,结合实际情况使用实现。最近的系统优化让我感受很多。我从不相信一个固定的道理。任何道理都有正反两面可以去说,只有在合适的场景去相信那些鸡汤,才会鼓舞人心,事半功倍。否着就是螳臂挡车,逆行而上,自然也会遇到阻碍。
目前我们所使用的系统,在开始就做了一个大的计划,每一块业务都会是一个一独立的系统。系统设计本身就应该相互独立不错,但忽略了一些东西。就像PMP项目管理,强调的是计划最后去做。可实际情况是需求一直不断,人员不足以维护这么多工程。每个人的技术和精力肯定是不一样的,再加上为了追敢业务需求,一轮又一轮的需求开发像堆积木一样,越堆越高。开发完看上去是可以用了,似乎没有错误,可是当有东西要变更,就会牵一发而动全身,就好像在红酒堆成的塔的中间调换两个酒杯的位置,可想而知。很多系统越来越慢,开发人员不愿接手他人代码的根本原因是写得不规范,后面又叠加很多功能,整个系统零零散散,很多雷区。这样的系统和我们现在遇到的情况会类似,没有人敢轻易优化,不动则已,一动就是麻烦事。所以整理和统一必做不可,这不仅是我开始去做的原因,也是做完后带来的价值。
如果去做?这个问题在做之前就想了很久了。目前按计划一步一步还算顺利,已经做完第二轮,只是还需要走稳。现在开始做第三轮的计划,因为是在原来业务基础上做的调整,所以在做的时候方向很明确,该怎么调整,该补充什么。之前的系统就像写了很多文章的书,而现在整理是把这些内容不够好的地方写好,并且建立一个目录索引。想想这本书完成的样子,就足够让我失眠。
新方案完成时,工程从5个缩减到3个,数据库从8个缩减到4个,之前有两个系统不支持集群的也会增加集群,同时支持从多个维度去分析和统计数据,提高数据查询的效率。对于系统的变化来说,完全可以看成是2.0版。系统优化完后线上线下统一后就会提供新接口。
今早在路上突然想到解决目前遇到的APP不足地方的方案,灵感来源于hbuilder和国庆看的一篇文章。当时想着如何去应用,然后看了市面上大量的实例,是很符合现在遇到的情况。设想了一个APP的框架,准备用图先画出来。越来越发现淘通很重要,无论是理解别的人话,还是让别人理解你的意思。如果各自都不知道对方在说什么,做起来肯定有出入。所以在这些地方需要多下功夫。
很多事看上去简单,好像是做完了,可是当你回头去看,发现很多不足,甚至留有不少潜在的问题。对于技术来说,这是致命的。写代码重要的是思想和逻辑,不然用再多的框架,接触再多高大上的东西,可连基本的业务需求都做不好,没有任何意义。技术要结合业务使用,不断优化,才能做出更好的架构。实践才有沉淀,只是看看别人的博客,自己没做过的,做起来不一定做得好。希望每个人真正懂得这些的时候不要太迟。
在这里,我要引用一句话:“Premature optimization is the root of all evil. 过早优化是万恶之源。 —— Donald Knuth”。我觉得现在是时候了,因为现在的业务方向很明确。这个目标不是一个人就可以完成的,相信系统2.0的工作不仅给产品带来质的提升,也会给我们带来成长。
发表回复