脱离业务场景,空谈架构绝对是耍流氓。异常牛逼的架构设计,如果无法在业务场景中落地实施,也只是空谈。

**1技术很重要 **

最近刚接手一个项目,主要是计算销售人员的佣金提成。一听有新项目可以做,感觉可以大展拳脚了。毕竟来新公司这么久还没正式接手什么重要的项目,都是三三两两的查询优化和数据库管理等工作,真正意义上的开发还没有。

项目经理对我信心满满,觉得算这种复杂的业务找我比较放心。因为之前帮他解决了一些查询优化的问题,对我一顿猛夸,有点受宠若惊。虽然对数据库有一定的了解,但是算不上什么大神。完成一项自动化的任务,对技术的要求还是有一定的要求的。高兴完之余,也开始担心自己是否能够胜任,毕竟之前的项目业务背景都比较简单,像佣金提成这种项目,不仅业务逻辑复杂,而且完全使用SQL语言实现就更加复杂了。怀着复杂的心情接受了这个任务。

2业务真的很复杂

项目经理因为月底项目要上线,有点着急,直接找了个小会议室就开始给我讲解业务过程了,前面的大致思路我听懂了,但是细分到每个职级人员的佣金计算我就晕了。完全听不懂,真的,跟我想象的完全不一样。我的想法只是按照既定的规则写出对应的查询语句就OK了,但是这个业务逻辑的规则实在是太多了,而且相互之间还有一定的控制关系。听完项目经理的讲解整个人头都大了。项目经理估计也看出我没听懂,但是限于时间紧迫,他也没有继续给我讲解其中的每个细节了。我也开始在心里鼓捣,这怎么写啊?

3下笔千斤重

没看懂业务逻辑,只能一个一个细节的去查看,但是我发现我想多了。整个项目需要站在一个比较高的起点去看。单单只看一个细节是不够的,因为好些地方之间的关联关系没弄懂,后面会有很多坑让你去跳。写了又删,删了又写,依然没什么进展。开始怀疑自己是不是理解能力有问题?

4了解业务真的很重要

可能项目经理也看出我为难了,把他写的一个初稿让我帮着一起完善一下。瞬间感觉得救了。整个代码足足有接近5000多行。跟着项目经理一点一滴的过每一个细节,同时也进一步理解每一个业务逻辑点。听着他一遍又一遍的解释,才茅塞顿开,虽然从中也发现一些技术上的小瑕疵,但是无伤大雅。牛人还是有他牛的原因的。至少在业务理解上我是比不上他的。下图是我们的代码:图片

** 5一点思考**

整个项目加班加点的做了三个星期,今天才算基本完成。前期因为对业务云里雾里,产生了畏难的心理,总想着打退堂鼓。中间公司有次旅游,感觉终于解放了,回来继续加班都有点敷衍了事的样子。觉得自己工作态度还是有问题,至少在面对困难时只想着逃避。但是逃避解决不了问题的。随着项目的顺利进行,我也开始理解其中的复杂业务逻辑了,回头再去看代码,居然一会儿就看懂了,每一个细节都知道是做什么的。真应了那句老话:万事开头难。同时也开始明白只懂技术不懂业务真的是寸步难行!