Become a better android developer(轉(zhuǎn)載)

作者:Aritra Roy,Google認(rèn)證Android開(kāi)發(fā)者。

原文鏈接:https://blog.aritraroy.in/30-bite-sized-pro-tips-to-become-a-better-android-developer-b311fd641089

成為一名Android工程師很容易,但要成為卓越的Android開(kāi)發(fā)者卻并不簡(jiǎn)單。要做到這一點(diǎn),需要付出很多努力、激情,還有毅力。畢竟,沒(méi)有捷徑可以讓我們速成。

在想要成為卓越Android開(kāi)發(fā)者的前提下,興許我過(guò)往經(jīng)驗(yàn)中的一些開(kāi)發(fā)小技巧,對(duì)你的開(kāi)發(fā)有所裨益。接下來(lái),我們就不費(fèi)口舌,直接分享吧。

1.更加熟悉Android框架內(nèi)部構(gòu)件

這里討論的熟悉不是指文檔,而是使用實(shí)際的Android框架代碼。我看到很多開(kāi)發(fā)人員害怕深入了解Android框架內(nèi)部的內(nèi)容,害怕探究其實(shí)際如何工作,以及不同的部件如何恰如其分的組合在一起。

如果你真的希望在這場(chǎng)Android開(kāi)發(fā)游戲中獲得更高的段位,請(qǐng)嘗試接觸Android SDK的內(nèi)部工作,并開(kāi)始關(guān)注它吧。

2.盡量避免錯(cuò)失恐懼癥(FoMo)

Android涉及的面很大,非常大。通常情況下,我們無(wú)法在一兩個(gè)月的時(shí)間完全吃透這個(gè)系統(tǒng)。學(xué)到的越多,我們就越發(fā)認(rèn)為自己無(wú)知。作為一個(gè)初學(xué)者,有不知道的東西以及對(duì)不知道這件事感到恐懼是非常正常的。

然而,我們還是需要盡可能避免這種情緒。事實(shí)上,我們需要做的是學(xué)以致用,先要了解我們開(kāi)發(fā)App真正需要學(xué)習(xí)的東西,然后再緩慢擴(kuò)展視野。

3.習(xí)慣閱讀更多的代碼

大多數(shù)開(kāi)發(fā)人員沒(méi)有時(shí)間閱讀其他開(kāi)發(fā)人員正在撰寫的內(nèi)容,他們大部分時(shí)間都在寫他們已經(jīng)知道的內(nèi)容。

但這不會(huì)增加你的知識(shí),也不會(huì)幫助你的成長(zhǎng)。我們應(yīng)該多去查看其他開(kāi)源應(yīng)用程序和庫(kù),多去學(xué)習(xí)。每天30分鐘的代碼閱讀是一個(gè)很好的開(kāi)始,長(zhǎng)此以往,你會(huì)驚奇地發(fā)現(xiàn)已經(jīng)掌握了很多不了解的新事物。

4.考慮學(xué)習(xí)更多的語(yǔ)言

學(xué)習(xí)西班牙語(yǔ)或中文或許對(duì)開(kāi)發(fā)作用并不明顯,但新的編程語(yǔ)言可能就不一樣了。作為開(kāi)發(fā)者,我們需要隨時(shí)隨地了解行業(yè)變遷,而不是僅將自己僅限于Android。

而了解外部環(huán)境的變化,不僅能拓展我們的視野,還將幫助我們顯著提高Android開(kāi)發(fā)技能。我們需要下決心每年至少學(xué)習(xí)一種新的編程語(yǔ)言,而且不要蜻蜓點(diǎn)水一般,要嘗試進(jìn)入語(yǔ)言的深度以及它在內(nèi)部的工作。

5.是時(shí)候?qū)W習(xí)Java設(shè)計(jì)模式了

從長(zhǎng)遠(yuǎn)來(lái)看,我無(wú)法判斷這對(duì)于你的Android開(kāi)發(fā)職業(yè)而言重要性如何。然而,遇到關(guān)鍵編程問(wèn)題的時(shí)候,設(shè)計(jì)模式總能幫你構(gòu)建一套優(yōu)雅的解決方案。

我們還需要與其他開(kāi)發(fā)人員在同一頻道上,以便他們?cè)谟懻撌褂肍actory Pattern、Decorator Pattern、和Fa?ade Pattern的時(shí)候,我們知道他們?cè)谡f(shuō)什么。

