引言?
時間如梭,娃都可以打醬油了。?
轉(zhuǎn)眼間第一個五年計劃,已過了一半。?
年終總結(jié)是個打臉的好地方,曾經(jīng)夸下的海口,有的真的成了???。??
所幸,一切都在按好的方向發(fā)展。但樂觀背后容易忽略潛在的問題,所以,在2020來臨之際,是時候?qū)?019做個具體的回顧,并對來年做個具體的展望。??
談成長?
那就先從收獲開始講起吧。??
*
成功續(xù)任微軟最有價值專家。?
*
離開工作4年的老東家金蝶,前往自己看好的物聯(lián)網(wǎng)行業(yè)發(fā)展。?
*
碼字3萬+,寫博10篇。?
*
開始嘗試進行架構(gòu)設(shè)計,并應(yīng)用微服務(wù)技術(shù)棧?
*
第一次受企業(yè)邀約,前往廈門做技術(shù)分享?
*
作為講師,參加Microsoft Ignite The Tour 大會??
這一切的收獲得益于我堅強的后盾 ——
雙方父母的支持,老婆的理解與督促,還有我那調(diào)皮搗蛋的小家伙給我源源不斷的動力,所以感謝我至親至愛的家人!也感謝一路走來給予我?guī)椭?、指引我方向的每一位可愛的人??
談工作?
今年做出了一個艱難的決定,就是跳出自己的舒適圈,從工作4年的老東家辭職,加入到一家物聯(lián)網(wǎng)創(chuàng)業(yè)公司。這里十分感謝張隊的引薦,才有一個好的落腳點,才得以實施自己的技術(shù)抱負,才得以轉(zhuǎn)型自己期望的技術(shù)棧,從傳統(tǒng)的.NET
后端轉(zhuǎn)移到.NET Core 全棧開發(fā)。真正的去實踐微服務(wù),玩轉(zhuǎn)K8S。當然,也得益于前期的理論知識的積累。??
加入新公司,是機遇,是挑戰(zhàn)。?
記得入職后的第二天,就緊急前往武漢出差,對接智能電表的項目,忙前忙后兩個月,但項目告吹了。也認識到,物聯(lián)網(wǎng)行業(yè)的水很深,每個企業(yè)都想分物聯(lián)網(wǎng)這杯羹,但真正能夠做事的也少之又少,很多還是處于理想階段。??
回深后,工作重點轉(zhuǎn)移到公司現(xiàn)有架構(gòu)的重構(gòu)上。將原有的缺乏結(jié)構(gòu)、層次、抽象的代碼進行重新梳理,基于原始Orleans的分布式框架的技術(shù)選型進行重新整理,充分發(fā)揮Orleans的virtual
actor model的高并發(fā)的強大特性。?
這也是第一次去做架構(gòu)設(shè)計的工作。??
這里,得很感謝技術(shù)出身老板的指點,以及平時工作中對軟件設(shè)計的交流,讓自身對物聯(lián)網(wǎng)的技術(shù)細節(jié)有了很深的認知。也很大程度上避免了在技術(shù)選型上走入誤區(qū)。??
經(jīng)過大概兩周的時間,完成了整體解決方案的設(shè)計,得到了老板的認可。??
這次難得的架構(gòu)設(shè)計經(jīng)驗,是我往架構(gòu)師方向發(fā)展道路上濃墨重彩的一筆。??
也讓我領(lǐng)悟到了架構(gòu)設(shè)計不僅僅是代碼結(jié)構(gòu)的設(shè)計,更是產(chǎn)品業(yè)務(wù)結(jié)構(gòu)的設(shè)計。她是交流中不斷完善的結(jié)果。??
另一次架構(gòu)經(jīng)驗是年末嘗試的一次前端架構(gòu)經(jīng)驗?,F(xiàn)在想想自己都覺得詫異,我一個偏后端的,怎么會去搶前端的飯碗,然而事實是這的的確確發(fā)生了,而且做對了。??
這次前端架構(gòu)是對小程序項目的一次推翻重做。之前的小程序雖然實現(xiàn)了所有的業(yè)務(wù)需要,但代碼可讀性、擴展性極差,更別談封裝。??
對于創(chuàng)業(yè)公司,不斷的去推翻之前的成果,是一個很艱難的決定,因為推翻的不僅僅是項目,推翻的是前期的投入。決定是痛苦的,但成果是可喜的。經(jīng)過短短一周的時間,我一個前端小白就完成了小程序端的模塊化設(shè)計,并基于原生UI,設(shè)計好交互邏輯。??
如果現(xiàn)在再問我,前端難嗎,不難。如果做后端的你想嘗試做下前端,盡管去做,不要給自己設(shè)限,跨出去這一步,你就是全棧。??
這次前端架構(gòu)經(jīng)驗,讓我明白,架構(gòu)設(shè)計是相通的,是封裝重用,確立邊界,封裝模塊,封裝層次,封裝對象,封裝邏輯,封裝組件。??
以上兩次架構(gòu)經(jīng)驗,算是在新公司做的最正確的兩件事了。因為我也在不斷犯錯,而且最開始犯錯而不自知,簡稱蠢。主要體現(xiàn)在兩個方面:一是管理,一是自我認知。??
提到管理,猶記得加入公司之前訂閱了極客時間的技術(shù)管理的之道。讀完之后深有感觸,但實際上崗,放手不顧,異想天開無為而治。兵熊熊一個,將熊熊一窩。真是這個理。技術(shù)領(lǐng)導者除了技術(shù)過硬外,還需要有技術(shù)領(lǐng)導力,確保團隊技術(shù)選型不跑偏,項目實施不走樣。這需要時刻去關(guān)注項目的進度及代碼質(zhì)量。?
這里面涉及到就涵蓋了多個方面,一是技術(shù)管理,一是項目管理,一是團隊管理。??
團隊人多的時候,也有7,8個開發(fā),少的時候也就2,3個人。一段時間甚至懷疑公司的發(fā)展前景。現(xiàn)在想來,也并不是如此。團隊再小,如果你不能把控團隊按照既定的方向發(fā)展,那么團隊擴張就是一顆定時炸彈。??
所以,在我們發(fā)現(xiàn)不可控時,我們緊急的踩下了剎車。精簡人員,反思整頓。當然,這里面我是最主要責任人。問題在于,上面所說的項目管理和團隊管理的放任不顧。只是簡單的進行任務(wù)分配和成果確認,但忽略了過程評審。換句話說,項目成員的溝通和反饋通道沒有建立,這樣就不能及時發(fā)現(xiàn)問題。中間也發(fā)現(xiàn)了問題,嘗試要求團隊每周提交周報,每天進行15分鐘的早會進行狀態(tài)反饋,但堅持一月有余,就無疾而終,一切淪為形式。?
就措施而言,手段是好的。但忽略了手段的目的,就導致流于形式。所以在團隊管理上一以貫之、以身作則是十分重要的。??
另外一個問題是,溝通成本高。在組織會議時不能明確會議目的,導致無休止的討論,這也是缺乏計劃性的體現(xiàn)。??
在兩次架構(gòu)設(shè)計,基于原始業(yè)務(wù)的重構(gòu)工作不徹底,留下了系列隱患??傁氚咽虑榱舻胶竺嬗袝r間了再做,是一種極不負責任的表現(xiàn)。因為時間證明,除非后續(xù)遇到問題,否則不會改進。所以做事做徹底,要有魄力去否定,也要有魄力去承擔做好否定相關(guān)的善后工作。??
另外一點需要談到的是,對人員的招聘。項目的迫切程度,靠人月神話是解決不了的。在多個項目并行時,人手不足時,一心想通過增補人員來緩解項目壓力,也并不總是有效。除非項目、團隊在你的控制之內(nèi)。??
總以為站在高的位置,就不應(yīng)該拘泥于細節(jié)。而編程這個行當,細節(jié)的把握的才真正體現(xiàn)高度。??
一名合格的技術(shù)領(lǐng)導,決不能給自己設(shè)限,不能沉浸于自己擅長的技術(shù)棧。云生應(yīng)用時代,從開發(fā)到測試到運維,從產(chǎn)品原型到技術(shù)預(yù)演,從前端到后端,從UI原型到交互設(shè)計都要有所了解。??
另外一個問題,是缺乏嚴謹性,也就是數(shù)據(jù)的敬畏心。在處理新舊系統(tǒng)的兼容時,考慮不周,就會造成數(shù)據(jù)沖突,而且沖突修復(fù)成本極高。這期間我的自負心理在作祟,極力想扔掉歷史包袱,就會造成對包袱的漠視。但凡一個公司都是有包袱的,接收它,才能慢慢扔掉它。??
接觸物聯(lián)網(wǎng)后,愈發(fā)覺得對計算機原理,計算機網(wǎng)絡(luò)等基礎(chǔ)知識的缺乏,這一塊是致命一擊。??
還有一點的感悟是,自身前期的技術(shù)積累被自己雪藏,在實際項目實施中,不能靈活運用,尤其是自己引以為傲的DDD、面向?qū)ο缶幊趟枷氲陌盐?,并沒有學以致用。也就是兩個問題,一對知識的理解并不深刻停留在皮毛,或并沒有思考其實際的運用場景,也就是只有術(shù)沒有道。另一方面,缺乏思考,做項目太急于求成,忽視了前期的總體布局規(guī)劃,何談運用呢,也就是不預(yù)不立。??
談寫作?
2019,主要完結(jié)了eShopOncontainers 系列文章,寫了3篇Orleans系列文章,輸出銳減。整體而言,不抵預(yù)期,不符計劃。??
從寫博至今,每年的文章輸出都在遞減,連每月一篇的基本保證都沒有做到。所以,是我變忙了嗎?忙到?jīng)]有時間去思考沉淀并輸出了嗎?內(nèi)心的答案很明確,時間都是擠出來的。?是自己以忙為借口罷了。手中的筆,勾勒的是成長的真實印記。??沒有輸出,何談內(nèi)化。
2020年 會輸出Orleans 系列文章,希望對Orleans有更深的理解。??
談學習?
讀書方面:2019,也讀了幾本書。C#并發(fā)編程經(jīng)典實例,刷新,大型網(wǎng)站技術(shù)架構(gòu),從零開始學架構(gòu),自控力,微服務(wù)架構(gòu)設(shè)計模式,kubernetes in
action,用戶故事地圖。在技術(shù)棧上,對K8S有了一定的認知,雖談不上精通,但至少夠用,滿足項目的運維需求。另外,微服務(wù)也算是簡單入了門。C#并發(fā)編程經(jīng)典實例修正了對并發(fā)編程的理解。用戶故事地圖,是一本幫助梳理業(yè)務(wù)邏輯的方法論,鼓勵通過不斷的討論交流和可視化的方式進行需求確認,在進行系統(tǒng)業(yè)務(wù)梳理時幫助良多。?
刷新和自控力,都是走馬觀花的看了一遍。好書是值得多次翻閱的,所以時刻刷新。微服務(wù)架構(gòu)設(shè)計模式讀了開頭,需要繼續(xù)。??
就閱讀量而言,還是很貧乏,缺少輸入,那自然是缺乏輸出。輸入輸出是成正比的,所以也解釋了為什么每年的輸出都在斷崖式下降。也暴露了一個自身在知識積累上內(nèi)化不足。??
談生活?
2019年去了桂林,河源,武漢,北京,也算踏出廣深。對于生活,永遠相信美好的事情靠自己的雙手可以得以實現(xiàn),詩和遠方也是需要努力努力再努力,所以,對未來依舊充滿憧憬。??
談計劃?
2020,我要出書。??
最后??
2019 這一年,總體而言,看似收獲滿滿,但內(nèi)心深處一顆不安定的心告訴自己:你還差得遠。是啊,半斤終究不是八兩。??
2020,謙卑沉淀務(wù)實,繼續(xù)加油!??
熱門工具 換一換