public/技术规范/新兵作战指南(后端篇).md

157 lines
5.2 KiB
Markdown
Raw Normal View History

2021-12-15 16:33:26 +08:00
# 新兵作战指南(后端篇)
2021-12-16 17:52:27 +08:00
> 拟稿:[黎润豪](/lirh)<a href="https://blog.lroyia.top" target="_blank">(个人博客)</a>
2021-12-16 17:48:15 +08:00
>
> <div><font>版本号 1.0.0 </font></div>
>
2021-12-15 16:35:33 +08:00
## 目录
- [新兵作战指南(后端篇)](#%E6%96%B0%E5%85%B5%E4%BD%9C%E6%88%98%E6%8C%87%E5%8D%97%E5%90%8E%E7%AB%AF%E7%AF%87)
- [武器准备ENV](#%E6%AD%A6%E5%99%A8%E5%87%86%E5%A4%87env)
- [JDK](#jdk)
- [IDE](#ide)
- [DB](#db)
- [VCS](#vcs)
- [配件准备plugin](#%E9%85%8D%E4%BB%B6%E5%87%86%E5%A4%87plugin)
- [必要插件](#%E5%BF%85%E8%A6%81%E6%8F%92%E4%BB%B6)
- [lombok](#lombok)
- [checkstyle](#checkstyle)
- [MyBatisX](#mybatisx)
- [推荐插件](#%E6%8E%A8%E8%8D%90%E6%8F%92%E4%BB%B6)
- [RestfulTool](#restfultool)
- [Maven Helper](#maven-helper)
- [Smart Tomcat](#smart-tomcat)
- [SequenceDiagram](#sequencediagram)
2021-12-15 16:38:06 +08:00
- [军规(规范)](#%E5%86%9B%E8%A7%84%E8%A7%84%E8%8C%83)
- [代码规范](#%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83)
- [注释规范](#%E6%B3%A8%E9%87%8A%E8%A7%84%E8%8C%83)
- [常见问题](#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)
2021-12-15 16:35:33 +08:00
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
2021-12-15 16:33:26 +08:00
## 武器准备ENV
### JDK
目前公司JDK使用的是1.8版本的JDK。你可以选择使用oracleJDK也可以使用其他OpenJDK[adoptium](https://adoptium.net/releases.html?variant=openjdk8)
### IDE
目前公司不限制你使用什么IDE。你可以选择使用EclipseIDEA甚至是VSCODE。但要注意的是Eclipse默认情况下创建的文本是GBK格式IDEA默认使用的是UTF-8。在开发前需要注意修改IDE的默认编码避免发生文件需要重新转换编码的尴尬。在IDE的选用上笔者推荐使用IDEA社区版。
### DB
目前,公司大部分项目均使用[PostgreSQL简称PG](https://www.postgresql.org/)作为业务支撑。如非分派的项目组的项目不使用PG请提前下载12或以上版本的PG。
### VCS
目前公司已全面使用本平台Gitea进行版本控制。因此请读者准备好以下两件套
- [git](https://git-scm.com/)
- [TortoiseGit](https://tortoisegit.org/download/)git乌龟可选用其他可视化工具
2021-12-16 17:48:15 +08:00
### Maven
公司仓库配置请参考[maven-settings-demo.xml](../配置参考/maven-settings-demo.xml)
2021-12-15 16:33:26 +08:00
## 配件准备plugin
插件主要都是在IDEA下的。
### 必要插件
#### lombok
用于生成实体gettersetter等方法的插件。IDEA直接在插件市场即可安装。如果是Eclipse需要下载对应jar包后使用管理员身份的命令行运行jar包进行安装。
#### checkstyle
2021-12-16 17:48:15 +08:00
公司2021年中旬后开始开始限制代码规范风格。具体配置请下载同目录下的[checkstyle.xml](../配置参考/checkstyle.xml)文件。
2021-12-15 16:33:26 +08:00
#### MyBatisX
这是IDEA下的插件。公司的项目都是用了Mybatis下载这个插件能方便开发。
### 推荐插件
#### RestfulTool
一个spring mvc下的快速接口查找插件。
#### Maven Helper
maven助手
#### Smart Tomcat
IDEA社区版运行tomcat必装
#### SequenceDiagram
代码调用时序图生成器,方便快速查看方法的所有调用链路。
2021-12-15 16:35:33 +08:00
## 军规(规范)
2021-12-15 16:33:26 +08:00
2021-12-15 16:35:33 +08:00
### 代码规范
2021-12-15 16:33:26 +08:00
2021-12-16 17:48:15 +08:00
推荐遵循[阿里官方Java开发手册代码规范](https://github.com/alibaba/p3c)
2021-12-15 16:35:33 +08:00
### 注释规范
2021-12-15 16:33:26 +08:00
2021-12-16 17:48:15 +08:00
[Java文档注释规范倡议](../技术规范/Java文档注释规范倡议.md)
### 文档规范
[Markdown文档排版规范.md](../技术规范/Markdown文档排版规范.md)
### 数据库规范
[数据库设计规范_v1.0.4](../技术规范/数据库设计规范_v1.0.4.md)
## 行军debug
这是一个大佬阅读源码的[经验分享](https://www.bilibili.com/video/BV1sq4y1g7X1?t=3m57s)3分57秒开始讲debug技巧。
## 上战场(部署)
### 全量打包部署
#### 1、切换环境配置
> 打包前需确认环境配置(如数据源,外部接口)是否正确。切勿发生将测试环境接入正式环境,导致测试环境向正式环境写数据的情况出现。
> SpringBoot项目一般直接修改yml的引用即可![SpringBoot配置](../img/SpringBootConfig.jpg)
#### 2、 打包
> 打包前应先清理maven的class缓存。有时候因为调试过程中的一些编译报错等奇奇怪怪的原因导致maven的class缓存内容不是最新的class。为避免将错误的class文件打包应先对目录进行clean。
> ![打包](../img/ideaPackage.jpg)
> 命令行:`mvn clean | mvn package -Dmaven.test.skip=true`
#### 3、备份
部署前,需将服务器上的现有运行包复制到备份存储的文件夹。以便新部署的项目程序有问题的时候回滚操作。
#### 4、部署
部署情况有两种:
①部署目录就在`tomcat`的`webapp`目录下
>将[第二步](#2%E3%80%81%20%E6%89%93%E5%8C%85)打包后的war包改名至正确的上下文路径名然后将其放入`webapp`目录下重启tomcat即可。
②部署目录被配置到其他目录
> 将war包进行事先解压将解压内容替换到配置的部署目录中。
### 增量打包部署
## 军情报告(日报,周报)
### 日报
一般在入职后的第二周,项目经理就开始要求你写日报。
### 周报
2021-12-15 16:33:26 +08:00
2021-12-15 16:35:33 +08:00
## 常见问题