PS:一年以前作者寫了一篇文章:一個(gè)2年安卓開發(fā)者的一些忠告 蚀之,這篇文章算是一個(gè)升級(jí)版甸私。
原文:30+ Bite-Sized Pro Tips to Become a Better Android Developer
譯文: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è)谟懻?a target="_blank" rel="nofollow">Factory 藻雪, Decorator , Facade 的時(shí)候你立馬就知道他們的意思狸吞。
發(fā)誓一周學(xué)習(xí)一種新的設(shè)計(jì)模式勉耀。
6. 開始貢獻(xiàn)開源代碼
如果你開發(fā)出了有用的東西并在自己的app中使用它,那么可以考慮把它開源威始。這個(gè)過程會(huì)讓你學(xué)到很多東西枢纠。
如果你沒有什么可以開源,考慮找一個(gè)自己喜歡的其它開源項(xiàng)目黎棠,在之上修復(fù)一些bug晋渺,完善文檔或者編寫測(cè)試。
即使是最小的貢獻(xiàn)對(duì)維持項(xiàng)目的運(yùn)行維護(hù)者來說都是非常有幫助的脓斩。3
提示:這里 是幫助你開始貢獻(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è)試得重要性我不能再強(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ā)中最受熱愛與討論的語言之一∠湍罚現(xiàn)在它也成了開發(fā)Android app的官方支持語言榆苞。這門簡(jiǎn)單的語言為Android的世界帶來了一股新鮮空氣。
對(duì)于那些對(duì)老舊霞捡,笨重坐漏,易錯(cuò)的Java感到厭倦的人來說,它是最好的禮物∩蘖眨可以嘗試一下街夭,你會(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)通過社交媒體推薦給你的朋友扣溺,同事骇窍,敵人或者任何人。
本文最初發(fā)表在 TechBeacon锥余。