架構(gòu)設(shè)計(jì)-APP

架構(gòu)背景與要達(dá)到的效果:

1.業(yè)務(wù)功能,可預(yù)估時(shí)間。完成

2.軟件穩(wěn)定

3.后期bug可控,可預(yù)估

4.迭代版本可擴(kuò)展,可修改

架構(gòu)背后使用的技術(shù)調(diào)研(技術(shù)選型):

1.語(yǔ)言 java還是kotlin

2.顯示模式,如View呈現(xiàn)使用xml,還是compnent,是否使用NDK算法

2.第三方SDK ,多廠商的選擇比較,兼容性,

架構(gòu)達(dá)到的目的:

1.定位問(wèn)題輸出問(wèn)題

2.解耦,而達(dá)到邏輯清晰。

3.簡(jiǎn)潔,容易閱讀

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ú)立,人工分開(kāi),后期維護(hù)分開(kāi),微服務(wù)功能

架構(gòu)(代碼)模型

建造者模式:管理狀態(tài)數(shù)據(jù)池常量->而達(dá)到顯示控制、功能控制,可擴(kuò)展

策略模式(樹形結(jié)構(gòu)):一個(gè)功能一個(gè)總父類->子父類->子類,歸類,邏輯清晰,易控制,易閱讀。

代理模式:對(duì)同樣性質(zhì)動(dòng)作坐同樣監(jiān)控。從而讓注解起到簡(jiǎn)化代碼作用??刂?/p>

中介模式(適配器):讓解耦的數(shù)據(jù)和視圖兩個(gè)進(jìn)行交互。易控制,簡(jiǎn)潔,解耦

責(zé)任鏈模式:NEXT->NEXT,一層,一層去攔截監(jiān)控從而達(dá)到,每一層細(xì)節(jié)的問(wèn)題拋出。穩(wěn)定

PS:使用不同的模型,然而會(huì)用到,抽象類,接口,注解,反射等高級(jí)一點(diǎn)的語(yǔ)言特性。

代碼細(xì)節(jié)

業(yè)務(wù)邏輯完整

例1:交互進(jìn)入A狀態(tài)-> 操作其他->被動(dòng)跳到其他B狀態(tài)->恢復(fù)狀態(tài)A狀態(tài)到初始化->操作B (簡(jiǎn)單解法是必須完成當(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)定性容錯(cuò)處理

所以需要添加容錯(cuò)處理(0.NULL,越界判斷去除 1.0,NAN 2.try,catch包容,數(shù)據(jù)注意拋出問(wèn)題)

代碼規(guī)范

1.必要注解(功能,版本)

2.拼寫規(guī)范(易閱讀)

3.一個(gè)函數(shù)小功能獨(dú)立(邏輯清晰,易閱讀)

代碼測(cè)試

偶發(fā)問(wèn)題的的解決(白盒測(cè)試)

對(duì)于偶爾問(wèn)題,測(cè)試不易復(fù)現(xiàn)。這個(gè)時(shí)候需要Android 開(kāi)發(fā)人員自己寫 UnitTest/業(yè)務(wù)測(cè)試代碼。等待問(wèn)題的拋出

PS:自己根據(jù)工作經(jīng)驗(yàn)總結(jié)編寫,存在不足地方?wohaipeng@dingtalk.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容