以前,自己只是做一个普通开发人员,顶多通过 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