如何成為一名Android架構師?

如題,目前本人是程序員一枚....想知道需要學習哪些知識?讀哪書籍?求指導


多看谷歌源碼,各種package下的app還有io大會的app源碼,當然還有大神們開源的項目,以前的foursquare還有前不久的philm。

還有就是多實踐吧,局部代碼的設計開始做,比如一個分享功能,不同的源數據分享出不同的數據出去,同時用戶還可以選擇分享到不同的平台,你要根據需要看是否是簡單的if else還是需要去做下設計,比如我用的橋接模式做的。

看的多了做的多了,自然而然就會做了,雖然我們很可能從過度設計開始的,但是我想慢慢的也會知道哪裡需要設計哪裡不再需要。

書的話,初學者不建議看設計模式,先實踐再看設計模式比較好,當然要設計模式的書,我看的是這本:Head First 設計模式(中文版) (豆瓣)

我們老大一直比較推崇重構,看這本書:重構 (豆瓣)

我們中間很大部分人其實都是從看代碼改代碼開始的,很難得遇到一個全新的項目,當你了解並開始去做重構(小範圍的重命名,移動代碼塊和變數,讓類的職責單一明確都是重構),這些能讓你明白什麼是好的設計什麼是不好的,方便你後續做更好的設計架構!


架構師從來都不是看書看來的,需要長久的實踐與累積。最好的方式就是在工作中累積。

首先,你得明確,你是在做產品,不是做項目。

其次,架構的前期需求分析與建模非常重要,多思考未來可能的擴展。

最後,最好有一定的代碼規範甚至是潔癖。

要用嚴格的標準來要求自己,是否當上架構師其實沒差,無非就是希望自己成為團隊核心得到更多的認可而已。

如覺得自己目前的工作沒什麼挑戰性,也可以自己來設計一款產品,從需求到架構到實現。碰到那種常見的需求,可以參考一些成熟的第三方開源項目,另外在看第三方項目時,要明白what how why。

what 這個項目是為了解決什麼問題而生的,提供了什麼樣的API?

how 它是如何實現的?有哪些小的功能模塊組成?它們是怎樣解耦的?如果我有擴展需求,我該如何改?

why 為什麼會這樣來實現?有沒有更好的方案?

一般來說,我們看代碼,基本順序是what how why,能去翻源碼理解how的不多,真正做到why的少的可憐。如果你想提升技術成為主力,那至少,你得多去理解how,試圖去解釋why。


路徑是很簡單的。一次解答幾個問題:

1,什麼是架構

2,它具體在一個app中是什麼樣的?

3,我怎麼樣能夠重建這個app?

4,我怎麼才能在新的app中用我上面得到的經驗?

於是,一個項目完成後,你就是了。


先給題主看看我的經驗總結的幾篇文章,可以說是android方面架構的入門:

Android項目重構之路:架構篇

Android項目重構之路:界面篇

Android項目重構之路:實現篇

好了,如果你上面幾篇全部看懂了,那你對android的架構設計至少不是門外漢了;如果你還沒看懂,那說明經驗還不夠,需要在不懂的地方多學習多積累;如果看完覺得這個架構存在各種問題,恭喜你,你已經不只是具備初級架構師的能力了。


我去搜了一下,發現麥子學院開設了android架構師這一課程,麥子學院是分為四個階段

階段一 - Android架構師之OOP及EIT思想

階段二 - Android架構師之框架原理及架構

階段三 - Android架構師之設計研究

階段四 - Android架構師之A段架構師


推薦閱讀:

什麼是控制系統、機器人系統架構師乃至總工程師所需的大局觀?
常見的網站伺服器架構有哪些?

TAG:Android開發 | 軟體架構 | 架構師 | Android |