讓自己給自己一個(gè)承諾吧,每周學(xué)習(xí)一種新設(shè)計(jì)模式。

6.給開(kāi)源貢獻(xiàn)代碼

如果您開(kāi)發(fā)了一些有用的東西,并在自己的應(yīng)用程序中使用了它,那么請(qǐng)考慮開(kāi)源,因?yàn)槟銓?huì)在這個(gè)過(guò)程中學(xué)到很多東西。

如果你沒(méi)有可以開(kāi)源的項(xiàng)目,那么也可以考慮查看其他有趣的開(kāi)源項(xiàng)目,嘗試做一些修復(fù)錯(cuò)誤、改進(jìn)文檔或者測(cè)試的工作。即使是一些看上去微不足道的貢獻(xiàn)也將有助于項(xiàng)目的發(fā)展,保持項(xiàng)目的穩(wěn)定運(yùn)行。

7.讓你的IDE更加得心應(yīng)手

接下來(lái),我們還需要開(kāi)始花更多的時(shí)間了解正在使用的IDE——Android Studio。實(shí)際上,它的潛力比你想象的要大得多。IDE中隱藏了許多酷炫的功能和快捷方式,而大多數(shù)開(kāi)發(fā)者并不知道甚至從未嘗試去探索過(guò)這些功能。

慢慢的,我們可以養(yǎng)成一個(gè)挖掘工具亮點(diǎn)的習(xí)慣,進(jìn)而改善工作流程、提高生產(chǎn)力。

8.是時(shí)候正確構(gòu)建你的應(yīng)用程序了

大多數(shù)時(shí)候,我們的代碼都集中在Activities或Fragments中,這讓它們變成了幾乎不可能維護(hù)和測(cè)試的怪獸。

構(gòu)建App時(shí)采用一個(gè)諸如MVP、MVVM、Redux這樣的良好的架構(gòu),是非常重要的。開(kāi)發(fā)時(shí),我們需要注意將應(yīng)用程序的業(yè)務(wù)邏輯、視圖交互和數(shù)據(jù)交互分為不同的層次,使其易于管理和測(cè)試。

9.學(xué)習(xí)如何寫出干凈的代碼

這一點(diǎn)不容忽視。在我們身邊,有大量連代碼最基本的整潔度都無(wú)法保證的開(kāi)發(fā)人員。

對(duì)大部分開(kāi)發(fā)者來(lái)說(shuō),學(xué)習(xí)的Java和Android編碼準(zhǔn)則并不難,也花費(fèi)了不了太多時(shí)間。學(xué)習(xí)寫出干凈的代碼并非一次性任務(wù),而應(yīng)當(dāng)是開(kāi)發(fā)者的程序生涯的質(zhì)量改變。

10.花點(diǎn)時(shí)間了解Android最佳實(shí)踐

為了讓自己比其他開(kāi)發(fā)人員更有優(yōu)勢(shì),并開(kāi)發(fā)出看起來(lái)很棒的應(yīng)用程序,我們需要開(kāi)始學(xué)習(xí)一些Android開(kāi)發(fā)的最佳實(shí)踐。而往往這些實(shí)踐能幫助我們成為更好的開(kāi)發(fā)人員,讓我們開(kāi)發(fā)的App脫穎而出。

11.通過(guò)聽(tīng)播客來(lái)有效利用你的空閑時(shí)間

嘗試正確、有效地利用你的時(shí)間。當(dāng)你上下班的時(shí)候,在健身房鍛煉,開(kāi)車,烹飪的時(shí)候,你天才般的大腦并沒(méi)有做太多的事情。你可以通過(guò)利用這樣的時(shí)間來(lái)聆聽(tīng)一些資源豐富的Android相關(guān)的頻道,并盡可能地使你的大腦占有有用和翔實(shí)的東西。

12.不要老是用程序化的思路做事

這種情況不僅發(fā)生在我身上,而且也發(fā)生在我開(kāi)發(fā)同事的身上。在開(kāi)始工作之前思考一下是非常棒的做法,但過(guò)度的思考和分析也會(huì)導(dǎo)致不必要的混亂,拖延和焦慮。

