在開發Web應用時,一般會使用到如下技術棧:
對應這些技術棧都已有相應的開源產品,能夠根據項目須要選擇適合的產品。前端
開源產品選型主要考慮:java
iTracker是一個開源任務管理系統,目的是經過實際項目來使用和驗證以上技術棧, 同時也是一個培訓類Demo項目,你能夠經過follow Web應用全棧之旅的系列文章一塊兒參與學習。
iTracker選型以下:
spring
編輯器選型主要考慮因素有:
1)是否支持直接拷貝富文本的中的圖片或者截屏後粘貼,能拷貝Word中的圖片和visio圖最佳。但能拷貝visio圖粘貼後不失真一般是收費富文本編輯器才具有的能力。
2)是否支持編程語言高亮,例如按Java,C++語言高亮
3)是否支持數學公式等等
所以選擇了兩款富文本編輯器:
1)wangEditor,支持截屏粘貼,當作Bug跟蹤系統時這個功能特別有用。
2)Editor.md,支持編程語言高亮,支持數據公式。數據庫
圖表組件不少,夠用就好。
1)Echart,用於統計類圖表。
2)d3,功能強大,彩虹圖,柱狀圖,在作調用鏈跟蹤類的應用中可使用。編程
沒有任何疑議選擇Spring。json
在實際開發過程當中可能用到不少工具包,例如支持後臺分頁的工具包PageHelper,例如雖然已有fastJSON來作json文本和對象的轉換,但有的場景會用到Gson,具體根據實際須要選擇。後端
雖然大多數配置均可以在spring的yml配置文件中完成,但當配置參數愈來愈多,又要區分不一樣環境時,經過配置中心來配置更方便一些,這裏選擇了攜程的Apollo配置中心。緩存
支持數據緩存, 分佈式緩存,能夠用來管理分佈式session,Rdeis足以勝任。前端框架
幾個知名消息隊列工具,kafka,RocketMQ,RabbitMQ,在沒有確切的場景需求時,先簡單選擇一個開始吧。微信
因爲數據庫的模糊查詢效率低,同時也不可能不斷增長一個表的索引字段來知足查詢要求,所以一個搜索引擎是必要的,Elasticsearch能夠知足要求。
JPA代碼寫起來簡單,可是對於複雜查詢有些力不從心,因此仍是帶上mybatis吧。
MySQL。
學習在任何收開始都不晚,感興趣的話,一塊兒開始Web全棧之旅吧!
end.
<font color="#F4B183">站點:</font> http://javashizhan.com/
<font color="#F4B183">微信公衆號:</font>
<font color="#F4B183">加入知識星球,參與討論,更多實戰代碼分享! </font>
https://t.zsxq.com/RNzfi2j