項目參數(shù):
開發(fā)平臺:Mac/Windows/Linux
架構模式:前后端完全分離丈屹、純靜態(tài)方式乱豆、分層架構模塊化
模塊化方案:CommonJs+Webpack
技術棧: Html+CSS +JQuery+React+Sass……
開發(fā)工具: Sublime,Chrome,Charles/Fiddler
版本控制工具:Git
項目發(fā)布方式: shell腳本自動化發(fā)布
代理工具: Charles/Fiddler
語言環(huán)境:JQuery,Webpack,Nodejs,Git
需要安裝的軟件:NodeJs,Sublime,Chrome,Charlse……
架構設計 -- 分層架構
定義:把功能相似,抽象級別相近的實現(xiàn)進行分層隔離
優(yōu)勢:松散耦合(易維護钩述、易復用寨躁、易擴展)
常見分層方式: MVC MVVM
架構設計 -- 模塊化
定義:解決一個復雜問題時,自頂向下逐層把系統(tǒng)劃分成若干模塊的過程
意義:解耦牙勘,可并行開發(fā)
模塊化方案:AMD CMD CommonJS ES6
AMD: require.js
CMD: sea.js
區(qū)別:加載和實際運用不太一樣
模塊化的代碼和業(yè)務代碼一起
commonjs 語法結構簡單职恳,語法和業(yè)務是分開的
es6 兼容性不好
架構設計
邏輯層 主模塊
子模塊 子模塊 子模塊
數(shù)據(jù)層 service 服務器
工具層 工具
技術選型:(挑出主流方案 從穩(wěn)定性所禀、擴展性、運行速度放钦、開發(fā)效率色徘、兼容性等方面綜合考慮)
a. 軟件過程:(瀑布、螺旋操禀、敏捷開發(fā)) 敏捷開發(fā)
b. 前后端分離: 完全分離褂策,純靜態(tài)的模式
c. 構建工具:webpack (模塊化方案:commonJS+webpack)
d. 框架:
e. 版本控制:git
f. 發(fā)布方式:
軟件過程選擇 -- 敏捷開發(fā)
(適用于多變的開發(fā)需求)
定義:以用戶的需求進化為核心,采用迭代颓屑、循環(huán)漸進的方法進行軟件開發(fā)
是一種迭代的意識和方法斤寂,而不是概念和工具
優(yōu)點:能夠應對滿足不斷變化的需求
不足:對團隊成員的能力要求比較高
前后端分離方式 -- 不分離
前后端共用同一套項目目錄,甚至頁面內嵌js邢锯、css
本地開發(fā)環(huán)境搭建成本高
共同維護成本高
發(fā)布風險高
前后端分離方式 -- 部分分離
后端負責頁面模板(JSP/Velocity/Freemarker)
本地開發(fā)環(huán)境搭建成本較高
更新頁面模板仍需后端協(xié)助扬蕊,效率不夠高
需要前后端同時發(fā)布
前后端分離方式 -- 完全分離1
方案1: velocity,發(fā)布的時候同步到后端
優(yōu)點:完全分離,能直接生成動態(tài)的模板丹擎,利于SEO
缺點:系統(tǒng)復雜度高尾抑,需要前后端同時發(fā)布
前后端分離方式 -- 完全分離2
方案2:純靜態(tài)html,完全通過接口做數(shù)據(jù)交互
優(yōu)點:完全脫離后端模板蒂培,系統(tǒng)復雜度低
缺點:不太利于SEO
框架選型:
jQuery Angular Avalon Vue React
Css Less Sass
用戶端:求穩(wěn)再愈、用戶類型多樣、有SEO要求护戳,多頁應用(用戶端技術不能一味的追求新技術而忽略用戶群體)
管理系統(tǒng):求快翎冲、用戶類型單一、無SEO要求(管理人員針對公司內部的開發(fā)人員媳荒,考慮簡潔快速)
構建工具:
grunt gulp webpack
版本控制工具:
svn git
發(fā)布方式:
發(fā)布過程:拉取待發(fā)布的代碼 編譯打包 發(fā)布到線上機器上
域名分布:
html www./admin.
js+css s.
images img.
總結:
軟件過程:敏捷開發(fā)
前后端分離:完全分離抗悍、純靜態(tài)方式
模塊化方案:CommonJs+Webpack
框架選擇:用戶端如:jQuery+css, 管理端:React+Sass
版本控制: git
發(fā)布過程: 拉取代碼 --- 編譯打包 --- 發(fā)布到線上輯器