回家之前
今天就要回家了,也终于在农历新年到来之前完成了到新公司的第一个项目,现在只有一个感觉,就是累。
(我现在就像垮起了批脸的啾啾)
从八月初至今,时逾6个月,从项目立项到线上测试收尾,真正在写代码的时间大概也就一个多月。软件开发模型上我们选择的螺旋模型。(螺旋模型中分周期推进项目,每一周期都包括需求定义、风险分析、代码实现和项目评审4个阶段,由这4个阶段进行迭代,软件开发过程每迭代一次,软件开发就前进一个层次)本来预计是在十月份上线第一期,之后慢慢优化迭代。因为项目经理能力超群,设计迭代的速度过快,导致第一期还没有开发完毕,第二期的设计文档就出了,最终实现预计两个月完成的工程生生地开发了6个月,一上线就是三期的内容。
与老公司一直在原先的项目上打补丁不同,新公司直接安排我和另外三位同事(两个后端一个前端)负责新项目的开发与设计(当然是有师傅带的,不过师傅主要负责把控进度、检查代码的规范)。最开始一个月还是有点慌的,第一次独立做项目,就负这么大的资金(单位是亿),如果出问题了我岂不是当场去世?
项目刚刚推进还没多久的时候,前端同事就离职了,新的前端同事屁股还没坐热,唯一一个后端老员工也选择了更大的舞台,当然,虽然他们离开了,但是后续的会议中还是能经常听到他们的名字(项目开发中离职的同事永远是最好的背锅侠)。
因为自身的格局还不够大,所以在整个项目中,我能够真正参与的也就是技术选型、架构设计、技术方案编写与代码开发了,其他的类似于与其他单位的沟通、风控模型地建设之类的,与我而言,只是参与一下会议,并没有什么发言权。
技术选型
对于技术选型而言,在MQ,数据库之类的并没有什么好选择的。公司其他的项目用的都是activeMq、mysql、redis和mongodb,所以我们项目也得用activeMq、mysql、redis和mongodb。当然,在一些新的地方也可以有自己的选择。比如数据脱敏我们选择了ShardingSphere(详情可见【进阶之路】基于ShardingSphere的线上业务数据脱敏解决方案),定时任务我们选择了xxl-job(详情可见【进阶之路】定时任务调用平台xxl-job),甚至于数据对比、数据校验的处理工具包,我直接使用了weed中的工具(详情可见【开源之路】温蒂、一次简单的尝试)。当然,weed的功能我也进行了好几次的更新优化,以后会写新的文章来介绍
架构设计
架构方面,我们才用的是传统的springCloud分布式架构,在消息一致性方案中基本按照了【进阶之路】可靠消息最终一致性解决方案的思路进行设计。主要的功能类的实现基本按照责任链模式与桥接模式进行实现。当然,代码肯定不能贴上来,一些设计中留下来无关紧要的流程图可以分享一下。
桥接模式流程设计:
架构设计(与老项目接口对接需要用到dubbo和tomcat):
技术方案编写与代码开发
这一部分就很简单了,技术方案一般公司都会有精准、完善的模板,只需要根据公司的要求来做就好了。
当然,技术方案如何写编写、代码如何开发,在基本的模板上,每个人都有自己的想法,但是经过一个大项目后(其中很多事情其实是自己在推动、跟进),我发现千万不要因为很紧急,或者没有头绪而没有对代码进行规范。如果一开始就没有做好规范,或者觉得自己的代码自己肯定能看懂,不用在开发的过程中画好UML图、ER图、数据流图等,那么等待着你的就是第三期的时候已经把第一期的思路忘光了。
回家之路
坐在回家的高铁上,望着窗外不停奔涌而过的景物,心情其实非常的复杂,今年算是高开低走吧。年前的时候,很多想完成的事情,其实并没有很漂亮地完成,很多想做的事,最后也只是流于计划。
蝶恋花·空余回声两彷徨
云卷云舒云泣露。绿印梧桐,荑葇无重数。斜月不谙鸿鹄苦,暗香沉浮长歌路。
空余回声两彷徨。黄昏陌上,青绢却微张。长平领兵书好计,不染纤尘容别绪。
我是练习java两年半时间的南橘,下面是我的微信,需要之前的导图或者想互相交流经验的小伙伴可以一起互相交流哦。