入職安居客三年從工程師到Team Leader,見(jiàn)證了Android團(tuán)隊(duì)一路走來(lái)的發(fā)展歷程。因此有心將這些記錄下來(lái)與大家分享,也算是對(duì)自己三年來(lái)一部分工作的總結(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í)的狀況。
這一時(shí)期代碼結(jié)構(gòu)混亂、層次不清,各業(yè)務(wù)技術(shù)方案不統(tǒng)一,冗余代碼充斥項(xiàng)目的各個(gè)角落;甚至連基本的包結(jié)構(gòu)也是胡亂不堪,項(xiàng)目架構(gòu)更是無(wú)從談起。大家只不過(guò)是不停地往上堆砌代碼添加新功能罷了。于是我進(jìn)入公司的第一件事就是向Leader申請(qǐng)梳理了整個(gè)項(xiàng)目的結(jié)構(gòu)。
而后隨著項(xiàng)目的迭代,我們不斷引入了Retrofit、UniversalImageLoader、OKHttp、ButterKnife等一系列成熟的開(kāi)源庫(kù),同時(shí)我們也開(kāi)發(fā)了自己的UI組件庫(kù)UIComponent、基礎(chǔ)工具庫(kù)CommonUtils、基于第三方地圖封裝的MapSDK、即時(shí)聊天模塊ChatLibrary等等。這之后安居客項(xiàng)目架構(gòu)大致演變成了由基礎(chǔ)組件層、業(yè)務(wù)組件層和業(yè)務(wù)層組成的三層架構(gòu)。如下圖:
其中業(yè)務(wù)層是一種非標(biāo)準(zhǔn)的MVC架構(gòu),Activity和Fragment承擔(dān)了View和Controller的職責(zé):
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26