我們都知道如果將所有的功能都寫成 Library之宿,那么我們在編寫應(yīng)用程序的時(shí)候就可以快速便捷的寫出想要的功能,因?yàn)檫@些已經(jīng)事先都實(shí)現(xiàn)過了苛坚,這樣在寫代碼的時(shí)候就可以迅速的將 Library 依賴到我們的項(xiàng)目里比被。
然而在通常的情況下現(xiàn)實(shí)和期望的總是相差很大,在使用 Library 的過程中可能會出現(xiàn)各種各樣的問題泼舱,這時(shí)候我們第一個(gè)要問的問題就是姐赡,這樣的功能應(yīng)該是一個(gè)Library 嗎?相信大家在團(tuán)隊(duì)開發(fā)的時(shí)候都會遇到類似的問題柠掂。
下面有一些建議能夠幫助我們來決定什么樣的功能能寫成一個(gè) Library ,什么樣的不能项滑。
有沒有另一個(gè)地方使用相同的功能?
首先涯贞,相同的功能有沒有在另一個(gè)地方使用過枪狂,不管我們談?wù)撛赨I界面,還是通過實(shí)用工具來幫助你完成某些任務(wù)時(shí)宋渔,在將這些功能從代碼里抽出 Library 的時(shí)候都要考慮一下相同的功能是否在其他的地方使用過州疾,這個(gè)很重要。
如果其他地方?jīng)]有使用過相同的功能皇拣,也別擔(dān)心严蓖,為了解決問題可以針對該問題編寫出一個(gè)解決方案薄嫡,因?yàn)楹苡锌赡茉谝院髸蓄愃频墓δ苄枰獙?shí)現(xiàn),這樣就可以將這一個(gè)功能做成一個(gè) Library 了颗胡,這樣做也可以提升我們對代碼的熟練程度毫深。
有沒有其他的 Library 已經(jīng)實(shí)現(xiàn)了?
第二,我們要看看是否已經(jīng)有開源的 Library 已經(jīng)實(shí)現(xiàn)了我們需要的功能毒姨,是否確保我們不是在重塑別人已經(jīng)造好的輪子哑蔫,如果我們恰巧碰到了一個(gè)質(zhì)量也不錯(cuò)也能解決我們問題的 Library,這不是一個(gè)節(jié)約自己時(shí)間的很好的機(jī)會嗎弧呐?
如果你遇到了一個(gè)類似的開源 Library 但是并不能很好的解決問題闸迷,也可以和作者進(jìn)行聯(lián)系看看對方為什么沒有實(shí)現(xiàn),或者是其他的原因,這樣我們就可以 fork 這個(gè)項(xiàng)目,并把我們的需求功能增加上俘枫,這樣我們就對這個(gè)開源項(xiàng)目做了自己的貢獻(xiàn)了腥沽。
功能是否真正一致?
很多時(shí)候在開發(fā)新特性的時(shí)候,我們感覺上在很多的地方都使用到了這樣的工能鸠蚪,但其實(shí)仔細(xì)看的話巡球,在不同的地方使用可能會有一些細(xì)節(jié)上的不同,這時(shí)候我們就要考慮這些細(xì)節(jié)問題邓嘹,不能僅在大體功能上一樣就抽取出一個(gè) Library 酣栈,這樣的問題不應(yīng)該被忽視,不然就相當(dāng)于起步的時(shí)候就走彎路了汹押。
所以我們在將在使用庫文件或者將要?jiǎng)?chuàng)造自己的庫文件時(shí)矿筝,一定要問一問自己,是夠這樣的功能做成 Library 之后真正的幫我們節(jié)省了時(shí)間棚贾。
OneAPM Mobile Insight 以真實(shí)用戶體驗(yàn)為度量標(biāo)準(zhǔn)進(jìn)行 Crash 分析窖维,監(jiān)控網(wǎng)絡(luò)請求及網(wǎng)絡(luò)錯(cuò)誤,提升用戶留存妙痹。訪問 OneAPM 官方網(wǎng)站感受更多應(yīng)用性能優(yōu)化體驗(yàn)铸史,想閱讀更多技術(shù)文章,請?jiān)L問 OneAPM 官方技術(shù)博客怯伊。
本文轉(zhuǎn)自 OneAPM 官方博客