以前,自己只是做一個普通開發人員,頂多通過 pom.xml 文件能瞭解一些技術選型。但是,一個軟件工程項目,除了後端開發,還有前端開發,運維,測試....等各個相關人員的參與。無奈自己只能從自身角色看到一部分,而不能看清其整個全貌。所以,纔有了這個想法。好,以下是自己的一些技術選型構想。歡迎大夥積極補充、更正,也可把自己認爲適合選型的技術,寫在留言欄裏。
後端技術選型
- 編程語言:Java1.8
- Web容器:Tomcat
- 反向代理:Nginx
- 服務器:Linux
- 服務器引擎:Docker
- 數據庫:MySQL / Oracle + SQL + 數據庫事務 + H2(選)
- 持久層
- ORM:MyBatis + MyBatis Generator (MBG) / Spring Data JPA (Hibernate) + Pagehelper
- 數據庫連接池:HikariCP / Druid
- 分庫分表:MyCat
- 全文檢索:ElasticSearch / Solr
- 業務層:
- 事務:Spring-TX
- 緩存:Redis
- 消息隊列:RabbitMQ / ActiveMQ
- 容器:Spring / Spring Boot
- 分佈式:Spring Cloud / Dubbo + Zookeeper
- 定時調度:Spring QuartZ
- 日誌:Log4j
- API:Restful + Swagger
- Web層
- MVC:Spring MVC
- 安全: Spring Security
- 會話:Spring Session
- 校驗:Hibernate Validator
- 文件上傳:Common-FileUpload
- JSON:Jackson
- 視圖
- 模板:JSP + JSTL / FreeMarker / Thymeleaf + Bootstrap
- 校驗:jQuery.validate
- 開發工具
- 編碼工具:IntelliJ IDEA 2020.2.2
- 版本控制:Git + Gitee / GitHub
- 依賴管理:Maven
- 數據庫管理工具:Navicat / PL/SQL Developer
- 工具包:
- Common-Lang3
- Commons-Codec
- Common-IO
- Common-Collections
- Guava
- Lombok
- 單元測試:Junit + Spring Test