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