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
有興趣的朋友可以一起參與進來,完善這個小項目,后續我也會對這個小項目做一定的總結。