成為一名Android開(kāi)發(fā)者容易浸剩,但是想要成為一名優(yōu)秀的Android開(kāi)發(fā)者并從其他開(kāi)發(fā)者中脫引而出就沒(méi)那么容易了。要做到這一點(diǎn)鳄袍,除了需要付出比常人更多的努力和激情外還要有強(qiáng)大的毅力和奉獻(xiàn)精神绢要。
如果把開(kāi)發(fā)當(dāng)成是游戲,那么我們每天都是在其中打怪升級(jí)拗小,想要贏到最后重罪,就需要點(diǎn)亮技能點(diǎn)。下面我給你提供了三十個(gè)技能點(diǎn)哀九,可以看看你已經(jīng)點(diǎn)亮了多少蛆封?將其全部點(diǎn)亮,可以說(shuō)你就無(wú)敵了勾栗。
接著就讓我們開(kāi)始吧!
1. 對(duì)Android Framework有更深入的了解
這里講的并不是要對(duì)Android Framework的文檔介紹要有多少熟悉盏筐,而是真真切切的代碼围俘。很多開(kāi)發(fā)者懼怕閱讀Android源碼,導(dǎo)致他們不知道底層的工作原理以及不同的部分是如何組織在一起工作的琢融。
如果你想要提升你的開(kāi)發(fā)水平的話(huà)界牡,這一點(diǎn)很重要,不要害怕漾抬,嘗試去接觸源碼吧宿亡。
推薦一本本人讀過(guò)的《深入理解Android內(nèi)核設(shè)計(jì)思想》,一本讀得懂纳令、用得上的書(shū)挽荠。
2. 保持方向,穩(wěn)步前行
Android真的很龐大平绩,不同于iOS圈匆,因?yàn)槠溟_(kāi)源的特性導(dǎo)致你根本無(wú)法在短時(shí)間內(nèi)了解它的一切,你學(xué)的越多捏雌,你會(huì)發(fā)現(xiàn)你不懂的越多跃赚。作為一個(gè)初學(xué)者在這種情況下很容易迷失方向。
此時(shí)需要保持清醒性湿,時(shí)刻記住自己目前真真要學(xué)習(xí)的纬傲。這里有一個(gè)技巧就是從你目前著手的項(xiàng)目一點(diǎn)點(diǎn)向外展開(kāi)满败。
3. 閱讀更多的代碼
很多開(kāi)發(fā)者不會(huì)花時(shí)間去閱讀其他開(kāi)發(fā)者寫(xiě)的代碼,而是花很多時(shí)間寫(xiě)他們已經(jīng)掌握的叹括,這樣的代碼寫(xiě)再多也不會(huì)提升開(kāi)發(fā)水平算墨。你應(yīng)該學(xué)會(huì)去閱讀一些開(kāi)源框架或應(yīng)用的源碼。最開(kāi)始领猾,可以先嘗試每天閱讀三十分鐘米同,我想你會(huì)從中學(xué)到很多出乎你意料的東西。
4. 不要只局限于一門(mén)語(yǔ)言
這里說(shuō)的語(yǔ)言不是法語(yǔ)摔竿,德語(yǔ)而是編程語(yǔ)言面粮。你需要時(shí)刻了解行業(yè)中的變化,而不是局限于Android或者Java继低。
學(xué)習(xí)其他語(yǔ)言能顯著提升你的開(kāi)發(fā)技巧熬苍,比如目前比較矚目的Kotlin,Android Studio所用的編譯語(yǔ)言Groovy袁翁。另外就是不要只是花一個(gè)禮拜了解一下就完事了柴底,你應(yīng)該深入了解這么語(yǔ)言的特性,并將其加入到你的工作中來(lái)粱胜。
5. 學(xué)習(xí)Java設(shè)計(jì)模式
雖然我無(wú)法確定設(shè)計(jì)模式在你Android開(kāi)發(fā)生涯中能起到多大作用柄驻,但我確信當(dāng)設(shè)計(jì)模式可以給你項(xiàng)目的構(gòu)建提供一個(gè)很好的解決方案。
只有當(dāng)你學(xué)習(xí)了設(shè)計(jì)模式焙压,才能在聽(tīng)到其他人討論諸如Factory
,Decorator
的時(shí)候才能知道這些指的是什么鸿脓。
6. 試著為開(kāi)源做貢獻(xiàn)
如果你為你的App寫(xiě)了一個(gè)有用的庫(kù),試著去將其開(kāi)源涯曲。而這一過(guò)程你將有很多東西要學(xué)野哭,這些所學(xué)的也能加快你成為一名成功的開(kāi)發(fā)者。
如果你沒(méi)有開(kāi)源代碼幻件,那可以考慮為你喜歡的開(kāi)源工程修復(fù)bug拨黔,充實(shí)文檔或者做一些測(cè)試。
即使是很小的貢獻(xiàn)也能幫助到這些開(kāi)源項(xiàng)目持續(xù)發(fā)展绰沥。
7. 熟練使用AS
花更多的時(shí)間去了解Android Studio篱蝇,因?yàn)樗茏龊芏嗄阆氩坏降墓ぷ鳌:芏嗪芸岷軐?shí)用的功能和快捷鍵藏在其中等待你去發(fā)現(xiàn)揪利。
把使用AS的新功能提升你的工作效率當(dāng)作是一個(gè)樂(lè)趣态兴,你會(huì)發(fā)現(xiàn)你的開(kāi)發(fā)效率會(huì)大大提高。
8. 在你的應(yīng)用中使用適當(dāng)?shù)募軜?gòu)
大多數(shù)時(shí)候疟位,為了起初的開(kāi)發(fā)效率我們會(huì)將所有的功能放在Activity或Fragment中瞻润,這樣就會(huì)產(chǎn)生God Activity或者God Fragment,導(dǎo)致最后根本無(wú)法維護(hù)和測(cè)試這些神物。
為應(yīng)用采用一個(gè)良好的架構(gòu)是非常有必要的绍撞,在Android開(kāi)發(fā)中常用的有MVP正勒,MVVM,Redux等傻铣。求求你在你的應(yīng)用中使用某一個(gè)你認(rèn)為合適的架構(gòu)吧章贞,你會(huì)發(fā)現(xiàn)好的架構(gòu)能讓后期維護(hù)和測(cè)試都變得如此簡(jiǎn)單。
9. 編寫(xiě)規(guī)范的代碼
這一點(diǎn)很容易被忽視掉非洲,但它確其重要鸭限。規(guī)范的代碼容易被閱讀和后期維護(hù)。因?yàn)檎l(shuí)都不會(huì)想去修改一個(gè)沒(méi)有注釋?zhuān)惺畮讉€(gè)參數(shù)和上百行代碼的方法两踏。
請(qǐng)現(xiàn)在败京,立刻馬上學(xué)習(xí)這些規(guī)范,為了你也為了其他開(kāi)發(fā)者梦染。
這里給一個(gè)參考赡麦。
10. 花點(diǎn)時(shí)間學(xué)習(xí)一下Android最佳實(shí)踐
為了讓你自己比其他開(kāi)發(fā)者更具優(yōu)勢(shì),并且構(gòu)建出優(yōu)秀和運(yùn)行良好的程序帕识,學(xué)習(xí)Android最佳實(shí)踐也是必不可少的泛粹。
這里給一個(gè)參考
11. 利用空余時(shí)間聽(tīng)一些播客
這里不是讓你去聽(tīng)《鬼吹燈》,《糗事播報(bào)》這類(lèi)節(jié)目肮疗。而是在你上下班晶姊,或者在健身房等地方,如果你的大腦空閑下來(lái)了伪货,可以收聽(tīng)一些Android方面的播客帽借,以此來(lái)充實(shí)你的大腦,源源不斷獲取知識(shí)超歌。
12. 不要過(guò)度設(shè)計(jì)
這種事情在我身上經(jīng)常發(fā)生,有時(shí)候要做一個(gè)小功能可能要思考半天蒂教,考慮如何才能適配后期需求的變化巍举。但其實(shí)這樣的過(guò)度設(shè)計(jì)只是在浪費(fèi)時(shí)間導(dǎo)致不必要的困擾。
選擇一種你認(rèn)為好的方法凝垛,立馬去實(shí)現(xiàn)懊悯。后期如果需求改了,我們把相應(yīng)方案調(diào)整便可梦皮。
13. 試著去了解和學(xué)習(xí)設(shè)計(jì)
很多時(shí)候我們都是百分百專(zhuān)注于代碼的編寫(xiě)上炭分,但如果你想成為一名完整的Android開(kāi)發(fā)者,你需要花些時(shí)間學(xué)習(xí)和理解關(guān)于UI和UX的知識(shí)剑肯。
學(xué)習(xí)和理解的UI和UX的知識(shí)捧毛,會(huì)改變你編碼時(shí)對(duì)app的開(kāi)發(fā),能更好的幫助你編寫(xiě)出符合標(biāo)準(zhǔn)的app。
14. 成為一個(gè)完美主義者
完美是一個(gè)主觀(guān)看法呀忧,或許對(duì)我來(lái)說(shuō)完美师痕,對(duì)你來(lái)說(shuō)卻不盡如人意。盡管這樣而账,在產(chǎn)品發(fā)布上胰坟,我們還是要盡量提供完美的版本。
努力做好這份工作泞辐,熱衷于這份工作笔横,做出完美的產(chǎn)品,長(zhǎng)此以往你會(huì)成為一名成功的開(kāi)發(fā)者咐吼。
15. 堅(jiān)持是成功的關(guān)鍵
如果你想成為一名成功的開(kāi)發(fā)者吹缔,堅(jiān)持是關(guān)鍵。
花幾天或幾周去做一件事汽烦,然后棄之不管涛菠,這不會(huì)給你帶來(lái)任何幫助。嘗試給自己定制目標(biāo)撇吞,并在接下來(lái)的幾年里朝著這個(gè)目標(biāo)前進(jìn)俗冻。
萬(wàn)事開(kāi)頭不難,難的是堅(jiān)持牍颈,只有堅(jiān)持做一件事迄薄,才能做好,做成煮岁。
16. 步子邁小點(diǎn)讥蔽,模塊分細(xì)點(diǎn)
作為一個(gè)開(kāi)發(fā)者,你需要把功能模塊和問(wèn)題分解成小且簡(jiǎn)單的獨(dú)立部分画机。只有這樣你才能輕松快速地理解和解決問(wèn)題冶伞。
不要在接手到一個(gè)龐大復(fù)雜的項(xiàng)目時(shí)感到壓力,細(xì)分模塊步氏,由點(diǎn)到面响禽。
17. 始終有一個(gè)練手的工程
擁有一個(gè)練手工程可以很大程度上改變你的學(xué)習(xí)方式,如果你在Android中遇到新的問(wèn)題荚醒,可以在你的練手工程中嘗試解決芋类。
假如你想要學(xué)習(xí)一個(gè)開(kāi)源庫(kù),你要做的不是僅僅看幾眼它的使用文檔界阁,而是應(yīng)該在你的練手工程中去使用它們侯繁。這會(huì)讓你對(duì)其有更深入的了解。
18. 測(cè)試你的應(yīng)用
這個(gè)也是開(kāi)發(fā)者比較欠缺的能力泡躯。因?yàn)檫@里所說(shuō)的測(cè)試不僅僅是你做完一個(gè)功能贮竟,用手去點(diǎn)幾下丽焊,看看是否能正常運(yùn)行,而是指給你的應(yīng)用做一套完成的測(cè)試坝锰。這里包括Java部分的單元測(cè)試和Android部分的功能測(cè)試粹懒。
當(dāng)你給你的應(yīng)用編寫(xiě)了一套完整的測(cè)試以后,每次添加新功能或修復(fù)bug就可以用跑整套測(cè)試的方式來(lái)避免出現(xiàn)回歸問(wèn)題顷级。
19. 考慮一下TDD
雖然TDD(測(cè)試驅(qū)動(dòng)開(kāi)發(fā))對(duì)于開(kāi)發(fā)者來(lái)說(shuō)是無(wú)比討厭的凫乖,但這確實(shí)一種很好且高效的開(kāi)發(fā)模式。
可以參考TDD的“紅-綠-重構(gòu)”這一思路進(jìn)行開(kāi)發(fā)弓颈。首先給將要實(shí)現(xiàn)的功能寫(xiě)出測(cè)試用例帽芽,此時(shí)跑測(cè)試肯定全是紅,因?yàn)槟氵€沒(méi)有開(kāi)始具體實(shí)現(xiàn)翔冀。接著一個(gè)一個(gè)去實(shí)現(xiàn)這些功能导街,直到所有測(cè)試跑過(guò),全綠纤子。接著細(xì)致優(yōu)化和重構(gòu)你的代碼搬瑰,然后循環(huán)這個(gè)過(guò)程,直到功能趨于穩(wěn)定控硼。
20. 嘗試自動(dòng)化
作為一個(gè)開(kāi)發(fā)者泽论,腳本能做到的盡量讓腳本去做。比如應(yīng)用的測(cè)試和版本發(fā)布卡乾。
雖然這些可能有專(zhuān)門(mén)的測(cè)試或者發(fā)布工程師去完成翼悴,但掌握一些技巧是可以減少很多重復(fù)的工作。
21. 使用響應(yīng)式編程
如果想要提升你的Android開(kāi)發(fā)技能幔妨,學(xué)習(xí)響應(yīng)式編程是必不可少的鹦赎,它能讓你以完全不同的方式思考如何構(gòu)建app。
這里推薦學(xué)習(xí)和使用RxJava
22. 使用Kotlin來(lái)開(kāi)發(fā)Android程序
Kotlin在Android開(kāi)發(fā)方面從一開(kāi)始就得到了開(kāi)發(fā)者廣泛的喜愛(ài)和認(rèn)可误堡,更不用說(shuō)現(xiàn)在已經(jīng)被Google官方作為Android的開(kāi)發(fā)語(yǔ)言了古话。使用Kotlin編寫(xiě)Android程序可以大大減少代碼量,而且其諸多現(xiàn)代語(yǔ)言的特性也能讓你感受到編程的樂(lè)趣锁施。
23. 多與其他開(kāi)發(fā)者交流
我們開(kāi)發(fā)者大部分都比較內(nèi)向煞额,喜歡和電腦為伴。但我鼓勵(lì)大家多和其他開(kāi)發(fā)者交流沾谜,參加一些技術(shù)沙龍或者討論會(huì),這樣有助于了解你這領(lǐng)域的最新動(dòng)態(tài)和局勢(shì)胀莹。
24. 熟練使用快捷方式
在使用Android Studio的時(shí)候盡量使用快捷方式來(lái)代替鼠標(biāo)基跑。在Android Studio中絕大部分的功能都可以通過(guò)快捷方式完成。
使用快捷方式可以提升你的工作效率并且加速工作流程描焰,雖然記住眾多的快捷方式比較困難媳否,但來(lái)日方長(zhǎng)栅螟,你一定能從中獲益。
25. 嘗試每周學(xué)習(xí)一個(gè)Android相關(guān)知識(shí)
前面說(shuō)過(guò)Android的世界無(wú)比龐大篱竭,并且每天都會(huì)有新的事物產(chǎn)生力图。沒(méi)有目的性的學(xué)習(xí)只會(huì)讓你迷失在其中,所以我建議你可以給自己列一張表掺逼,將自己不會(huì)的吃媒,想要搞明白的東西列出來(lái),每周去嘗試解決其中的一項(xiàng)吕喘。
26. 在電腦上安裝兩個(gè)版本的Android Stduio
穩(wěn)定版赘那,用做工作上的日常開(kāi)發(fā)。
beta版氯质,用來(lái)了解IDE的性特性募舟,以至于等以后需要用的時(shí)候不會(huì)手忙腳亂。
27. 對(duì)使用的第三方庫(kù)做必要的審查
我們?cè)诠ぷ髦卸疾幻庥玫降谌綆?kù)闻察,我們?cè)谌粘i_(kāi)發(fā)中需要時(shí)刻注意第三方庫(kù)版本的更新拱礁。對(duì)于那些不用的庫(kù)盡可能快的移除掉。
另外一點(diǎn)辕漂,如果你僅僅用到了第三方庫(kù)中的一小部分呢灶,那么可以嘗試提取其中必要內(nèi)容,減小代碼冗余钮热。
28. 學(xué)會(huì)重構(gòu)老舊代碼
不要妄圖一次性重構(gòu)一個(gè)老舊的遺留代碼庫(kù)填抬,以免帶來(lái)不必要的錯(cuò)誤。
你要做的是重構(gòu)目前需要的部分隧期,然后在需要的時(shí)候慢慢擴(kuò)展到其他部分飒责。同時(shí)你可以為你需要重構(gòu)的部分編寫(xiě)測(cè)試用例,在你完成重構(gòu)后來(lái)檢測(cè)是否有問(wèn)題仆潮。
29. 始終在低端設(shè)備上開(kāi)發(fā)和測(cè)試
雖然作為開(kāi)發(fā)者的我們使用的設(shè)備一般會(huì)是比較高端甚至是旗艦機(jī)型宏蛉,但記住如果你要開(kāi)發(fā)一款穩(wěn)定的產(chǎn)品,一定要在低端機(jī)上做開(kāi)發(fā)和測(cè)試性置。只有這樣你才會(huì)發(fā)現(xiàn)很多在高端機(jī)型上不會(huì)出現(xiàn)的問(wèn)題拾并。
30. 購(gòu)買(mǎi)你能承擔(dān)的最好的電腦
不要貪圖便宜,買(mǎi)低端的電腦作為自己的開(kāi)發(fā)工具鹏浅,這樣會(huì)讓你的開(kāi)發(fā)體驗(yàn)痛不欲生嗅义。
可以考慮下Mac,你會(huì)喜歡上它的穩(wěn)定和易用隐砸。
以上就是我推薦的技能點(diǎn)了之碗,希望這些技能點(diǎn)可以幫助你成為一名出色的Andorid開(kāi)發(fā)者,在你的游戲中贏到最后季希。