2017年工作总结
2017年马上就要过去了,回顾这1年来,有成功有失败,自己确实收货了不少,在此做一下总结。
愉快的美国之行
2016年10月底,我应公司业务需要,飞赴纽约分公司做了3个月的on-site支持,协助销售人员争取项目并稳固与现有客户之间的关系。
虽然在上一个公司也曾去过新加坡做1个月的on-site支持,但是这次的时间要长的多,而且恰逢女儿出生不久,所以去的时候还是很忐忑,非常挂念自己的家人,每天都会和家里视频聊天,了解家中的情况。
美国的同事们对我都很热情, 让我减轻了对家人的思念,能够全身心的投入到工作中。
在纽约的3个月时间,不仅挺高了我的英语水平,也加强了自己与前线销售人员之间的关系。
周末时间,我也游览了纽约的一些景点,并代表公司参加了TEAM FOX的慈善活动, 从各个方面了解了美国文化。
总体的来说,美国之行是非常愉快的。
不算成功的DDD实践
2017年美国之行结束回国之后,公司决定自主研发一套易扩展易维护的诊所预约管理系统,可以结合微信实现在线预约挂号,回访管理,病历管理等功能。
由于之前和几个同事做过一个使用DDD架构的项目,大家对DDD都有一定的了解,很清楚DDD在复杂业务系统中的威力, 所以在这个诊所项目中,我们决定使用DDD进行一定的实践。
虽然开始的想法不错,但是最终的结果却不尽人意。
主要原因如下:
- 整个项目严格按照User Interface, Application, Domain, Infrastructure对项目进行了分层,大部分功能都实现了面向接口编程,做到了易扩展易维护,但是没有使用到DDD中的聚合的概念,我们为每个实体创建了单独的Repository, 所以也就缺失了业务中的事务。 而且我们对业务实体的理解不够,好多实体对象实际上还是贫血对象。整个架构只重其型,不重其意,感觉上就是为了DDD而DDD。
- 在做这个项目时候缺少对于事件的理解,没有很好的使用Event Sourcing。
- 在做这个项目是对OAuth2的理解有偏差,使用了错误的授权方式,虽然功能上没有问题,但是和OAuth2的初衷不符。
搭建个人博客
说来惭愧,到现在为止工作9年了,我只是在QQ空间中记录一些和项目相关技术摘抄,但是从来没有自己写过东西,一是自我感觉写作能力差,二是对于学到的东西没有总结的习惯。所以在2017年5月开始,我创建的自己的博客网站https://www.lovelysyh.com (后转入了博客园http://www.cnblogs.com/lwqlun) , 开始了自己的博客生涯。在这一年中我学习了不少新技术,在我的博客中,都留下了一些相关的学习笔记。
第一次微服务尝试
2017年,我也投入到了微服务的大潮中,开始对分布式架构、微服务架构已经一定的尝试,在Github中我托管了一个练习用的图书馆小项目https://github.com/lamondlu/Library, 它的业务逻辑很简单,仅仅是为了完成一套微服务的基本架构。
整个项目使用了
- .NET Core
- DDD
- CQRS
- Event Sourcing
- RabbitMQ
- Redis
- SignalR
之前参加了青岛微软线下活动,听了老MVP衣明志讲的《基于.NET Core的微服务开发》,感觉受益匪浅,后续会在项目中补充以下特性:
- 使用Polly解决异常故障处理
- 使用Consul, Consul Template, Nginx搭建微服务注册发现集群
- 加入Api Gateway
有兴趣的朋友可以一起参与进来,完善这个小项目,后续我也会对这个小项目做一定的总结。