引:
周末去電影院看了我等了小半年的<君の名は>锰瘸,感觸良多,總結(jié)來(lái)說(shuō)有三點(diǎn):
1昂灵、因?yàn)槲冶臼切潞U\(chéng)的忠實(shí)粉絲避凝。
2、公司是日企眨补,公司不管是滾鍵盤(pán)的還是忽悠人的管削,都要會(huì)日語(yǔ)。
3撑螺、嘿嘿含思,內(nèi)心蠢蠢欲動(dòng),年少輕狂的我難免喜歡這些文藝愛(ài)情片,嘿嘿含潘。
以我對(duì)電影的評(píng)價(jià)饲做,這部電影質(zhì)量還是很不錯(cuò)的,不知道不考慮情懷問(wèn)題遏弱,國(guó)產(chǎn)的什么時(shí)候能達(dá)到這水平盆均。迷茫臉。
不多說(shuō)漱逸,開(kāi)始正文泪姨。
為什么總結(jié)?
不可否認(rèn)的是饰抒,日本人的行事風(fēng)格是極其死板的肮砾,至少日本那邊來(lái)的同事都是這樣〈樱總結(jié)來(lái)說(shuō)仗处,無(wú)論什么情況,都按規(guī)定來(lái)咒彤,這和我們大部分國(guó)人的“隨遇而安”的風(fēng)格格格不入疆柔。但正是這種死板,使得一切都變的井然有序镶柱,所以我開(kāi)始漸漸的接受了這些死板的文化旷档,甚至愛(ài)上了這種死板。其中歇拆,“總結(jié)”鞋屈,就是死板中的一條。公司每天早上上班都有小組會(huì)議故觅,總結(jié)昨天的情況和今天的安排厂庇;項(xiàng)目開(kāi)始準(zhǔn)備階段,需要總結(jié)項(xiàng)目的工數(shù)输吏、人員权旷、開(kāi)發(fā)文檔;項(xiàng)目結(jié)束贯溅,無(wú)論是開(kāi)發(fā)完成還是客觀原因終止開(kāi)發(fā)拄氯,都必須總結(jié)出對(duì)應(yīng)文檔,詳細(xì)到每一個(gè)class中方法的作用它浅。作為后續(xù)進(jìn)來(lái)的維護(hù)人員译柏,都是一件多幸福的事情,但對(duì)我這種作文檔姐霍,分分鐘有點(diǎn)想跳槽走人的沖動(dòng)鄙麦。當(dāng)然典唇,其實(shí)還有非常多的總結(jié),我就不一一列舉了胯府〗橄危總結(jié)來(lái)說(shuō),因?yàn)橹匾私伲钥偨Y(jié)夜牡,因?yàn)榭偨Y(jié),所以一切都變的井然有序侣签。
總結(jié)哪些塘装?
主要是在開(kāi)發(fā)Android 時(shí),一些小經(jīng)驗(yàn)而已影所。其實(shí)沒(méi)什么的蹦肴,哈哈哈哈哈哈。
總結(jié)開(kāi)始咯猴娩?
嗯阴幌!
一、抽基類(lèi)
特別是Activity及Fragment等卷中,一定要在項(xiàng)目初期創(chuàng)建類(lèi)似"BaseActivity.class"的基類(lèi)矛双。這是為何呢?這還要從我進(jìn)公司接觸的第一個(gè)項(xiàng)目說(shuō)起蟆豫。當(dāng)時(shí)那個(gè)項(xiàng)目需求時(shí)议忽,在App退出到后臺(tái)或者鎖屏,再回到App時(shí)要到解鎖頁(yè)面十减,驗(yàn)證通過(guò)后才可以使用App栈幸,同時(shí),在網(wǎng)絡(luò)請(qǐng)求時(shí)帮辟,還需要驗(yàn)證登陸Token失效問(wèn)題速址,如果失效,要?jiǎng)h除登陸信息由驹,自動(dòng)跳轉(zhuǎn)到登陸Activity芍锚。當(dāng)時(shí)項(xiàng)目分工已經(jīng)明確,各自負(fù)責(zé)各自的Activity等蔓榄,等需要解決這需求的時(shí)候闹炉,很自然的想到解決方法,通過(guò)將Activity的引用放到放到Application中润樱,通過(guò)這個(gè)引用來(lái)跳轉(zhuǎn)Activity(還有另外就是Application中另開(kāi)一個(gè)Activity的棧,但后來(lái)總是會(huì)出莫名其妙的問(wèn)題羡棵,就放棄了)壹若。恩,沒(méi)毛病。但真的要做的時(shí)候店展,發(fā)現(xiàn)了养篓,十幾二十個(gè)Activity需要修改(在onResume()把引用設(shè)置到Application中,在onStop()中取消引用)赂蕴,這一點(diǎn)都不符合我們碼農(nóng)的風(fēng)格柳弄,效率太低!我們一群小年輕沒(méi)人愿意干這中無(wú)聊的Ctrl+C&&Ctrl+V概说,所以當(dāng)時(shí)就悔啊碧注,為什么當(dāng)初沒(méi)有抽個(gè)Activity的基類(lèi),在基類(lèi)中實(shí)現(xiàn)這方法糖赔,我只要繼承它萍丐,就什么都不管不問(wèn)了》诺洌可能這一點(diǎn)你還覺(jué)得沒(méi)什么逝变,但我想說(shuō),凡事看遠(yuǎn)點(diǎn)奋构。
二壳影、謹(jǐn)慎選擇開(kāi)源的庫(kù)
我接手項(xiàng)目的時(shí)候,項(xiàng)目已經(jīng)開(kāi)發(fā)了大概弥臼,已經(jīng)上線給客戶使用了宴咧。當(dāng)時(shí)用“Afinal”解決網(wǎng)絡(luò)請(qǐng)求、數(shù)據(jù)庫(kù)操作等功能醋火。這個(gè)庫(kù)不可謂不強(qiáng)大悠汽,集成了很多,很全面芥驳,但是已經(jīng)至少2年沒(méi)有更新維護(hù)了柿冲,效率和其它新的庫(kù)的相比,從測(cè)試數(shù)據(jù)上對(duì)比兆旬,差距還是挺遠(yuǎn)的了假抄。另外,我想換okHttp作為請(qǐng)求的底層丽猬,這和“Afinal”的網(wǎng)絡(luò)請(qǐng)求模塊又重復(fù)了宿饱,我……所以總結(jié)來(lái)說(shuō),對(duì)開(kāi)源庫(kù)的選擇脚祟,注意這幾點(diǎn):
1谬以、選擇開(kāi)源庫(kù)時(shí),要選擇會(huì)持續(xù)維護(hù)由桌。因?yàn)閹?kù)的問(wèn)題導(dǎo)致App突然在某天無(wú)法正常運(yùn)行为黎,難道你打算自己哭著看源碼邮丰,自己解決?
2铭乾、選擇集成功能單一的剪廉。我還是比較提倡一個(gè)庫(kù)解決一個(gè)需求的,如果像“Afinal“一般炕檩,我想換個(gè)網(wǎng)絡(luò)請(qǐng)求同時(shí)不想提升耦合度斗蒋,那工作量有點(diǎn)大。
3笛质、注意庫(kù)的更新日志泉沾。很多人都和我一樣是版本帝,有更新就更经瓷,沒(méi)有原因爆哑,就是想更,不管是修復(fù)Bug還是刪除方法舆吮。刪除方法什么都倒是還好揭朝,編譯時(shí)會(huì)報(bào)錯(cuò)提示。但是方法邏輯變了色冀,那就不好玩了潭袱,你懂的。
4锋恬、注意庫(kù)的體積屯换。在圖片加載的庫(kù)中,有Glide与学,Picasso彤悔,F(xiàn)resco三個(gè)選項(xiàng)。Google自己推薦Glide索守,但Glide的方法數(shù)實(shí)在的有那么一點(diǎn)點(diǎn)的偏多晕窑,同時(shí),Picasso完全可以完美支撐我們的項(xiàng)目卵佛,毫無(wú)疑問(wèn)杨赤,選擇Picasso!就算我是Google腦殘粉截汪,但是疾牲!在理性面前,還是要學(xué)會(huì)低頭的衙解。
三阳柔、多動(dòng)筆
我講真,不要太自我崇拜蚓峦,自己就是一個(gè)敲鍵盤(pán)的而已盔沫。公司主要是Web端医咨,今年才新成立移動(dòng)開(kāi)發(fā)部門(mén)所以測(cè)試時(shí)的一些case,基本和Web端一樣架诞,只有業(yè)務(wù)邏輯測(cè)試。但Android端不同干茉,一個(gè)App的運(yùn)行谴忧,除了業(yè)務(wù)邏輯問(wèn)題,還有非常多意想不到的異常情況角虫,什么鎖屏沾谓、退后臺(tái)、崩潰等等一系列的case都需要考慮戳鹅。如果這些case你一人通過(guò)腦補(bǔ)就能想到正確的邏輯及解決方法均驶,那我服。但是不能枫虏,那還是乖乖的拿出紙筆妇穴,用流程圖什么的,畫(huà)畫(huà)吧隶债。這帶來(lái)的另一個(gè)好處就是腾它,在出現(xiàn)異常case的時(shí)候,你看你當(dāng)時(shí)畫(huà)的流程圖死讹,能更快的想起當(dāng)時(shí)的解決思路瞒滴,更快的定位到問(wèn)題代碼塊,這比注釋效率更高赞警。
四妓忍、規(guī)范命名
我們都知道注釋的重要性,但光有注釋是遠(yuǎn)遠(yuǎn)不夠的愧旦。我認(rèn)為變量的命名更加重要世剖,一個(gè)正確規(guī)范的命名,能使閱讀代碼的效率以幾何倍數(shù)增長(zhǎng)忘瓦。又說(shuō)回接手的那個(gè)項(xiàng)目搁廓。之前是一個(gè)新手負(fù)責(zé)的,所以命名簡(jiǎn)直是不可描述耕皮,’mList,view,textview……"這些變量名就問(wèn)你怕不怕境蜕,這還不關(guān)鍵,關(guān)鍵是凌停,名字叫“mList”粱年,再看對(duì)象,居然特么的是一個(gè)Json的解析實(shí)體罚拟,當(dāng)時(shí)的我整個(gè)人都斯巴達(dá)了台诗。如果換成"mTaskList,mListView,mLoginTV"完箩,有點(diǎn)經(jīng)驗(yàn)的人都知道表示什么了。除了這個(gè)命名拉队,還有常量弊知。將業(yè)務(wù)中的一些標(biāo)識(shí)等,定義為常量粱快,更直觀秩彤,更高效(為何高效,這就是基礎(chǔ)問(wèn)題了事哭,這里不說(shuō))漫雷。舉個(gè)例子吧,我們規(guī)定鳍咱,字段'type'的值降盹,用'0'代表蘋(píng)果,'1'代表梨谤辜。如果你了解這業(yè)務(wù)蓄坏,你當(dāng)然能明白'0'代表什么,但是每辟,如果你不懂業(yè)務(wù)剑辫,你看到這代碼,你能看懂渠欺?所以我們定義為常量'public static final int TYPE_APPLE = 0;'妹蔽,你如果還不懂,那就是你的問(wèn)題了挠将,嗨8炱瘛!舔稀!
五乳丰、多總結(jié)
為什么呢?從頭看本文章吧内贮。
總結(jié):
扯了這么多有的沒(méi)得产园,總結(jié)來(lái)說(shuō)就是,要學(xué)會(huì)死板點(diǎn)夜郁,但不能真的死什燕。公司的死板我都不想再吐槽了,碼代碼時(shí)竞端,注釋的格式屎即,代碼縮進(jìn),空格數(shù)量,都有明文規(guī)定技俐,不合規(guī)定乘陪,算是Bug,記到你的頭上雕擂,開(kāi)會(huì)集體批斗啡邑。這樣帶來(lái)的好處就是,看代碼時(shí)捂刺,好像就是自己寫(xiě)的一樣谣拣,壞處就是,寫(xiě)個(gè)代碼族展,感覺(jué)比寫(xiě)《三體》都難。所以拔鹰,死板要學(xué)仪缸,但不能真的這么死,要靈活列肢。