所以我們最好的選擇是選擇并做好現(xiàn)在看上去很正確的選擇,并保持自己隨時(shí)適應(yīng)不斷變化的情況的能力。

13.嘗試了解設(shè)計(jì)

在大眾的認(rèn)知當(dāng)中,開(kāi)發(fā)者的工作重心應(yīng)當(dāng)是學(xué)習(xí)如何更好的書寫代碼,而我也非常理解這種認(rèn)知。但是,如果想成為一名全能的開(kāi)發(fā)人員,我們還應(yīng)該每天花時(shí)間學(xué)習(xí)和了解UI和UX設(shè)計(jì)。

相信我,這將完全改變我們過(guò)去的編程方式。與團(tuán)隊(duì)中的UI和UX設(shè)計(jì)人員進(jìn)行充分交流,將非常有助于我們更好地了解應(yīng)用程序設(shè)計(jì)。

14.追求完美

完美是一個(gè)主觀的詞匯,更多時(shí)候這個(gè)詞應(yīng)當(dāng)針對(duì)自己而非他人。而作為最好的開(kāi)發(fā)者,我們當(dāng)然應(yīng)該盡可能開(kāi)發(fā)出最棒的產(chǎn)品,并且總是如此。

別將就,不要為了工作而工作。要熱愛(ài)你正在做的工作,要做得比別人更好。堅(jiān)持下去,我們就能在這場(chǎng)長(zhǎng)跑中取得勝利。

15.堅(jiān)持是成功的最大補(bǔ)給

如果您想成為Android開(kāi)發(fā)大牛,你需要堅(jiān)持。

虎頭蛇尾從來(lái)都不會(huì)帶來(lái)什么實(shí)質(zhì)性的改變,我們需要的是堅(jiān)持。堅(jiān)持朝著你夢(mèng)想中的方向前進(jìn),并矢志不渝。

從0到1總歸是簡(jiǎn)單的,但是否能夠長(zhǎng)時(shí)間保持激情和奉獻(xiàn)精神,才是我們努力不白費(fèi)的關(guān)鍵。

16.從小切入,緩慢擴(kuò)張

作為開(kāi)發(fā)者,把復(fù)雜的問(wèn)題分解為小而簡(jiǎn)單且獨(dú)立的問(wèn)題之后,我們才能輕松、快速地理解和解決問(wèn)題。

不要因?yàn)轫?xiàng)目太大或者過(guò)于復(fù)雜而變得不知所措。相信自己,一旦你在正確的軌道上,一切都可以解決。小口插入,然后才能庖丁解牛。

17.保證總有一個(gè)練手項(xiàng)目

有一個(gè)練手項(xiàng)目能夠極大的改變你此前的認(rèn)知。因?yàn)槟阋坏┯辛艘恍┬碌乃悸泛徒鉀Q方案,就可以在這個(gè)項(xiàng)目中去嘗試和實(shí)踐。

試想,你發(fā)現(xiàn)一個(gè)有趣的Android庫(kù),你不用在文檔和API琢磨時(shí)間,直接殺去實(shí)踐是一種何等美妙的體驗(yàn)。我相信,這也將使你對(duì)這個(gè)庫(kù)的了解更加深刻。

18.更多測(cè)試

對(duì)于測(cè)試的重要性,強(qiáng)調(diào)無(wú)意義。我們需知道的是,在進(jìn)行詳盡測(cè)試之前,我們都不能確定功能是否開(kāi)發(fā)完畢,而測(cè)試將幫助你重塑對(duì)代碼的自信。

不要誤以為測(cè)試是一個(gè)可選項(xiàng),而就此忽略了測(cè)試,你以后的日子會(huì)很痛苦的。記住,沒(méi)有測(cè)試編寫的代碼很快就會(huì)成為你的坑。

19.考慮采用TDD

當(dāng)您開(kāi)發(fā)應(yīng)用程序時(shí),請(qǐng)考慮以強(qiáng)大而有效的方式選擇構(gòu)建應(yīng)用程序,以便能夠經(jīng)受住時(shí)間的考驗(yàn)。

開(kāi)始遵循TDD的“紅-綠重構(gòu)”周期。首先將失敗的測(cè)試用例(紅色)寫出,然后寫入實(shí)際代碼,使測(cè)試通過(guò)(綠色),然后進(jìn)一步清理和優(yōu)化代碼。(重構(gòu))。

