倍可親

回復: 0
列印 上一主題 下一主題

Facebook、微信團隊、Twitter、微軟開源軟體列表一覽

[複製鏈接]
跳轉到指定樓層
樓主
硨磲大爺 發表於 2017-4-19 04:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  王福強 InfoQ

  

  作者|王福強編輯|小智本文作者擁有10年以上的架構經驗,他將跟大家探討,作為一名架構師,我們需要具備哪些特質。所謂「Great Minds Think Alike」,一名合格的架構師應該擁有什麼樣的執念和堅守,使他/她可以在架構之路上能夠引領潮流,持續前行!

  註:本文轉載自InfoQ旗下垂直號:「聊聊架構」一、前瞻性的眼光

  合格的架構師一定需要有前瞻性的眼光。

  架構不是演化出來的,摸著石頭過河,遇到問題解決問題,那是專家的優勢和特長,架構師不應該關注如何精妙的去解決問題,而應該關注如何從一開始就奠定粗糙但正確的藍圖和基調,避免後面投入大量的資源去應對本不該出現的各種危機。 合格的架構師都應該做扁鵲的兄長那樣的人,而不是扁鵲,扁鵲是專家的偶像。

  一名合格的架構師設計出來的架構是要有前瞻性的,要為了將來的組織能力更上一個台階而設計, 滿足當下需求並能夠適當擴展,是遵循架構設計的系統實現要關注的事情,系統是多樣的,架構不是,系統是演化出來,架構不是。

  一名合格的架構師,要目光高遠的去改造「世界」,去將高遠的思想化為現實,你要做的是衝破各種阻力,去構建大多數世人沒有見過甚至沒有想過的事情。

  如果搞建築,你要搞的是摩天大樓,甚至宇宙城堡:

  

  而不是僅僅搭建一個遮風擋雨的棲身之所:

  

  前者體現了架構的更高價值,後者則只是滿足需求的野蠻生長,我並沒有說兩種不同的生態孰優孰劣,但作為合格的架構師,你要很清楚自己的選擇是什麼。

  NASA當年給尚比亞修女的那封信,相信大家都看過,解決眼前的問題很重要,但大部分人力和物力已經在做了,應用、工具、 服務,所有這些都是為了解決類似的眼前問題。所以,作為合格的架構師,你要做得應該是創造更高附加值的事情,立足現狀,志存高遠,用你的前瞻性,作為先驅者,探索,發掘,然後再回補,周而復始,走在前列。

  當然,有前瞻性不意味著你要去做一個夢想家,甚至空想家,就像Donald J Trump所說:

  Before the dreams lift you into the clouds, make sure you』ve looked hard at the fact on the ground.

  你要做的,只需要基於現有資源和環境,挖掘架構需求背後的本質,做出高於普通標準的方案就可以了。這跟藝術上經常說的「源於生活,又高於生活」是同樣的道理。

  前陣子在自己的朋友圈看到一篇介紹智利的建築設計師憑藉「殺手級設計-半個房子(Half A House)」獲得普利茲克獎的故事,而這個半個房子的設計,實際上就是很好的前瞻性設計的典範:

  

  設計者基於現有資源和環境給出了以上的設計,然後希望後面的住戶根據自己的經濟實力和需求自行建設和裝修,而後面各個半個房子的演化也很好的證明了設計者的預想:

  

  看,這就是前瞻性的眼光!二、系統性的思考

  合格的架構師都是好的戰略家,前瞻性眼光是他們起碼的要求,而系統性的思考則是將這些前瞻性眼光落地的必備素質。

  架構既看重前瞻,又看重落地,落不了地的架構只是空中樓閣,所以,如何將架構落地,考量的就是一名合格架構師的綜合素質和系統思考的能力。

  因為架構的規劃和落地依附於現有的環境因素很多且不可重現,所以,合格的架構師要能夠儘可能多的將對架構有過多權重影響的因素考量進來,然後做權衡,抓住重點因素,最後集中兵力重點突破。

  比如,是採用傳統的Monolith架構體系,還是時下風靡的微服務架構體系,你要能夠從團隊人員層次和能力,組織和公司的發展現狀,時機等重點因素中做出權衡,你沒法通過數據建模的手段去完成這個工作,你能依靠的,只有你的綜合素質和系統思考能力:

  從時機(Timing)上說,如果單個應用結點就可以滿足業務發展需求,那麼,就沒有必要上微服務,否則反而憑空增加了整個交付鏈路的負擔;

  如果團隊的成員能力還不足以支撐起微服務體系相關的所有工具化,服務化和平台化建設,那麼微服務架構也不是最合適的方向;

  如果公司業務還處在四處拼殺,生死未卜的時候,公司的現狀也不會允許你去搞各種完善的基礎性建設,活下來才是第一位的;

  對於架構師來說,你要關注的不是「點」,而應該關注的是儘可能多的「點」,進而是連接點的線,到面,甚至到體。你要構建的是「人浪」的整體形態,而不是指導「人浪」中某個人的「起立和坐下」,你要關注的是「整體效率」,而不是」單點效率」,否則就不是健不健,美不美的問題了:

  

  系統性思維幫助做出合理的決策, 但最終都是為了架構的落地而服務,所以,在繁雜的系統因素中做出抉擇之後,要能夠集中兵力攻佔陣地,這個時候考驗的則是架構師的統籌和帶兵打仗的能力,你可以使用情感紐帶將兄弟們團結在一起為了同一目標而奮鬥,你也可以政教合一,像亞馬遜那樣通過行政上的強化,來保證「所有服務都必須HTTP化」類似的決策執行,「路怎麼走,你們看著辦咯~」

  No man ever steps into the same river twice!三、開放性的心態

  前瞻性的眼光,系統性的思考能力不是憑空而來的,你需要「海納百川」,去蕪存菁,然後通過獨立的思考,經過長時間的積累,持續沉澱為一名合格架構師的綜合素質,而開放性心態是那道坎兒,你邁不過去,持續的沉澱就無從談起。

  一名合格的架構師是一座冰山,他給你的印象可能只是很平常的小冰塊兒, 但實在貨都沉澱在下面:

  

  而且,在開放的心態下,下面的沉澱將持續壯大。 3.1有了開放性的心態,你才能「接納差異」,做出合理的權衡

  對於技術人來說,或者說骨子裡就是為技術而生的人,與生俱來會有一種特質,那就是專註。這種專註的特質可以讓人沉浸在技術的海洋中欣喜而不可自拔,但是,不能因為這,就忽略了千差萬別的人,就忽略了斑駁陸離的世界。

  我們不是一個個的「孤島」,我們需要與不同的人,團隊,組織打交道,雖然我們為自己作為一名技術人和架構師而自豪,但不能因此而「老子天下最牛」,即使是同一團隊中,針對同一需求,也會存在不同的聲音。作為架構師,我們不一定要聽得進去,但起碼要能聽到,因為做架構本質上是要有一定的集權性的,接納眾多意見,最終還是要歸一為同一個方案,只是,集權不意味著武斷,接納也不意味著民主,但起碼要知道有差異,以及這些差異是否是當前架構需求的重點影響因素,只有開放言路, 開放心態,接納人的差異,組織的差異,才能幫助我們當時當下做出最為合理的權衡和架構決策。

  推薦各位架構師去了解一些像MBTI之類的人格理論,或許對了解人之間的差異會有幫助,空談要心態開放可能意義不大,倒是不妨先從了解人與人之間的差異開始吧! 3.2有了開放性的心態,你才不會被過往的經驗所羈絆

  過去的經驗有些時候不一定是財富,有時候反而往往成了障礙。

  一個公司在快速發展階段,往往會快速吸納來自不同公司和組織文化的人員,而吸納這些人員的初衷其實也正是能夠直接應用他們之前的經驗。但實際上,並非所有人員和他們的經驗都是對當前公司和組織有益的。大部分架構師或者技術專家都會對自己的「孩子」關愛有加,但往往也會被這種「愛」蒙蔽了雙眼,覺得什麼都是好的,所以,將原來的勞動成果照搬過來也就不是什麼不可理解的行為了。但是,像基於HBase的小文件存儲這樣的設計和系統,如果別人告訴你,該方案的設計和實踐的基石不合適,你卻聽不進去,還要爭辯說這套小文件存儲的設計和系統在原來公司運行的好好的云云,那麼,從心態到過往的經驗,對個人其實都是一種羈絆。

  捨得,捨得,只有舍了,才能得,杯子空了,才可以重新裝入新的液體! 3.3有了開放性的心態, 你才會走上成長為一名合格架構師的莫比烏斯之路!

  相信「在座」的很多人都打過遊戲吧?遊戲之旅我們通常戲稱為「打怪升級」之路,我通常為了鼓勵創業者能夠跳出來勇敢地去折騰,也會用「打怪升級」來形容創業的過程,而話說回來,架構之路,實際上也是一條「打怪升級」之路。

  大部分架構師會在整個生命周期內接觸不同層面,不同領域的工作內容,做過應用開發,做過資料庫和系統管理,做過中間件,也做過大數據,還做過…, 甚至你還可能還有公司和組織架構的經驗。但不管怎麼樣,只有你有了一顆開放的心態,才可以保證自己能夠持續的沿著那條看似毫無盡頭但卻精彩絕倫的架構師的莫比烏斯之路前行。四、Be A Whole-Life Learner

  技術很多時候是撬動人類歷史快速向前發展的核心因素之一,火藥的發明引發了從煙花,到火炮,火繩槍,燧發槍,連發槍的持續演化,而且演化迭代的速度也是越來越快;商業上也是同樣的道理,如果說原來的電話普及是數十年才填滿市場,那麼現在的智能手機則只是短短的幾年;

  一名合格的架構師在這個快速發展的背景下,只有不斷持續的學習,才能跟得上時代的步伐,才能不讓自己成為團隊和組織的瓶頸,才能持續的做出自身的貢獻,所以,要沿著架構之路堅持的走下去,就去做一名終身的學習者吧!

  你覺得呢?互動問答

  問題:初創公司生存是第一位,但是很多公共模塊還是應該及時擠出時間來做抽取,完善。基礎平台還是應該儘早完成。您怎麼認為?

  重要而不緊急的事情,肯定需要做, 但要balance好主要戰略目標和短期milestone的關係。

  問題:架構師與語言有關么?

  架構師和語言既有關,也無關,但架構師因為需要從基礎成長起來,所以,通常會依託某種語言生態,那麼,思路上會受到相應的影響;但隨著成長,廣度上來之後,很多東西可能就已經可以脫離語言生態的思維了,終極: 哲學。

  問題:請問老師,在大企業做架構師好還是在小創業公司做架構師好?兩個環境下工作如何側重 ?

  在什麼環境下做架構師都好,只要你有自己的目標。大企業你可以看過豬跑,但也可能只局限在一個小域內而看不到全局,這時候需要你有主動出擊的意願和行動;小企業你可以一開始就構建良好的基礎,但需要能夠預見中長期的發展空間。

  問題:如何平衡好成本,速度,質量,風險?而且互聯網流行快速試錯的MVP的吧?

  MVP的概念需要每個人自己去體悟,試錯和架構其實是兩種思路,試錯其實是不確定性更多的方式;架構是確定性更多的思路;

  問題:技術債可以欠但不能欠的太多,否則後面真的還不起啦,可以這麼理解吧?

  技術債是一個複雜的話題, 牽扯的因素很多,包括人員層次,人員流動,目標和激勵等;要還其實也會需要去權衡,重點還好了,想全還,哼哼。

  問題:架構師是否分為業務和技術兩個方向?

  架構師分不同的維度,可以分,你也可以給自己不分,希望這幅圖可以幫助你了解架構師X跟架構師Y,但其實都是架構師。

  問題:公司在快速發展的過程中,很有可能出現技術不能很好的滿足業務需求的情況,更有甚者就是技術限制了業務的快速發展,技術為了盡量滿足業務需求欠下很多技術債,再加上頻繁的人員交替,很多業務實現慘不忍睹,請問這種情況站在架構師的角度,如何更好的去解決這種問題?

  阿里的問題是你參考淘寶風格和支付寶的風格就可以了,其實, 淘寶風格是中國模式的典型發展模式,遇到問題解決問題,誰能解決問題,誰上,如果希望解決遺留問題,我覺得還是挑重點的問題突破,你無法解決所有問題;

  問題:開篇說架構不是演化出來的,那難道架構不應該跟隨當前公司發展不斷演變的嗎?

  我前面說了,系統演化出來的,組織是演化出來的,架構不是,自己多想想。

  問題:現在的大公司,有沒有專門的架構師團隊,要不要搞個這樣的組織形式?

  我認為可能最終是看技術負責人的治國思路;但有一點是需要澄清的:很多大公司到最後基本上架構組織就退化掉了,因為複雜系統到了一定程度,只靠架構組織是搞不定一個複雜組織的發展的,但前期架構組織如果奠定了很好的基礎,比如強大的中後台,那麼, 對於大型組織來說, 組織演化就會平滑的多。架構師團隊和架構部(平台部,基礎架構部等等)不見得對等,而且架構設計是一個角色(可由個人或團隊承擔),而架構師是一個職位。

  作者介紹

  王福強,A Writer, A Fighter, A Programmer And A Teacher, 《Spring揭秘》和《SpringBoot揭秘》作者,原挖財技術VP及首席架構師, 原天貓資深架構師,原阿里巴巴高級技術專家,浸淫Java平台多年,然近年更喜Scala, 專註於併發并行編程,HPC,分散式系統設計與實現,Big Data, 實時數據追蹤與計算等領域。

您需要登錄后才可以回帖 登錄 | 註冊

本版積分規則

關於本站 | 隱私權政策 | 免責條款 | 版權聲明 | 聯絡我們

Copyright © 2001-2013 海外華人中文門戶:倍可親 (http://big5.backchina.com) All Rights Reserved.

程序系統基於 Discuz! X3.1 商業版 優化 Discuz! © 2001-2013 Comsenz Inc.

本站時間採用京港台時間 GMT+8, 2024-4-22 20:41

快速回復 返回頂部 返回列表