今天這篇博文主要講的是項目的一般開發流程。科學的開發流程可以提高效率,減少不必要的加班,由此可見開發流程在項目開發中的重要地位。項目開發流程一般包括以下幾步:
一、需求評估
產品經理、研發工程師、測試工程師,要組織需求評審會議,講解本次的開發功能和具體業務。
如下2步,需要畫圖、筆記、文字記錄、演算、推理、畫流程圖、畫架構圖
1、產品選型
明確產品界面、交互設計、功能設計、模塊區分,尋找相仿的產品上手體驗、操作,感知功能的使用和交互的體驗,目的是爲了瞭解即將要做的產品有大致的模型,對產品模型瞭解的越細緻越好
2、分離架構
對產品從各個維度分離架構,從功能,目錄,邏輯拆分,抽象,業務流的明確,數據流的流向,交互體驗的設計,從整體拆分成局部,針對每個局部再繼續拆分,從局部整合成系統,考慮整體和局部之間的相互影響關係
循環這2步,最終得到一個產品系統,應該對產品系統非常瞭解,從整體到局部,從需求到邏輯,端到端的數據流向,交互體驗設計,數據庫表結構設計
根據以上,給出開發工期(X/人/天)。
二、文檔編寫
按照系統的各個區域和子系統,編寫對應的文檔註釋,說明此子系統的功能、大致邏輯、含有的接口。
此外,流程應該按照先數據庫層面 –> 邏輯控制層面 –> 數據展示層面 –> 交互體驗層面 –> 界面設計層面的順序來規劃和思考。
同時考慮擴展性的問題,子系統是否可插拔,組件之間是否強依賴,必要的時候完成架構層面大的抽象。
文檔需要大概明確此子系統模塊的測試結果是什麼,提前演算模塊的測試步驟和結果,後續細化的代碼必須要通過此測試要求。
三、創建/更改 數據庫
根據公司要求規範操作數據表,確定後郵件抄送相關開發。
相關SQL語句,需要Leader、DBA 審覈,方可部署。
四、規定開發規範
規定代碼規範,必須要寫註釋
五、前後端分離開發
目前項目大部分都是使用 前後端分離的方式開發,一般由後端先給出接口文檔供前端進行開發。
後端 程序邏輯代碼開發需要考慮:
複雜的邏輯可以自己先畫流程圖(ProcessOn)。
遵循 PHP 代碼規範(PSR)。
代碼註釋(再次提醒這點非常重要)。
數據驗證(對前端提交的數據進行二次驗證,不能相信任何前端數據)。
功能邏輯(考慮類庫封裝,代碼複用)。
性能問題(是否需要用到緩存redis等)。
安全問題(XSS、Sql注入)。
日誌問題(記錄相關日誌)。
錯誤報警(可供參考)。
前端需要考慮:
代碼整潔性(標籤元素對齊,DIV區塊註釋)。
界面適配(BootStrap 柵格系統)。
Js 相關驗證(不要寫在界面中)。
產品驗收(確認界面元素是否滿足使用習慣)。
擼編碼
編碼必須符合僞代碼的邏輯,編碼應該多次測試,慢步前進。
注意編碼的版本控制。
編碼應該儘量保持優美的邏輯和語法使用。
編碼的變量命名應該特別注意。
每一次的編碼應該最低按照一個函數單元,即最小編碼單位是一個函數,一旦決定編碼,就至少完成一個
函數單元,或者取消本次函數的編寫。
每個函數的完成,都必須要達到僞代碼對此函數的定義和解釋,注意高內聚和低耦合的問題。
如果沒有高內聚,要適當拆分邏輯和代碼。
如果沒有低耦合,要適當抽象代碼,合併其他同類函數。
六、功能自測
程序開發完畢後,需要自己先進行測試,走一遍全部流程。
需要考慮:
創建一些測試數據。
考慮功能的臨界值。
確保功能的可用性。
七、代碼評審(Code Review)
代碼評審被公認爲是一個很好的提高代碼質量的手段。
好處:
加速個人的成長,讓自己成爲一個更優秀的程序員。
可以分享/學習到更多的知識。
保證代碼清晰,容易被別人理解。
提前發現一些缺陷(代碼檢查者通常比代碼編寫者更挑剔)。
我們可以使用一些開源系統:
Phabricator
ReviewNinja
Codacy
RhodeCode
如果有好的工具幫助我們進行codereview,往往會達到事半功倍的效果。
八、WIKI 更新
將自己開發的功能模塊,部署到WIKI上。
寫好需求方、開發者、使用者、是否用到API、相關邏輯、流程圖…
九、功能提測
通知測試人員,該需求可以提測啦~
根據公司要求,可以進行郵件提測,也可以JIRA管理。
以上,只是大概的講述了開發流程。
其實每一個步驟,都可以進行詳細分析,比如代碼註釋,評審規範等等。