測(cè)試驅(qū)動(dòng)的開(kāi)發(fā)是在編程過(guò)程中管理恐懼的一種方式。恐懼讓你猶豫,恐懼讓你沉默,恐懼讓你逃避反饋,恐懼使你脾氣暴躁。

20.設(shè)置正確的自動(dòng)釋放機(jī)制

作為開(kāi)發(fā)人員,應(yīng)該讓自己盡可能少地參與那些可以自動(dòng)化的事,比如應(yīng)用程序質(zhì)量檢查和發(fā)布。

你應(yīng)該使用CheckStyle、PMD、Lint、FindBugs等工具自動(dòng)完成質(zhì)量檢查機(jī)制。在合并這樣的重大調(diào)整之前,所有單元和儀器測(cè)試都必須跑一遍。

當(dāng)所有這些檢查通過(guò)時(shí),你就可以將APK發(fā)布到Play Store,或以任何其他方式分發(fā)(如Crashlytics Beta)。

21.擁抱反應(yīng)式編程方法

如果你想提高你的Android開(kāi)發(fā)技能,你一定要考慮采用反應(yīng)式的方法,這將迫使您以完全不同的方式思考您構(gòu)建的應(yīng)用程序。

反應(yīng)靈敏的方式肯定會(huì)幫助你更快地編寫交互式應(yīng)用程序,并使你的開(kāi)發(fā)生活更輕松又有趣。

22.學(xué)習(xí)使用Kotlin進(jìn)行Android開(kāi)發(fā)

Kotlin目前是Android開(kāi)發(fā)中最受人關(guān)注的語(yǔ)言之一,也是開(kāi)發(fā)Android應(yīng)用程式的正式支持語(yǔ)言,這種易于使用的語(yǔ)言為Android的世界帶來(lái)了新鮮空氣。

對(duì)那些厭倦了老套、冗長(zhǎng)且容易出錯(cuò)的Java的開(kāi)發(fā)者來(lái)說(shuō),Kotlin是Android開(kāi)發(fā)行業(yè)的新曙光。嘗試一下,你一定會(huì)在你的發(fā)展生活中找到失去的幸福。

23.參與更多的社交活動(dòng)

我們的開(kāi)發(fā)人員往往很內(nèi)向,喜歡和我們的電腦坐在一個(gè)角落。

但是請(qǐng)嘗試走出舒適區(qū),并與其他開(kāi)發(fā)人員進(jìn)行更多的互動(dòng)。當(dāng)你參加開(kāi)發(fā)者聚會(huì)、社交聚會(huì)和與具有類似興趣的其他開(kāi)發(fā)人員交談時(shí),會(huì)學(xué)到很多要學(xué)習(xí)的東西。

24.熟悉鍵盤快捷鍵

盡可能使用鍵盤快捷鍵而不是鼠標(biāo),幾乎每個(gè)要在Android Studio中執(zhí)行的操作都有鍵盤快捷鍵。

快捷鍵將大大減少我們的開(kāi)發(fā)時(shí)間并改善工作流程。記住鍵盤快捷鍵最初可能需要一些時(shí)間,但從長(zhǎng)遠(yuǎn)來(lái)看,它將幫助您實(shí)現(xiàn)真正無(wú)鼠標(biāo)的工作流程。

25.每周至少了解一個(gè)新Android產(chǎn)品

在Android的巨大世界中,有很多東西要學(xué)習(xí)和理解。當(dāng)你進(jìn)入這個(gè)世界時(shí),最初可能會(huì)壓倒你。但是,如果我們讓自己每個(gè)星期學(xué)習(xí)一件新產(chǎn)品,事情將變得容易很多。

列出你不知道的所有事情,為他們分配先后順序,每周解決一個(gè)陌生面孔。幾個(gè)月后,你會(huì)發(fā)現(xiàn)已經(jīng)走得很遠(yuǎn)了。

26.用自動(dòng)化節(jié)約時(shí)間

我們的工程師,因?yàn)槌錾鴳卸瑁偸窃噲D找到一個(gè)簡(jiǎn)單的方法來(lái)做一個(gè)無(wú)聊的工作。

