1. 程式人生 > >從程式設計師到架構師,你需要掌握什麼能力?

從程式設計師到架構師,你需要掌握什麼能力?

1、開發者和架構師之間最大的區別是什麼?

架構師和開發者一樣,也經常寫程式碼,簡單的說,開發者和架構師之間最大的區別就是技術領導力。

軟體架構師的角色需要理解最重要的架構驅動力是什麼,他提供的設計需要考慮這些因素。架構師還要控制技術風險,在需要的時候積極演化架構,並且負責技術質量保證。從根本上講,架構師是一個技術領導者的角色,這就是最大的區別。

2、一位開發者如何才能成為一位架構師?他/她需要掌握哪些領域之外的能力?

兩個字:經驗。

我認識的大部分優秀軟體架構師同時也是出色的軟體開發者,他們都是經過時間逐漸發展成為架構師的。你需要有退後一步看程式碼的能力,從而理解特定軟體系統背後的設計決策。退後一步才能看到“大局”,這是架構師必須掌握的核心技能。

3、你對軟體架構的理解是否因為你的經歷和實踐而改變過?

是的。我對軟體架構的理解是根據我在諮詢公司工作時在各個專案中負責軟體架構的經驗形成的。諮詢是一件好事,尤其從最近我開始從事獨立諮詢師這個工作之後,我可以看到很多不同的團隊,不同的架構,不同的技術,以及人們不同的工作方式。世界各地的文化多樣性又為工作的複雜度增加了一個維度。無論是尋找特定問題解決方案的過程,還是為各種想法去蕪存菁的過程,這些經驗和與我共事的人的反饋一起最終形成了我今天對軟體架構的認識,這些思維也反應在了我的書中。

4、有沒有什麼事是架構師永遠都不應該做的?

有,軟體架構師永遠都不應該停止程式設計和停止學習!

程式設計師從初級走向資深的過程中,會面臨兩個支路,一個叫技術主管,另一個則是架構師。

總結程式設計師到架構師之路的忠告:

1、程式就是一切。文件是緊接其後的事情。因此,把你們的程式碼寫成本身就是文件,而且要好用。

2、測試 測試 測試。

3、單元測試要嚴格。任何一個單元測試中發現的bug都負擔了開發人員成本外的雙重代價。你們要知道,我寧願給你們更多的薪水也不願找別的QA公司來測試、讓你們修改bug。但如果你的程式寫的很差,那我只好把這些錢由這些人平攤,你們只能得到其中很小的一塊蛋糕。

4、寫出好程式碼要能給人類閱讀,給CPU使用。絕對不能向爛程式碼低頭。

5、閱讀更多的知識,不要侷限於目前的工作所需。如果你只掌握今天需要的知識而不知明天需要的,你不會有發展進步。

6、回家不時的做做飯。是的,真的飯。這會讓你知按照菜譜做飯和自己創造一頓飯之間的區別。前者是在做飯前已經知道了需要什麼,而後者是根據你目前有的來做 … 就這一點點不同。

7、抽象的能力,抽象思考的能力怎麼強調都不為過。現實的需求紛繁複雜,如果架構師不能夠把這些亂無頭緒的需求抽象成一些“概念”,在概念的層次進行思考,系統根本就無法設計。

8、技術領導力,要用技術的影響力來領導人,而不是威權和職位。換句大白話來說,就是要能讓技術人員服你。有了技術影響力,你在團隊發出的聲音才會被傾聽,被尊重。

另外還有一點可以通過自身的學習來獲取一大進步。

這次我把所有乾貨重新梳理精簡,分享給所有的程式設計師朋友下載!