歷時六個月項目開發的心得與我的甲子年

回家之前

今天就要回家了,也終於在農曆新年到來之前完成了到新公司的第一個項目,現在只有一個感覺,就是累。

(我現在就像垮起了批臉的啾啾)

從八月初至今,時逾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兩年半時間的南橘,下面是我的微信,需要之前的導圖或者想互相交流經驗的小夥伴可以一起互相交流哦。