所以,如果你需要每天做一些重復(fù)和無(wú)聊的事情,那么請(qǐng)考慮自動(dòng)化。累積下來(lái),它節(jié)省你相當(dāng)多的時(shí)間。而你,則可以把這些時(shí)間放在其他生產(chǎn)和有用的事情上,減少你的焦慮。

27.考慮運(yùn)行兩個(gè)版本的AndroidStudio

我們需要確保所有重要的事情,都有一個(gè)穩(wěn)定的Android Studio版本來(lái)執(zhí)行。同時(shí),我們還要考慮保持安裝最新Android Studio的金絲雀或測(cè)試版本。

有時(shí)候,相比前代,新版本往往有許多新的和令人興奮的功能,你也應(yīng)該對(duì)此很有興奮感。

28.經(jīng)常審核您所有的第三方庫(kù)

大多時(shí)候,我們都喜歡使用庫(kù),這也是非常好的。但是同時(shí),我們還要養(yǎng)成檢查三方庫(kù)的習(xí)慣,需要定期檢查并刪除不再需要的第三方庫(kù)。

如果您僅使用特定庫(kù)的一小部分,那么請(qǐng)考慮提取該部分,而不是使用整個(gè)庫(kù)。偶爾的檢查也將幫助您更新更快的更新庫(kù)。

29.學(xué)習(xí)重構(gòu)代碼

重構(gòu)代碼,不要試圖一次完成。這樣做會(huì)讓你陷入陷阱,而且無(wú)法逃脫。

我們應(yīng)該考慮重構(gòu)現(xiàn)在工作需要的代碼庫(kù)的部分,然后在需要時(shí)慢慢地?cái)U(kuò)展到其他部分。另外,要先編寫測(cè)試用例,然后再處理你懷疑的可能會(huì)影響現(xiàn)有功能的任何代碼。

30.始終在低端設(shè)備上開(kāi)發(fā)和測(cè)試

如果你想開(kāi)發(fā)一個(gè)專業(yè)的應(yīng)用程序,別在高端設(shè)備上測(cè)試。一般來(lái)說(shuō),我們開(kāi)發(fā)人員擁有高端的旗艦產(chǎn)品,并用于開(kāi)發(fā)和測(cè)試應(yīng)用程序,但這是你應(yīng)該避免的東西。

嘗試在市場(chǎng)上找到最便宜的和最低端的設(shè)備,并使之成為專門的開(kāi)發(fā)測(cè)試機(jī)。在這些設(shè)備上,你會(huì)發(fā)現(xiàn)此前并不了解的App缺陷。

31.購(gòu)買你能買得起的最好的工作機(jī)器

千萬(wàn)不要購(gòu)買低端工作機(jī)器,這會(huì)讓你的開(kāi)發(fā)變得很蛋疼。

請(qǐng)考慮使用Mac進(jìn)行開(kāi)發(fā),你會(huì)愛(ài)上它的簡(jiǎn)單性和穩(wěn)定性。

現(xiàn)在,如果您正在購(gòu)買一臺(tái)MacBook,請(qǐng)選擇最高配。幾百加元不會(huì)傷害你,你會(huì)永遠(yuǎn)感謝你做出這個(gè)決定。

作者:涂圖云
鏈接:http://www.lxweimin.com/p/2cb05addef0a
來(lái)源:簡(jiǎn)書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,814評(píng)論 25 708
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,837評(píng)論 18 139
  • 思念像是一顆橙 剝開(kāi)表皮中一點(diǎn)點(diǎn)絲絲的聲 空氣里開(kāi)始蔓延你的氣息 一層一層 筑起來(lái)一個(gè)味道的城 一瓣是距離的酸 一...
    這天氣很晴朗閱讀 251評(píng)論 0 1
  • 晨起第一時(shí)間,就是送女上學(xué)。沿著九里山邊沿,走在一中校外林間路上,只聽(tīng)得到腳下踩雪的聲音。迎面而來(lái)的平煤集...
    將相河閱讀 259評(píng)論 0 0
  • 不知何時(shí)起,我無(wú)論讀書、看報(bào)、電影、還是日常生活中,都會(huì)不由自主進(jìn)入一種思考的狀態(tài)。這或許會(huì)少掉不少生活的樂(lè)趣,但...
    來(lái)鄭坤茹閱讀 132評(píng)論 0 3