前言:程序員
一、開發者和架構師之間最大的區別是什麼?面試
架構師和開發者同樣,也常常寫代碼,簡單的說,開發者和架構師之間最大的區別就是技術領導力。編程
軟件架構師的角色須要理解最重要的架構驅動力是什麼,他提供的設計須要考慮這些因素。架構師還要控制技術風險,在須要的時候積極演化架構,而且負責技術質量保證。安全
從根本上講,架構師是一個技術領導者的角色,這就是最大的區別。服務器
二、一位iOS開發者如何才能成爲一位架構師?他/她須要掌握哪些領域以外的能力?網絡
兩個字:經驗。架構
我認識的大部分優秀軟件架構師同時也是出色的軟件開發者,他們都是通過時間逐漸發展成爲架構師的。你須要有退後一步看代碼的能力,從而理解特定軟件系統背後的設計決策。退後一步才能看到「大局」,這是架構師必須掌握的核心技能。框架
做爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要,這是一個個人iOS交流羣:638302184,無論你是小白仍是大牛歡迎入駐 ,分享BAT,阿里面試題、面試經驗,討論技術, 你們一塊兒交流學習成長!但願幫助開發者少走彎路。編程語言
羣文件自行下載如下資料佈局
三、你對軟件架構的理解是否由於你的經歷和實踐而改變過?
是的。我對軟件架構的理解是根據我在諮詢公司工做時在各個項目中負責軟件架構的經驗造成的。諮詢是一件好事,尤爲從最近我開始從事獨立諮詢師這個工做以後,我能夠看到不少不一樣的團隊,不一樣的架構,不一樣的技術,以及人們不一樣的工做方式。世界各地的文化多樣性又爲工做的複雜度增長了一個維度。不管是尋找特定問題解決方案的過程,仍是爲各類想法去蕪存菁的過程,這些經驗和與我共事的人的反饋一塊兒最終造成了我今天對軟件架構的認識,這些思惟也反應在了個人書中。
四、有沒有什麼事是架構師永遠都不該該作的?
有,軟件架構師永遠都不該該中止編程和中止學習!
程序員從初級走向資深的過程當中,會面臨兩個支路,一個叫技術主管,另外一個則是架構師。
總結程序員到架構師之路的忠告:
一、程序就是一切。文檔是緊接其後的事情。所以,把大家的代碼寫成自己就是文檔,並且要好用。
二、測試 測試 測試。重要的事情說三遍。
三、單元測試要嚴格。任何一個單元測試中發現的bug都負擔了開發人員成本外的雙重代價。大家要知道,我寧願給大家更多的薪水也不肯找別的QA公司來測試、讓大家修改bug。但若是你的程序寫的不好,那我只好把這些錢由這些人平攤,大家只能獲得其中很小的一塊蛋糕。
四、寫出好代碼要能給人類閱讀,給CPU使用。絕對不能向爛代碼低頭。
五、閱讀更多的知識,不要侷限於目前的工做所需。若是你只掌握今天須要的知識而不知明天須要的,你不會有發展進步。
六、回家不時的作作飯。是的,真的飯。這會讓你知按照菜譜作飯和本身創造一頓飯之間的區別。前者是在作飯前已經知道了須要什麼,然後者是根據你目前有的來作 … 就這一點點不一樣。
七、抽象的能力,抽象思考的能力怎麼強調都不爲過。現實的需求紛繁複雜,若是架構師不可以把這些亂無頭緒的需求抽象成一些「概念」,在概念的層次進行思考,系統根本就沒法設計。
八、技術領導力,要用技術的影響力來領導人,而不是威權和職位。換句大白話來講,就是要能讓技術人員服你。有了技術影響力,你在團隊發出的聲音纔會被傾聽,被尊重。
爲何大多數人不是架構師?
架構師,程序員,產品經理的區別,大概就是建築行業裏建築師,建築工人,甲方業主的區別。產品經理說我要建這麼這麼一棟樓,架構師說好吧,我來幫你看看是作成磚木結構仍是框架結構,房型怎麼設計,水電氣怎麼佈局,預算多少,而後程序員上陣,按照圖紙把樓建起來。運營是大樓的物業管理,負責營運大樓。
軟件開發愈來愈成爲傳統行業(即使在互聯網企業),一個成熟的軟件團隊內部天然會分化出這些角色,各展所長。但很是不一樣的是,建築工人不多能自發成長爲建築師,後者都是科班出身,由於建築學科已經高度發達,須要掌握結構力學,美學等技術,如今軟件行業尚未這麼高的成熟度,程序員和架構師接受的都是同樣的計算機教育,因此程序員能夠自學升級到架構師,走一條不一樣的升級打怪路線。
那麼,架構師是什麼人呢?
按所工做的不一樣軟件層分,有網絡架構,系統架構,數據架構,業務架構,應用架構,平臺架構。
按所解決的問題領域分,有電商架構,支付架構,搜索架構,安全架構,性能架構,遊戲架構,多媒體架構,等等等。
按其工做的深度來分,有集成架構,業務架構,模塊架構,框架架構,中間件架構,軟件架構,引擎架構,服務器架構,甚至編程語言架構。
是否是太亂了?比如在設計師的世界觀裏一切東西都須要設計。軟件也須要精心設計,在優秀的程序員眼裏,每一行代碼都須要架構!都體現了架構。
爲了解決問題,程序員天然須要架構,他們中的佼佼者被冠以架構師的名號,得到了必定的話語權,逐步成爲一個職業分工,
我想,這就是架構師的原本面目。
做爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要,這是一個個人iOS交流羣:638302184,無論你是小白仍是大牛歡迎入駐 ,分享BAT,阿里面試題、面試經驗,討論技術, 你們一塊兒交流學習成長!但願幫助開發者少走彎路。