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