1、卓越的程式設計師fred george先生說:「不程式設計的架構師的職業生涯是短暫的」。他說這句話的背景主要是針對有些架構師的設計與實現有斷層的問題而言的,因為如果架構師不去實踐,只是想當然的認為「沒問題,這個想法能實現」,那麼對於專案的落實而言是個很大的隱患。支付寶架構師馮大輝也表示過,架構師是乙個比較「虛」的崗位,主要的問題都在「落地」的過程中。
2、抽象思維
很多優秀的架構師們都一致的表示,邏輯思維和抽象思維能力是乙個架構師最重要的素質。ebay的randy shoup先生稱擁有條理清晰的邏輯思維能力的人「就像稀有動物那樣難找」。fred george則表示「駕馭概念的技能,在我看來是每乙個人最高的潛力」,並表示自己不太介意這樣乙個苗子在其他方面的技能和經驗的匱乏,因為在他看來除了思維之外的其他因素都是可以培養的。
3、技術前瞻性
有人談到技術高手與架構師的區別就在於,架構師不光是著眼於現在,不僅僅侷限於開發細節,比如如何呼叫,如何併發等等。而是跳出三界外,考慮一下面向未來問題和潛在風險的應對之道。
4、問題解決大師
只是,架構師之所以為架構師,是在於他們在面對龐大系統之時,仍然能夠敏銳的發現其底層之真實。這不僅需要此哲學層面的「內功」,還需要架構師具有多領域知識和經驗的積澱。
5、多領域知識
架構師身為一名技術領袖,需要通過發散知識的光芒來統御開發團隊的。如果只是對本行業知識做到爛熟於心,那還僅僅是一名熟練工的水平。要想晉公升更高的層次,還需要跳出「只緣身在此山中」的困惑。
6、溝通能力
做到人性化的溝通,需要我們在平時就進行培養。寫出大部頭的架構書,有的時候並沒有用visio畫出的簡單架構圖好理解。人對圖形理解遠遠大於對文字的理解,直觀簡單的uml圖可以極大的方便程式設計師理解架構師的意圖。
7、內力
很多人理解的內力就是開發技術,包括語言的掌握、對框架的掌握、資料庫管理能力、安全管理能力等等。但是我們看到,架構更多的內力體現在對技術的綜合運用上,光會程式設計的程式設計師,最多就能做到高階程式設計師,也就是技術實現上的高手。
8、權衡取捨
fred george先生提出了「短期濫用」的說法,即在系統能夠承受的範圍內做出一些妥協。在atam方法中,分析的思路是基於「情景」的:你需要提出各種可能的情景,然後來證明在每乙個使用者使用場景中,系統的哪一些內容是必要的、不可丟棄的——從而確定哪些部分是暫時可以不予考慮的。
9、管控能力
架構師在管理和控制的能力上,需要有自己獨到的見解,而不是簡單的認為這是專案經理或者財務部門的事情。身為技術專家的架構師,隨不需要處理那些煩雜的日常管理。奇虎架構師李釗在一次接受採訪時道出過架構師們的心聲,技術人才轉向管理就是莫大的浪費。對,如果架構師只是一味的去進行專案管理,那就和其他市場人員沒有任何區別了。在這裡架構師所需要的管理與控制,其實是從技術的角度,對一些問題的控制,特別是開發過程中的監控,而不是普通意義上的純粹管理。
10、藝術氣質
乙個優美的系統則是可以像有機的生命一樣成長的,這是因為從系統開始架構的那一刻起,架構師就考慮到這個系統以後將會面臨的挑戰,為系統的成長預留好空間。專案經理經常會對這位架構師提出的看似理想化的要求不置可否——專案經理只想著能夠盡快以比較低的成本實現客戶的需求,然而這些充滿藝術美感的想法其實是打造健康——因而優美——的系統的根本因素。
架構師應具備的概要技能
1 技術領域知識 架構師可以不是技術專家,但必須擁有良好的設計技巧和程式開發技術,與最新技術保持同步,了解巨集觀上的問題而不必了解每個細節。軟體架構不僅僅是設計。2 商業領域知識 架構必須務實,擁有領域知識將幫助架構師更準確的理解需求,解決實際問題 3 管理技能 架構師把團隊組織在架構周圍,並積極投...
優秀架構師必須掌握的架構思維
如果說架構的本質是管理複雜性,那麼抽象 分層 分治和演化思維是我們工程師 架構師應對和管理複雜性的四種最基本 1 抽象思維 抽象其實是這樣定義的 對某種事物進行簡化表示或描述的過程,抽象讓我們關注要素,隱藏額外細節。在系統架構和設計中,抽象幫助我們從大處著眼 get our mind about b...
成為一名架構師得學習哪些知識?
昨天寫的一篇,關於架構師是做什麼的文章,之後就有讀者在後台問起,說要想成為架構師要具備那些方面的知識,那今天就讓我們一起來扒一扒。曾經有這麼個段子 乙 羨慕ing,都什麼人來了?甲 ceo coo cto all of 程式設計師,還有會計 司機都來了。乙 哇,他們太重視你了,人才啊,這麼多人迎接你...