本項目旨在總結先後端分離經常使用技術點,造成集前端+後端+小程序+移動端一整套的我的技術博客解決方案。技術採用主流先後端分離微服務架構,並涵蓋持續集成及自動化部署的相關解決方案。既然是以學習爲目的,可能並非以作成一個博客系統爲最終目標,可能會基於此基礎之上進行技術的擴充。css
技術方面,後端採用Java技術棧,前端使用工程化的SPA單體應用實現。項目計劃分爲兩個版本分別爲vue+Spring Cloud、react+Dubbo。除了還該經常使用的增刪改查業務以外,也會涉及高併發、限流、支付、爬蟲等主流流行技術點。html
業務方面分爲後臺+前臺場景,後臺管理系統負責對整個網站進行管理,前臺爲展現我的博客內容。除了實現博客的經常使用功能外,也但願加入秒殺、分佈式搜索、區塊鏈等功能。前端
本人才疏學淺,可能有些觀點不是很成熟,考慮的沒有很全面,望你們積極指正。也但願能夠結識更多熱愛技術的朋友,一塊兒加油,一塊兒進步。vue
所用到的主要技術點:java
2.1 後端react
數據庫:MySqlwebpack
數據訪問層:Mybatis、Spring Data Jpaios
NoSql:Redis、MongoDBnginx
持續集成:docker、k8sgit
分佈式搜索:ElasticSearch
消息隊列:RabbitMQ、ActiveMQ
版本控制:git
依賴管理:maven
分佈式:Spring Boot、Spring Cloud、Dubbo、Spring Cloud Alibaba
其餘:Quartz、FFmpeg、Spring、maven、SSO、WebMagic、Netty等
2.2 前端
前端框架:Vue、React、Ant Design、Element UI
網絡請求:axios、Fetch
表格圖表:ECharts
數據狀態管理:redux、vuex
路由管理:react-router、vue-router
小程序:mpvue
代碼檢查工具:ESLint
代碼打包工具:webpack
1.登陸註冊:實現對用戶名、手機號及掃碼的登陸實現,實現單點登錄功能。
2.文章模塊:對文章進行管理
3.分類目錄:對分類目錄進行管理
4.文章標籤模塊
5.做品管理:可添加本身的做品
6.友情連接管理
7.頁面管理
8.評論管理
9.菜單管理
10.用戶管理
11.網站seo設置
12.媒體資源管理:fastdfs
13.網站爬蟲設計:能夠抓取指定的數據到我的博客中
14.課程管理:能夠發佈本身的視頻等課程資源,實現收費及免費功能。包括支付
15.統計模塊:統計網站訪問量、評論量、等信息記錄網站的歷程
16.搜索:分佈式搜索實現對文章的搜索功能。
17.活動與招聘信息
18.吐槽與問答
19.網站數據備份與導入導出
20.數據字典管理
...
目前主流的技術架構採用先後端分離技術實現,在項目工程上來說,也應是分離的項目。每一個項目進行單獨開發。下面是本項目中全部的工程目錄。
4.1 版本一:
Java採用Spring Boot + Spring Cloud + Spring Data JPA 技術棧
後端項目地址:https://github.com/iquanzhan/vblog-spring-cloud
前端採用react技術棧
前端項目地址:https://github.com/iquanzhan/vblog-web-react
4.2 版本二:
Java採用Spring Boot + Dubbo + MyBatis 技術棧
後端項目地址:https://github.com/iquanzhan/vblog-dubbo
前端採用vue技術棧
前端項目地址:https://github.com/iquanzhan/vblog-web-vue
使用nginx+docker+k8s進行持續集成與發佈管理。
java採用jdk1.8
5.1開發工具
Java開發工具配置及優化
Java端採用IDEA進行開發:下載地址:https://www.jetbrains.com/
使用IDEA時有很多優質的插件,推薦安裝:
Grep console:支持自定義控制檯不一樣級別的日誌顏色
Free Mybatis plugin :根據Mapper類中方法名可直接跳轉到mapper.xml
MyBatis Log Plugin : 默認狀況下MyBatis顯示的腳本不是可執行的,這個插件就能夠直接將Mybatis執行的sql腳本
Alibaba Java Coding Guidelines :阿里巴巴代碼規範檢查插件
Lombok :利用註解的形式,省去get/set等方法
Gsonformat :能夠根據json快速生成java實體
Restfultookit :主要用於調試接口,能夠生成默認的數據,可根據Url快速找到對應的controller
JRebel :熱部署插件
GenerateAllSetter :new POJO類的時候快速生成set方法
若是其餘小夥伴有更好的插件推薦,歡迎提出哦~
前端開發工具配置及其優化
Java端採用VS Code進行開發:下載地址:https://code.visualstudio.com/
爲了便於開發VS Code也有很多優質的插件推薦:
Auto Close Tag:自動添加html的關閉標籤
Auto Rename Tag:修改標籤時,自動修改結束標籤的名字
Beautify :代碼美化格式化工具
Color Info :css中設置顏色時顯示色彩信息
ESLint :前端規範插件,能夠檢查語法錯誤
JavaScript (ES6) code snippets:ES6語法提示
Path Intellisense:輸入路徑後自動補全
vscode-element-helper:element UI庫的代碼提示
npm Intellisense:在導包時對依賴包進行提示
Reactjs code snippets:react代碼提示插件
React Redux ES6 Snippets :Redux代碼片斷工具
React-Native/React/Redux snippets for es6/es7 :react代碼片斷工具
Vetur :Vue多功能集成插件,包括:語法高亮,智能提示,emmet,錯誤提示,格式化,自動補全,debugger。vscode官方欽定Vue插件,Vue開發者必備
Bracket Pair Colorizer :給括號加上不一樣的顏色,便於區分不一樣的區塊,使用者能夠定義不一樣括號類型和不一樣顏色
歡迎更多志同道合的朋友一塊兒交流哦,歡迎star
GitHub:GitHub - iquanzhan/vblog: 微博客是一個旨在學習Java+前端技術的分佈式我的博客系統。除了會有web端、手機端以外還會有小程序端。「連接」
https://github.com/iquanzhan/vblog