Android開(kāi)發(fā)項(xiàng)目經(jīng)驗(yàn)
作者:佚名
在Android項(xiàng)目開(kāi)發(fā)中,有時(shí)候可能我們將要求的功能實(shí)現(xiàn)了,但是,你的代碼能否確定合格呢?以下,將奉上開(kāi)發(fā)大神們給你的開(kāi)發(fā)項(xiàng)目經(jīng)驗(yàn)。
1.是不是應(yīng)該把數(shù)據(jù)刷新操作放在onResume()中?
- @Override
- public void onResume() {
- super.onResume();
- refresh();
- }
- public void refresh(){
- initData();
- }
|
這樣不合適,在什么時(shí)候刷新是根據(jù)需要來(lái)的,并不是每次onResume()的時(shí)候都需要刷新。
假如用戶關(guān)閉了屏幕后再打開(kāi)屏幕,頁(yè)面會(huì)刷新,這樣沒(méi)有必要,也許幾秒中前剛刷新過(guò)。
網(wǎng)易新聞客戶端就不是這樣的。
2.關(guān)于activity,fragment與彈窗
如果一個(gè)activity中有一個(gè)ViewPager,ViewPager中加載了兩個(gè)fragment,這時(shí)要特別注意的是,兩個(gè)fragment是同事加載的,雖然只顯示了一個(gè)fragment的界面,但是另外一個(gè)也是加載了的,所以如果當(dāng)前顯示的fragment沒(méi)有彈窗,但是另一個(gè)fragment彈窗了也會(huì)顯示到當(dāng)前activity中。
3.copy布局文件和復(fù)用布局文件的優(yōu)缺點(diǎn)
重用優(yōu)點(diǎn):減少布局文件個(gè)數(shù),如果幾個(gè)界面的布局問(wèn)個(gè)始終一致,那么可以使用
重用缺點(diǎn):如果其中一個(gè)布局文件有所改動(dòng),那么其他頁(yè)面將不能再使用,因?yàn)椴季治募袥](méi)法使用 if else 。
copy優(yōu)點(diǎn):一個(gè)頁(yè)面對(duì)應(yīng)一個(gè)xml文件,完全解耦
copy缺點(diǎn):會(huì)大量出現(xiàn)重復(fù)的代碼
總結(jié):需求隨時(shí)都可能變動(dòng),還是把布局解耦比較好
4.優(yōu)化代碼的思路
哪段代碼使用的頻率越高就應(yīng)該先優(yōu)化哪段代碼,這樣會(huì)事半功倍!
5.千萬(wàn)要保護(hù)好自己的代碼
昨天跟我說(shuō)某某模塊的接口改了,要重新做,我做了。
今天來(lái)的時(shí)候又跟我說(shuō)暫時(shí)不改了,還是用之前的代碼。
天啦,幸虧我沒(méi)有刪掉之前的代碼,不然死的心都有了。
so,程序猿們,保護(hù)好你自己的代碼。
6.模板方法沒(méi)有寫好會(huì)很悲劇
模板方法寫好了,比如BaseAcitivity,然后開(kāi)始寫它的子類,忽然調(diào)試的時(shí)候發(fā)現(xiàn)模板的方法有問(wèn)題,比如說(shuō)要調(diào)整方法調(diào)用的順序或者改變方法調(diào)用的位置,這下好了,你的N個(gè)子類都是按照之前的模板方法去寫的,so 你就一個(gè)一個(gè)去修改子類吧。
另外,要千萬(wàn)注意別人修改了公用的模板方法,要及時(shí)pull和push代碼,不然自己寫的很多代碼都白費(fèi)了。
7.不要頻繁重復(fù)的調(diào)用數(shù)據(jù)
比如你要獲取10-個(gè)新聞列表數(shù)據(jù),而且你要同一時(shí)間去獲取,那就得創(chuàng)建10次Http鏈接,這很費(fèi)時(shí)的。***的方法是讓服務(wù)器把10個(gè)新聞列表數(shù)據(jù)寫在一個(gè)xml文件中,這樣會(huì)顯著的節(jié)約時(shí)間。wo
so,當(dāng)進(jìn)行遠(yuǎn)程調(diào)用時(shí),從數(shù)據(jù)提供者反復(fù)調(diào)用取得數(shù)據(jù)會(huì)嚴(yán)重影響性能,比如數(shù)據(jù)庫(kù)調(diào)用、Web服務(wù)調(diào)用或者其他編解碼調(diào)用。這種情況下可以使用Facade模式一次獲得所有所需的數(shù)據(jù),盡可能減小連接成本和在網(wǎng)絡(luò)上傳輸數(shù)據(jù)的成本。
8.類中的成員變量前加"m"
本類的所有成員變量前加"m",好處是:敲"m"就能提示本類的一些成員變量
9.一定要有自己的技術(shù)博客和帖子
別人的博客和帖子是別人的,要有自己的,不斷補(bǔ)充,不斷完善,以后再查看的時(shí)候才方便。
另外 ,強(qiáng)迫自己寫技術(shù)博客和帖子就是強(qiáng)迫自己總結(jié),加深技術(shù)知識(shí)的印象。
10.一個(gè)類應(yīng)該純粹,一個(gè)類就只應(yīng)該做一件事情
比如寫一個(gè)瀑布流類(自定義View),干了很多事情,布局了瀑布流模型,設(shè)置了刷新功能。
這不應(yīng)該在一個(gè)類中出現(xiàn),瀑布流就是瀑布流,刷新是另外一回事,獲取數(shù)據(jù)又是另外一回事!不要混在一起,寫在一個(gè)類中!
一個(gè)類應(yīng)該是純粹的,盡量的簡(jiǎn)單,就是干一件事情。完成一個(gè)功能我們可以把多個(gè)類組合在一起,或者引用等等方法。
好處在于拆卸方便,當(dāng)不需要什么功能的時(shí)候能快速明晰的剝離掉。如果什么代碼都混在一塊那是灰常難以剝離的。
|
責(zé)任編輯:張葉青
來(lái)源:
eoe Android開(kāi)發(fā)者社區(qū)






















