一款優(yōu)質(zhì)的軟件,其中的一個(gè)重要元素就是要維護(hù)方便。這樣一旦軟件出了問題能快速定位,需要修改時(shí)能快速修改,并且在一定程度上不會(huì)說一修改就一堆bug,這就是我認(rèn)為的可維護(hù)性,當(dāng)然后面要說到的切入性其實(shí)也算是維護(hù)性,不過為什么單獨(dú)放出來在切入性時(shí)我會(huì)詳細(xì)說明。中培偉業(yè)軟件方面的專家劉老師認(rèn)為,要想確保一款軟件維護(hù)方便,應(yīng)該做到以下幾點(diǎn):
1.代碼規(guī)范
一份代碼如果沒有遵循任何規(guī)范,那么我相信它的可維護(hù)性是很差的,就算是你一個(gè)人做出來的,估計(jì)過了幾個(gè)月去修改的時(shí)候也會(huì)是一個(gè)重要問題。
2.框架穩(wěn)定性
很多時(shí)候很多開源框架剛出來的時(shí)候,也許功能十分強(qiáng)大,但是畢竟剛出來,沒有經(jīng)過充分的測(cè)試,所以還是會(huì)或多或少存在一個(gè)不穩(wěn)定因子,所以建議在選擇框架時(shí)盡量選擇成熟穩(wěn)定的框架,哪怕功能和性能的確比不上剛出來的框架。當(dāng)然這也不是說完全不用剛出來的框架,畢竟都不用,那么它也永遠(yuǎn)成熟不了,至于到底用不用和怎么用,本文的框架選擇和使用篇也會(huì)詳細(xì)分析說明
3.封裝
劉老師指出,封裝這個(gè)在Android中是經(jīng)常使用的,簡單來說就是把一些常用的、通用的東西進(jìn)行一個(gè)封裝,通過統(tǒng)一入口進(jìn)行調(diào)用,這樣出問題就只需要修改一個(gè)地方,就能全部修改過來。同時(shí)封裝也要注意一些常見的坑,比如我曾經(jīng)就踩過的context坑,當(dāng)時(shí)封裝了一個(gè)UIUtils(主要是針對(duì)UI相關(guān)的工具類),因?yàn)楹芏喾椒ǘ家褂胏ontext,所以直接application傳進(jìn)去,保存了,所有方法都不用傳 。
context,但是這樣卻出了一個(gè)bug,那就是有些操作用application的context是有問題的。當(dāng)然這種還比較好處理,但是如果因?yàn)榉庋b導(dǎo)致內(nèi)存泄露,這就難以查找了,比如你傳入了一個(gè)activity的context,但是activity已經(jīng)關(guān)閉了,但是因?yàn)槟惴庋b的方法里面還在繼續(xù)使用這個(gè)context,所以activity的內(nèi)存也是不會(huì)釋放的,所以封裝的時(shí)候也一定要注意,不要給自己挖坑
4.耦合
針對(duì)耦合這個(gè)東西相信很多文章都說過了,如何解耦合,不過個(gè)人感覺解耦合這個(gè)東西也要適度,不要因?yàn)榻鉀Q一點(diǎn)耦合,花了大量的代碼,浪費(fèi)了大量的性能,所以解耦合這個(gè)東西就一定要把握這個(gè)度,過度設(shè)計(jì)是有問題的設(shè)計(jì)。