1 回答

TA貢獻1966條經(jīng)驗 獲得超4個贊
這個問題問的很大。從幾個角度來回答吧。
第一,從業(yè)務(wù)需求和性能考慮,要定義清楚哪些數(shù)據(jù)結(jié)構(gòu)是放在前端的,哪些數(shù)據(jù)結(jié)構(gòu)是放在后端的,哪些是只需要取一次以后就緩存在前端的,哪些是每次都需要與后端通訊的,哪些是需要實時響應(yīng)的,哪些是需要推送的,等等。只有把這些全部考慮清楚并且和全體項目組成員充分溝通,前后臺開發(fā)人員都共同認可這個架構(gòu)之后,才可以開始考慮如何設(shè)計后臺的問題。
第二,開始后臺設(shè)計時,首先要考慮的是數(shù)據(jù)庫的選型,這又是一個很大的話題,這里先不詳細討論。理論上來說什么樣的語言都可以配備任何數(shù)據(jù)庫,但也并不盡然。Mongodb最好用node.js,PHP行不行?當(dāng)然也可以。如果接口是restful,那可能選擇postgresql比mysql要更好,因為它自帶有rest接口,連開發(fā)都不用開發(fā),但是安全性如何保障?支不支持jwt?性能如何?這些問題都需要考慮清楚。事前的大量調(diào)研和經(jīng)驗?zāi)芄?jié)省大量時間,不要盲目投入進去開發(fā)。
第三,數(shù)據(jù)庫和開發(fā)語言都選定的情況下,還要看是不是采用現(xiàn)成的框架,即便PHP也至少有10種以上框架可以選擇,框架的選擇可以達到事半功倍的效果?,F(xiàn)階段前后臺接口主要采用json通訊,不太會采用soap協(xié)議。不過也要看是同步還是異步,通常情況下會用異步ajax通訊,但也可能需要同步通訊,那就要用到websocket。即使用json,也有自己直接定義自己的json字段的方式和采用rest方式的選擇,如果采用rest方式必須考慮安全性的問題,因為ajax是無狀態(tài)的,沒有session和cookie可用。
最后,就是人的因素,開發(fā)周期不可能無限制長,沒有時間讓每一個人學(xué)習(xí),所以還要考慮團隊成員對哪些語言哪些數(shù)據(jù)庫哪些框架比較熟悉,在系統(tǒng)性能和開發(fā)速度上達到平衡。
添加回答
舉報