架構師那些不能碰的禁忌

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"架構師作爲技術領域的頂尖戰力,上能妙碼生花(代碼),下能丹青栩栩(繪圖),是未來架構路線的設計師,是各項選型規範的話事人和推動人,是應對疑難雜症啃硬骨頭的119隊員,更是科技創新的開路先鋒...瞧,架構師可以做如此多的事情,面對不同技術水平的團隊也無需慌亂,有所側重即可。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"市面上關於架構師技能樹如何點亮的分享已多如牛毛,咱反其道而行之,寫寫架構師容易踩的坑,大部分是我自己踩過的坑,所謂“以人爲鑑,可以明得失”。另外本文觀點有前提,即文中架構師是指有“真材實料”的非水貨。即便這樣,這羣鋼鐵直男/直女仍難免犯一些忌諱卻不自知,故而有此一文。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"},{"type":"strong"}],"text":"技能圖譜"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"後端架構師技能圖譜"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"https://github.com/xingshaocheng/architect-awesome"}]},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/b9/b9631db6cb8d4cbe93655b1d0a4414f2.webp","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"IT界除了那兩個著名矛盾:研發vs產品經理,研發vs測試,還有個隱晦的矛盾就是 架構師 vs 其他所有人,只是只有IT人自己才懂罷了。架構師與研發、測試、產品、業務、運維、PMO都可能起衝突,因爲在我看來,架構師既是“規則制定者”(老闆),又是“規則受益者”(投資人),更是“規則參與者”(員工),三角兒合一自己跟自己玩就好了,還管你們其他人做甚?你們跟上就好。這,就是矛盾源泉。希望本文的這些小心可以最大程度化解這些矛盾吧。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"},{"type":"strong"}],"text":"01"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"忌降維打擊"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"以架構師的專業底蘊,在團隊交流協作時極易流露出降維打擊姿態,特別在團隊的專業能力差別巨大時尤甚。表現在言語上如:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"“這N年前的過時技術/設計了”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"“你沒理解這個技術的底層原理”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"“你們這個抽象考慮的過於簡單了,後面架構重新出個標準化組件,你們用就好”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"“這種實現嚴重違背了XX原理/定理/原則,建議重構”"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"大家感受到了沒?擁有"},{"type":"text","marks":[{"type":"strong"}],"text":"核武"},{"type":"text","text":"的架構師 與 手端"},{"type":"text","marks":[{"type":"strong"}],"text":"AK47"},{"type":"text","text":"的程序員 很多時候本就不在一個水平線上,這是客觀事實,但這不是架構師可以發動核打擊的理由。很多時候,架構師的一兩句沒有同理心的表述會瞬間拉遠與團隊的距離,成爲脫羣孤雁。當然也不是說程序員都這麼敏感和脆弱,但是架構師似乎特別擅長激化這種不同維度之間的矛盾。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"偶有架構師跟我吐槽,某些團隊水平真的太糟糕了,完全帶不動啊。誠然有些程序員的素質確實讓人不敢恭維,但當一個架構師流露出自己超出團隊水平一大截,且團隊無法有效執行自己的技術意圖時,架構師就會不自覺的輸出“降維“攻擊。一個優秀的團隊可以自驅動,可能壓根不需要你這個架構師,一個普通甚至不及格的團隊才能如實體現架構師的領導能力。這時架構師要做的不是“降維”攻擊,而是“降維”思考,請將架構師“高高在上”的視角先拉到團隊的平均線上,以此循序漸進增加難度和目標,量體裁衣獲得點滴進步至少是進步,拔苗助長只會適得其反。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"一來大家誰不是從hello world開始的,聞道有先後罷了,真不至於那麼高傲;二來架構師的權威力和公信力不是也不能靠降維打擊塑造起來的,而是靠每一次正確的決策、每一個正確的方案等等累積出來的。三來程序員裏即便不是臥虎藏龍至少是各有所長吧,架構師動不動翻車被打臉也不算什麼稀罕事,只是好不容易累積的那點權威分分鐘被揮霍掉。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"},{"type":"strong"}],"text":"02"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"忌脫離業務"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"經過這麼多年市場的摧殘,應該鮮有人還會挑戰這個結論吧。妄圖以技術改變世界的,不出意外都被業務方爸爸給教育得妥妥帖帖。任何企業的終極使命都是活下去,要活就需要銀子,要銀子就得有盈利預期的商業模式。不客氣點說,市面上那些逢必談技術驅動的創業公司,大多是還沒找到自己的盈利點的。因爲真正的技術驅動,在我看來,從來都是爲商業服務的,還真的天真到以爲是爲了改變世界啊?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"架構師更無法超然於業務之外。如果你的設計、你的底層邏輯不是爲業務預期籌劃的話,不止業務方不滿意,包括實施的研發團隊也會不堪重負。很簡單,當技術方向與業務方向不一致有夾角的話,時間越久實施團隊的負擔會越重,實施成本和工期也會越高,到最後必然是技術的妥協。當技術不能帶來收益,什麼情懷什麼情結都是唬人的泡泡,一戳就破。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"再說一個觀點,架構師其實也是個服務行業,爲業務團隊更快更好的交付價值而努力,爲組織將價值最大化而努力。所以架構師的目標和業務團隊的目標當然應該是一致的,深入業務一線、掌握業務脈絡、預測市場趨勢都應該是架構師需要涉獵的,不然選擇同步還是異步,用戶ID選擇INT還是BIGINT還是提前規劃爲分庫分表的分段式設計,選擇線性一致性還是最終一致性...從來都不是拍腦袋選的,而是基於用戶和市場做出的當下最合理準確的判斷。可以粗糙落地但必須未雨綢繆,可以未雨綢繆但不可過度謀劃。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"},{"type":"strong"}],"text":"03"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"忌不計成本"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"自古以降,IT都被視作成本中心,翻譯下就是,IT一個花錢部門,掙錢?那是銷售和市場的事。誠然,隨着國內最近幾年互聯網的大浪淘沙,對IT的投資大部分老闆不太會吝嗇了,就衝着程序員這種悶頭乾的傻勁,肯定是物超所值。但IT的這種“悶頭幹”值不值,必須有個前提就是方向對不對,而架構師就是指方向的關鍵人,如果指錯方向的話,血本無歸真不是開玩笑。簡單一句話就是,身爲成本中心的IT最應該有成本的覺悟。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"讓人哭笑不得的是,程序員羣體裏有成本意識的人少之又少,最有成本意識的可能是CTO或者人力外包的項目經理了吧。架構師作爲追逐技術領先的扛把子,一旦沾上了追求完美的“惡習”,就會浮想聯翩,這功能得上那功能也不能缺,“過度”追求超出當前業務規模和需求的技術投入。像不像雙11的你,提前消費屯了一堆你一年可能也用不完的東西,等一年過去了,新的雙11來了,有了更想買的東西,原來屯的可能也過期了,技術同樣如此,同樣有保鮮期。所以,架構師們請捂緊錢包(成本),理性架構。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"有時候未雨綢繆的鋪墊性設計就好,不用全部實現到位。比如目前的業務併發量壓根用不到限流,但是你可以先有一個網關應用,或者請求攔截組件,能夠隨時注入這個限流功能,並且對業務系統還是無感的,這就是優秀的鋪墊性設計,點到即止。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在追求完美的這條不歸路上,似乎架構師都變成了處女座,世界不是完美的,一直這麼運轉着,系統更加不是完美的,也這麼運行着。因爲任何好或壞的事物都會找尋那個平衡點,讓其自身存在着。比如自行車就是個極端不平衡的交通工具,而我們不管怎麼歪歪扭扭的騎着它就是不會摔,因爲我們找到了人體與自行車之間的美妙平衡。所以,架構師追求的從來就不應該是完美的“方案”,而是完美的“平衡”:技術成本 vs 技術收益,系統化的有所取捨。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"},{"type":"strong"}],"text":"04 "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"忌重複勞動"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"程序員,作爲著名的腦力工作者,八成的時間卻是在重複勞動。所謂學會增刪改查,走遍IT都不怕。但是架構師卻不能在此列,架構師確實需要有大量的經驗打底,但這個底可不是用來做重複的設計或方案的,是用來以此爲基礎做出更多的沉澱、抽象、複用、創新、升級。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在我看來,架構師證明自己有存在價值的重要依據就是,自己和所屬團隊是否長期在從事重複勞動。架構師自己在重複勞動,說明缺少了創造力;團隊在重複勞動,說明架構師沒有爲團隊起到領導作用。架構師最應該是那個拿着榔頭滿世界找釘子的人,重複勞動不一定就是壞的但一定是有優化空間的,身爲架構師要是對這顆釘子視而不見,讓組織陷入重複勞動的泥潭中,架構生涯堪憂。當然還是要強調一下,滿世界找釘子敲也要有個度,因爲我們的上一忌就說的是成本,一個組織不可能支持你漫天開火。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"一句話,當你看到了很多釘子的時候務必按耐住,找到最突出的幾顆敲;當你突然看不到什麼明顯釘子的時候,重複勞動這顆釘子一直就在那兒等着你。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"},{"type":"strong"}],"text":"05"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"忌權威效應"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"權威的來源多種多樣,可以是傳統型的權力、宗教、等級,也可以是魅力型的才能、品格、信仰,更可能是理法型的律法、服從。架構師的權威當然更多的是來自於專業性才能,前文也或多或少提到了,架構師工作可以有效推行更多靠的是權威。當技術服你,業務認你的時候你的架構決策當然會推行的比較順利。而當權威因爲錯誤的決策或者無法帶領團隊攻克難關、突破瓶頸,而不斷被損耗之後,你以後的工作可能會舉步維艱,隨之而來的是被挑戰、被質疑甚至被無視。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我沒能耐勸說你不必執着,放下再爭取回來就是了,這可不是一件輕巧的事情,需要內功修煉。但換個角度說,再牛的人也有犯錯或者被吐槽的時候,我等凡人也就沒必要硬要僞裝完人了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"},{"type":"strong"}],"text":"See"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"JAVA語言的 TOP 10 的糟糕設計"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"underline"}],"text":"https://www.intertech.com/Blog/top-10-nasty-java-bugs/"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"JDK裏最糟糕的類討論"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"underline"}],"text":"https://www.reddit.com/r/java/comments/5u6wwz/whats_the_worst_java_class_in_the_jdk/"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"前面說的是架構師要慎重應對權威的損耗,而權威這把雙刃劍還有鋒利的另一面。當架構師躺在權威的溫牀上,除了滋養第一忌提到的降維打擊姿態之外,還會抗拒團隊內外的挑戰,嚴重點的,一些正常建議和討論都會被視作對於權威的挑釁,真到這一步就有損整個組織的進步了,所謂權威的陰影就是如此,整個團隊都在陰影裏而不敢走出,如履薄冰。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"},{"type":"strong"}],"text":"名人名言"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"因爲我對權威的輕蔑,所以命運懲罰我,使我自己竟也成了權威。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"To punish me for my contempt for authority, fate made me an authority myself."}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"——愛因斯坦"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"可能並不是愛因斯坦說的,然後並不重要。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"italic"},{"type":"strong"}],"text":"06"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"最後"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"著名的熵增原理也就是熱力學第二定律告訴我們,一個孤立的系統會不斷的走向無序和混亂,直到最終消亡,組織同樣如此。管理學大師彼得德魯克說過:管理要做的只有一件事,就是如何對抗熵增。架構師的這五忌都會加速組織的熵增,在架構師的職能內核裏除了專業技能就是管理,所以別以爲管理與架構師絕緣。反抗熵增(讓組織有序)的手段很多,比如注入更多的創新或者科技含量、制定合理有效的流程規範、標準化各種基礎框架等等。聰明的你肯定知道怎麼做,甚至可以做的比我知道的更多。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"合格的架構師唯一考覈指標就是,不僅受團隊敬仰亦得領導垂青。做到這兩點,就離成功不遠了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章