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