入職安居客三年從工程師到Team Leader,見證了Android團(tuán)隊(duì)一路走來的發(fā)展歷程。因此有心將這些記錄下來與大家分享,也算是對(duì)自己三年來一部分工作的總結(jié)。希望對(duì)大家有所幫助,更希望能得到大家寶貴的建議。

一、三網(wǎng)合并

三年前入職時(shí)安居客在業(yè)務(wù)上剛完成了三網(wǎng)合并(新房、二手房、好租和商業(yè)地產(chǎn)多個(gè)平臺(tái)多個(gè)網(wǎng)站合成現(xiàn)在的anjuke.com,這在公司的歷史上稱之為三網(wǎng)合并),因此app端也將原先的新房、二手房、好租和商業(yè)地產(chǎn)多個(gè)app合并成為了現(xiàn)在的安居客app。所謂的合并也差不多就是將多個(gè)項(xiàng)目的代碼拷貝到了一起組成了新的Anjuke Project。下面這張圖能更加直觀的呈現(xiàn)當(dāng)時(shí)的狀況。

電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),平面設(shè)計(jì)培訓(xùn),網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開發(fā)培訓(xùn)這一時(shí)期代碼結(jié)構(gòu)混亂、層次不清,各業(yè)務(wù)技術(shù)方案不統(tǒng)一,冗余代碼充斥項(xiàng)目的各個(gè)角落;甚至連基本的包結(jié)構(gòu)也是胡亂不堪,項(xiàng)目架構(gòu)更是無從談起。大家只不過是不停地往上堆砌代碼添加新功能罷了。于是我進(jìn)入公司的第一件事就是向Leader申請(qǐng)梳理了整個(gè)項(xiàng)目的結(jié)構(gòu)。

而后隨著項(xiàng)目的迭代,我們不斷引入了Retrofit、UniversalImageLoader、OKHttp、ButterKnife等一系列成熟的開源庫(kù),同時(shí)我們也開發(fā)了自己的UI組件庫(kù)UIComponent、基礎(chǔ)工具庫(kù)CommonUtils、基于第三方地圖封裝的MapSDK、即時(shí)聊天模塊ChatLibrary等等。這之后安居客項(xiàng)目架構(gòu)大致演變成了由基礎(chǔ)組件層、業(yè)務(wù)組件層和業(yè)務(wù)層組成的三層架構(gòu)。如下圖:

 電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),平面設(shè)計(jì)培訓(xùn),網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開發(fā)培訓(xùn)其中業(yè)務(wù)層是一種非標(biāo)準(zhǔn)的MVC架構(gòu),Activity和Fragment承擔(dān)了View和Controller的職責(zé):

 電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),平面設(shè)計(jì)培訓(xùn),網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開發(fā)培訓(xùn)

網(wǎng)友評(píng)論