如何成為一名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段架構師
推薦閱讀: