本文講的是30+關於如何成爲更好Android開發者的短小而專業的建議,成爲一個Android開發者容易,成爲一個成功而又出色的Android開發者難。要達此成就須要許多努力,激情,付出與毅力。編程
我沒法給出一個成爲成功開發者的捷徑,可是若是你願意付出汗水與心裏的話,定會如願以償。設計模式
關於如何成爲更好的Android開發者,應大家的要求這裏是根據自身經驗得出的一些精簡的專業性建議。因此若是你決定入坑Android開發或者已經作了Android開發一段時間,那麼你找對地方了。架構
因此廢話很少說,讓咱們開始吧。app
1. 進一步熟悉Android框架內部框架
我不是說熟悉其文檔,而是指框架代碼。許多開發者懼怕去深刻Android框架內部,瞭解其工做原理以及各個部分是如何相互配合的。編程語言
若是你想在Android平臺更上一層樓,大膽的接觸Android SDK的內部,和它成爲朋友。工具
2. 克服錯失恐懼症單元測試
Android很大,很是的大。你不可能在一兩個月內就從頭至尾學一遍。學的越多,會發現更多的新東西須要學習。做爲一個初學者,老是擔憂本身學漏了什麼是很是正常的。學習
可是要克服這種擔心,學習本身目前開發的app所須要的就夠了,而後慢慢的開拓本身的視野。測試
3. 開始閱讀更多代碼
許多開發者不肯意抽時間去閱讀別人的代碼,只把大部分時間花在寫本身已經知道的東西上面。
可是那樣不會幫助你成長,也不會增加你的知識。你應該開始閱讀其它的開源app和開源庫的代碼。天天閱讀30分鐘的代碼是一個好的開始。你會驚奇的發現原來還有這麼多你不知道的東西。
提示: 能夠從這些最佳的開源app開始。
4. 考慮學習更多的語言
我不是叫你去學西班牙語或者中文,而是學習一門新的編程語言。你應該跟上這個行業更新的步伐而不是一生侷限於Android。
這將開闊你的視野並幫助你大幅提升Android開發技術。下決心一年至少學習一門新的編程語言,可是不要只花一週時間學個大概就丟掉無論了,而是深刻研究。
提示:閱讀 這篇 超讚的文章能夠幫助你作出更好的決定。(劇透-答案是Javascript)
5. 是時候學習Java設計模式了
我再怎麼強調設計模式在你Android開發生涯中的重要性都不爲過。通常來說,每當你遇到一個棘手的編程問題的時候,設計模式真的能夠很大程度上幫助你找出一個優雅的解決方案。
除此以外,你須要跟其它開發者在同一個頻道,這樣當他們在討論Factory , Decorator , Facade 的時候你立馬就知道他們的意思。
發誓一週學習一種新的設計模式。
提示:這裏有一個很是棒的資源。若是你喜歡書籍,你必定要閱讀 這本。
6. 開始貢獻開源代碼
若是你開發出了有用的東西並在本身的app中使用它,那麼能夠考慮把它開源。這個過程會讓你學到不少東西。
若是你沒有什麼能夠開源,考慮找一個本身喜歡的其它開源項目,在之上修復一些bug,完善文檔或者編寫測試。
即便是最小的貢獻對維持項目的運行維護者來講都是很是有幫助的。
提示:這裏 是幫助你開始貢獻開源項目一篇不錯的指南。
7. 熟悉IDE
花更多時間熟悉你正在使用的IDE-Android Studio。它能夠作的事情遠比你想象的多。這個IDE中隱藏着不少很酷的功能和快捷鍵,大部分開發者都不知道或者根本沒有嘗試過。
要養成探索工具新功能和更好使用方法的習慣,提升工做效率。
提示: 這裏 是一篇幫助你像專業人員同樣掌握Android Studio的文章。
8. 是時候合理的架構app了
大多數時候咱們都籠統的把代碼放到Activity和Fragment中(在這個問題上你也能夠責怪我),致使它們變成龐大的「上帝對象」,這幾乎不可維護和測試。
爲app採用一個好的架構是很是重要的,好比MVP, MVVM, Redux等。考慮把app的業務邏輯,視圖交互,數據交換分爲不一樣的層,讓它們更易管理和測試。
提示:看一看谷歌的 這些 模版可讓你在架構app的時候更容易。
9. 學習Android簡潔代碼規範
這是一個不能夠忽略的問題。與那些連基本的Android開發編碼規範都不遵照的人一塊兒工做是很困難的。
這不是什麼困難的事情,要不了幾個小時的時間就能夠學習基本的Java 和 Android 編碼規範。並且這不是一次性買賣,做爲一個開發者終生受益。
提示:這裏 有一個開始學習標準編碼規範的極佳資源。
10. 花時間學習Android最佳實踐
要讓本身比其餘開發者更有優點,並能構建出好看又好用的app,你須要開始學習一些安卓開發最佳實踐。
在成爲更優秀的開發者的路上有一些「該作」與「不應作」的行爲準則,可讓你的app脫穎而出。
提示:這裏是一個一些最佳實踐的集錦。
11. 經過收聽電臺更高效的利用好業餘時間
當你上下班,健身房,開車,作飯的時候,你聰明的大腦其實沒作什麼事情,能夠利用這些時間收聽一些Android電臺。
提示: Fragmented Podcasts 和 Android Developers Backstage 是兩個不錯的電臺,能夠從它們開始。
12.不要太工程師思惟,現實點
這種事不光發生在我身上,還發生在個人幾個同事身上。開始工做以前多思考是對的,可是過分思考過分分析除了致使沒必要要的迷茫,擔心,拖延以外,什麼也不會發生。
作對當前項目有益的事情就行了,之後能夠根據須要再作調整。
13. 嘗試學習一下設計
做爲一個開發者把焦點放在編寫更好的代碼上是能夠理解的。可是若是你想成爲一個全能的開發者,你應該開始天天學習和理解關於UI和UX方面的知識。
這將徹底改變你看待本身一直開發的app的方式。試着和團隊裏的UI或者UX設計師交流,更深刻的理解app設計。
提示:若是你對理解設計是如何工做的感興趣,讀一讀 這 本書。
14.成爲完美主義者
這是一個比較主觀的話題,由於我認爲「完美」的別人未必認爲。可是通常來講,嘗試儘量的作出本身最好的產品。
不要輕易知足。別隻爲了完成任務而作事。對本身的工做要充滿激情,作的比別人更好。這會讓本身不斷成長,最終成爲一個成功的開發者。
15. 堅持是成功的關鍵
若是你想成爲一個成功的developer開發者,你須要作到鍥而不捨。
作事只堅持幾天或者幾周而後放棄不會有什麼實質收穫。規劃好從此幾年本身想成爲何樣的Android開發者而後無論遇到什麼困難都堅持不懈。
開始作一件事很容易,但時間長了以後很難以一樣的激情繼續下去。
16. 從小的開始按部就班
做爲一個開發者,你應該嘗試把複雜的問題和功能分割爲更容易理解的細小,簡單,獨立的模塊,而後相對輕鬆的快速解決。
別一開始就被一個項目的龐大和複雜給擊敗了。只要方法正確任何事情都能解決。從小的開始,按部就班,一步一步擴展。
17. 手中老是有一個練手項目
有一個練手的項目能夠徹底改變你學習事物的方式。若是你遇到了什麼新的東西,要習慣性的在練手項目中作一下嘗試。
好比你發現了一個有趣的開源項目,你應該開始在練手項目中把玩它,而不是大概看下文檔和API。這樣你對該library的理解會深入得多。
18. 開始寫更多得測試
測試得重要性我不能再強調得更多了。若是沒有寫詳細得測試,你就不能聲稱一個功能完成了。測試能幫助你對本身得代碼創建起自信。
別由於犯了忽略測試,把它當作無關緊要得東西的錯誤,致使從此bug叢生。記住,沒有測試的代碼當即就變成了遺留代碼。
19. 考慮採用測試驅動開發(TDD)
當你正在開發一款app的時候,考慮以健壯和高效的方式去構建它,這樣能夠順利經過測試。
開始遵照 TDD 的「紅-綠-重構」週期模式。首先,你所編寫的測試可能會失敗(紅),而後寫一些實際的代碼讓這個測試經過(綠),接着進一步優化精簡代碼(重構)。
測試驅動型開發是一種編程期間控制焦慮的方式。焦慮會讓你變得很具備試探性。焦慮讓你不想與人溝通。焦慮讓你懼怕反饋。焦慮讓你變得心浮氣躁。—— 來自 TDD 的案例
20. 配置一個合適的自動發佈機制
做爲一名開發者,儘可能少花時間在本該自動化的事情上,好比app的質量檢查和發佈。
你應該使用像 CheckStyle , PMD , Lint , FindBugs 那樣工具來作質量檢查。在合併到主分支以前運行全部的單元測試和真機測試是必要的。
當全部這些檢查經過後,你就會獲得一個能夠將 APK 發佈到 Play 商店或者分發到其餘渠道(好比 Crashlytics Beta )的綠色信號。
提示: Play 商店自動發佈可使用這個工具。
21. 擁抱響應式編程
若是你想進一步提升本身的技術,你絕對該考慮去擁抱響應式的編程方式。這會迫使你顛覆在構建app時思考方式。
使用響應式的方式編程絕對會對編寫交互式的app有所幫助,同時也讓平常開發更輕鬆愉快。
提示:Here 這裏是一個不錯的學習RxJava基礎的一系列教程。
22. 學習用Kotlin進行Android開發
Kotlin是目前Android開發中最受熱愛與討論的語言之一。如今它也成了開發Android app的官方支持語言。這門簡單的語言爲Android的世界帶來了一股新鮮空氣。
對於那些對老舊,笨重,易錯的Java感到厭倦的人來講,它是最好的禮物。能夠嘗試一下,你會確定會從中再次找到已經丟失的開發樂趣。
提示:瞭解更多爲何你應該開始學習用Kotlin開發Android的緣由:
23. 參加見面會與其餘開發者進行更多的社交
咱們開發者通常都是比較內向,喜歡坐在角落的電腦前,沉浸在本身的我的世界。
可是要試着離開本身的溫馨區,與其餘開發者一塊兒交流。參加開發者見面會,社交聚會,與興趣相同的開發者一塊兒交談,這些都能讓你學到不少東西。
提示:這裏 是一個找到你感興趣的見面會的不錯之地。
24. 熟悉鍵盤的快捷鍵
嘗試養成儘量少用鼠標的習慣。 幾乎全部的Android Studio操做都有對應的快捷鍵。
這將顯著減小你的開發時間,提升工做效率。雖然一開始記住這些快捷鍵可能會花一些時間,可是從長遠來看會幫助你進入真正的無鼠標工做流。
提示:若是你不想用過期的方法記住快捷鍵,這裏 有一個很是棒的AS插件能夠幫到你。
25. 一週至少學習一個新的安卓知識
在廣闊的安卓世界裏,有許多東西要學,一開始你可能會被嚇到。可是若是你許諾每週只學習一個Android知識點,事情就變得簡單了。
列舉出全部你不知道的東西,按照設定的優先級一週一個的解決。幾個月後你會發現本身早已甩開了當初的本身幾條街。
26. Automate anything that eats your time
作開發的天生就懶,老是想找到一個簡單的方法去作無聊的工做。
因此若是你一天要好幾回重複又無聊的事情,能夠考慮將它自動化。一週下來能夠節省很多時間,省下來的時間能夠用在其餘有益的事情上。
提示: 能夠看看 這個 幫助你鏈接平常工具與自動化交流的神奇工具。
27.考慮運行兩個版本的Android Studio
老是使用一個穩定版本的Android Studio來作重要的平常工做。可是也要安裝一個canary 或者 beta 版本的 Android Studio 。有時這些版本會提早更新許多新特性,你可能樂於儘早體驗。
28. 時不時的檢查一遍第三方庫
咱們都喜歡在須要的時候使用第三方庫,這沒什麼問題。可是要養成偶爾檢查全部第三方庫庫的習慣,移除掉那些再也不須要的。
若是你只使用了一個庫的一小部分功能,能夠考慮提取出那部分而不是使用整個庫。同時,偶爾檢查還能夠幫助你瞭解library的緊急更新。
29. Learn better ways of refactoring legacy codebases
不要一次性重構龐大的遺留代碼庫,當心吃不了兜着走。
更好的辦法是重構目前當即須要着手的部分,而後在須要的時候慢慢的擴展到其它部分。另外,在改動疑似會影響現有功能的代碼以前,考慮爲重構的頁面編寫測試。
提示:這本書完全改變了我處理遺留代碼的方式。你也應該讀一讀。
30. 老是在低端設備上測試
若是你想像專業的開發者同樣開發,毫不要犯在高端設備上測試app的錯誤。通常來講開發者都是高端旗艦機,因此也用它們來測試app。但這是你須要剋制的。
買你能在市場上找到的最便宜,最底端的設備,養成在它們上面開發app的習慣。你會看到以前你徹底遇不到的許多問題。
31. 買你買得起的最好工做設備
別由於買了一個低端設備的錯誤而毀了你平常的開發體驗。
考慮使用Mac(優於Windows)來開發,你會愛上它的簡潔與穩定。
那麼,若是你要買一個MacBook的話考慮你能買到的最好配置,幾百美圓不會對你形成多大影響,而你永遠會由於這個決定感謝本身。
但願這些建議能夠幫助你成爲一個更好的Android開發者。建議你也看了,應該也明白了其中的意思,接下來是把它們付諸實踐的時候了,只有這樣你才能體會到它們的真正力量。
若是你以爲本文有用,請經過社交媒體推薦給你的朋友,同事,敵人或者任何人。