30+關于如何成為更好Android開發者的短小而專業的建議
成為一個Android開發者容易,成為一個成功而又出色的Android開發者難。要達此成就需要許多努力,激情,付出與毅力。
我無法給出一個成為成功開發者的捷徑,但是如果你愿意付出汗水與內心的話,定會如愿以償。
關于如何成為更好的Android開發者,應你們的要求這里是根據自身經驗得出的一些精簡的專業性建議。所以如果你決定入坑Android開發或者已經做了Android開發一段時間,那么你找對地方了。
所以廢話不多說,讓我們開始吧。
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開發者。建議你也看了,應該也明白了其中的意思,接下來是把它們付諸實踐的時候了,只有這樣你才能體會到它們的真正力量。
如果你覺得本文有用,請通過社交媒體推薦給你的朋友,同事,敵人或者任何人。