架構(gòu)背景與要達(dá)到的效果:
1.業(yè)務(wù)功能,可預(yù)估時(shí)間斩跌。完成
2.軟件穩(wěn)定
3.后期bug可控绍些,可預(yù)估
4.迭代版本可擴(kuò)展,可修改
架構(gòu)背后使用的技術(shù)調(diào)研(技術(shù)選型):
1.語言 java還是kotlin
2.顯示模式耀鸦,如View呈現(xiàn)使用xml,還是compnent,是否使用NDK算法
2.第三方SDK 柬批,多廠商的選擇比較,兼容性袖订,
架構(gòu)達(dá)到的目的:
1.定位問題輸出問題
2.解耦氮帐,而達(dá)到邏輯清晰。
3.簡潔洛姑,容易閱讀
4.人員分工業(yè)務(wù)工作量
5.擴(kuò)展化
6.熱修復(fù)
架構(gòu)(業(yè)務(wù))模型
?MVVM上沐,控制,數(shù)據(jù)楞艾,與視圖展現(xiàn)之間的關(guān)系
服務(wù)進(jìn)程参咙,日志服務(wù)進(jìn)程,微服務(wù)功能
組件化硫眯,解耦功能蕴侧,達(dá)到功能獨(dú)立,人工分開两入,后期維護(hù)分開净宵,微服務(wù)功能
架構(gòu)(代碼)模型
建造者模式:管理狀態(tài)數(shù)據(jù)池常量->而達(dá)到顯示控制、功能控制谆刨,可擴(kuò)展
策略模式(樹形結(jié)構(gòu)):一個功能一個總父類->子父類->子類,歸類塘娶,邏輯清晰,易控制痊夭,易閱讀刁岸。
代理模式:對同樣性質(zhì)動作坐同樣監(jiān)控。從而讓注解起到簡化代碼作用她我『缡铮控制
中介模式(適配器):讓解耦的數(shù)據(jù)和視圖兩個進(jìn)行交互迫横。易控制嚣潜,簡潔口猜,解耦
責(zé)任鏈模式:NEXT->NEXT,一層鸵钝,一層去攔截監(jiān)控從而達(dá)到疏哗,每一層細(xì)節(jié)的問題拋出呛讲。穩(wěn)定
PS:使用不同的模型,然而會用到返奉,抽象類贝搁,接口,注解芽偏,反射等高級一點(diǎn)的語言特性雷逆。
代碼細(xì)節(jié)
業(yè)務(wù)邏輯完整
例1:交互進(jìn)入A狀態(tài)-> 操作其他->被動跳到其他B狀態(tài)->恢復(fù)狀態(tài)A狀態(tài)到初始化->操作B (簡單解法是必須完成當(dāng)前操作)
例2:交互進(jìn)入A狀態(tài)->未滿足條件->進(jìn)入等待狀態(tài)->跳轉(zhuǎn)到進(jìn)入條件許可->條件滿足->喚醒條件
根據(jù)例1,例2判斷出:
1.操作異常污尉,需要做第一種情況圍堵膀哲,必須完成當(dāng)前? ?第二種情況,恢復(fù)當(dāng)前到初始化被碗,跳到其他操作
2.操作條件不滿足某宪,進(jìn)入等待,操作其他蛮放,等待被喚醒
穩(wěn)定性容錯處理
所以需要添加容錯處理(0.NULL缩抡,越界判斷去除 1.0,NAN 2.try,catch包容包颁,數(shù)據(jù)注意拋出問題)
代碼規(guī)范
1.必要注解(功能瞻想,版本)
2.拼寫規(guī)范(易閱讀)
3.一個函數(shù)小功能獨(dú)立(邏輯清晰,易閱讀)
代碼測試
偶發(fā)問題的的解決(白盒測試)
對于偶爾問題娩嚼,測試不易復(fù)現(xiàn)蘑险。這個時(shí)候需要Android 開發(fā)人員自己寫 UnitTest/業(yè)務(wù)測試代碼。等待問題的拋出
PS:自己根據(jù)工作經(jīng)驗(yàn)總結(jié)編寫岳悟,存在不足地方?wohaipeng@dingtalk.com