一、建立一個完善的日志系統(tǒng)
一套完善的日志系統(tǒng)需要解決下面的幾個問題:
1、避免無用的日志信息亂飛;
2、日志輸出定義好級別:Info、Error、Debug、Warn、Verbose;
3、Server下發(fā)指令能夠拉取指定用戶的某段時間的日志(加密)到后臺;
優(yōu)秀的第三方日志組件:https://github.com/CocoaLumberjack/CocoaLumberjack
二、版本控制Commit Message 規(guī)范
新增 # 某項功能開發(fā)...
修復(fù) # bug:****
刪除 # 某些無用的文件
...
三、代碼開發(fā)規(guī)范
每個人的編碼習(xí)慣不一樣,團隊作戰(zhàn)相互Review代碼的時候累,希望能夠輸出一個適合本項目的代碼開發(fā)規(guī)范;
四、準備(實時維護)一份編碼的守則
把開發(fā)過程中經(jīng)常遇到的一些“坑”記錄下來,實時的維護本守則,遵守該守則,避免繼續(xù)踩坑;
五、統(tǒng)計埋點功能
注意點:
1、前期規(guī)劃好
2、調(diào)研哪家的SDK易用,易擴展,無風險(Crash)
3、在SDK的基礎(chǔ)上再次封裝一層
六、架構(gòu),設(shè)計模式
注意點:軟件架構(gòu)設(shè)計時需要注意四個要點:簡單、有效、可靠、完善;
1、設(shè)計模式選型:MVC、MVVM、MVCS;
2、組件化開發(fā):基礎(chǔ)組件、業(yè)務(wù)組件;
3、遵守基本的設(shè)計原則:
* 單一職責原則:原則上講,一個類只做一件事情;一個方法只做一件事情;
* 開閉原則:對修改關(guān)閉,對擴展開放;程序設(shè)計要考慮到后續(xù)的擴展,而不是在原有的基礎(chǔ)來回修改;
* 接口隔離原則:例如:按照功能拆分,總協(xié)議可以拆分為各種單一職責協(xié)議;而不是維護一個龐大臃腫的協(xié)議;
* 依賴倒置原則:上層模塊不應(yīng)該依賴于底層模塊,而是依賴于抽象;抽象不應(yīng)該依賴于細節(jié),而細節(jié)依賴于抽象;針對接口編程,不針對于實現(xiàn)編程;
* 里氏替換原則: 父類可以被子類無縫替換,且原有的功能不受影響;
* 迪米特法則: 一個類應(yīng)該對其他類盡可能少的“關(guān)聯(lián)”,實現(xiàn)高內(nèi)聚,低耦合;
七、后臺配置,在線配置
目的:為了線上的APP更加靈活,例如廣告、banner、icon更新等;
八、集成Crash監(jiān)控工具
Crash不可避免,需要搞一下監(jiān)控工具,如果有精力和能力,可以自己開發(fā)一套;

image.png
推薦: bugly.qq.com
九、代碼定期Review, 結(jié)合Git流版本控制;
十、bug管理工具
十一、項目管理工具
十二、Checklist
上線前的檢查必須要做,雖然麻煩,可是穩(wěn)定;