2018年最后一次code review結(jié)果,做了處理缤骨,對(duì)App的啟動(dòng)流程做了優(yōu)化山孔;
查看了iOS正則、NSPredicate的使用荷憋,NSPredicate是個(gè)很強(qiáng)大的東西台颠,哈;
學(xué)習(xí)了JavaScript勒庄、MySQL等串前;
查看了馬云的演講,主要去了解"DT + Ai時(shí)代"实蔽;
App啟動(dòng)荡碾,組件如何啟動(dòng)?
1局装、組件化之前
在還未做組件化之前坛吁,那是一個(gè)亂糟糟,AppDelegate中铐尚,各種代碼拨脉,能搞到好幾百行。
2宣增、組件化
將各個(gè)業(yè)務(wù)拆分玫膀、解耦之后,我們實(shí)現(xiàn)項(xiàng)目的組件化爹脾,有基礎(chǔ)服務(wù)帖旨、基礎(chǔ)業(yè)務(wù)、核心業(yè)務(wù)等灵妨。
3解阅、組件化之后
無(wú)論項(xiàng)目怎么拆分,App是要啟動(dòng)的泌霍,就要加載各種服務(wù)货抄、業(yè)務(wù)等,那各個(gè)組件如何啟動(dòng)呢烹吵?
好一點(diǎn)的碉熄,Appdelegate中,每個(gè)組件提供初始化方法肋拔;差一點(diǎn)的锈津,Appdelegate中有各種組件的配置,比組件化之前代碼是少了凉蜂,但又涉及到各個(gè)組件的啟動(dòng)順序問(wèn)題:組件之間有依賴琼梆,先啟動(dòng)誰(shuí)性誉,后啟動(dòng)誰(shuí),就會(huì)影響組件的功能茎杂。
4错览、組件自啟動(dòng)
組件的啟動(dòng)、配置等煌往,不會(huì)再放到Appdelegate中倾哺,而是做成懶加載的方式,組件被需要的時(shí)候刽脖,才會(huì)進(jìn)行啟動(dòng)羞海、加載配置,主要解決組件相互依賴導(dǎo)致啟動(dòng)順序受限制曲管、暫無(wú)用組件亂啟動(dòng)導(dǎo)致的問(wèn)題却邓。
基礎(chǔ)服務(wù)、基礎(chǔ)業(yè)務(wù)等組件院水,分為兩部分:核心代碼腊徙、業(yè)務(wù)代碼。
我們將核心代碼拆分做成私有pod組件檬某,因?yàn)椴簧婕暗綐I(yè)務(wù)撬腾,很少改動(dòng);業(yè)務(wù)代碼部分橙喘,做成配置(文件时鸵、delegate等方式),寫在在主工程中厅瞎,以方便針對(duì)不同項(xiàng)目的不同業(yè)務(wù)進(jìn)行改動(dòng)。
我們使用這種模式初坠,對(duì)各個(gè)組件和簸、主項(xiàng)目進(jìn)行了規(guī)范處理。