# 新兵作战指南(后端篇) > 拟稿:[黎润豪](/lirh)(个人博客) > >
版本号 1.0.0
> ## 目录 - [新兵作战指南(后端篇)](#%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) - [目录](#%E7%9B%AE%E5%BD%95) - [武器准备(ENV)](#%E6%AD%A6%E5%99%A8%E5%87%86%E5%A4%87env) - [JDK](#jdk) - [IDE](#ide) - [DB](#db) - [VCS](#vcs) - [Maven](#maven) - [配件准备(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) - [军规(规范)](#%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) - [文档规范](#%E6%96%87%E6%A1%A3%E8%A7%84%E8%8C%83) - [数据库规范](#%E6%95%B0%E6%8D%AE%E5%BA%93%E8%A7%84%E8%8C%83) - [行军(debug)](#%E8%A1%8C%E5%86%9Bdebug) - [上战场(部署)](#%E4%B8%8A%E6%88%98%E5%9C%BA%E9%83%A8%E7%BD%B2) - [全量打包部署](#%E5%85%A8%E9%87%8F%E6%89%93%E5%8C%85%E9%83%A8%E7%BD%B2) - [1、切换环境配置](#1%E5%88%87%E6%8D%A2%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE) - [2、 打包](#2-%E6%89%93%E5%8C%85) - [3、备份](#3%E5%A4%87%E4%BB%BD) - [4、部署](#4%E9%83%A8%E7%BD%B2) - [增量打包部署](#%E5%A2%9E%E9%87%8F%E6%89%93%E5%8C%85%E9%83%A8%E7%BD%B2) - [军情报告(日报,周报)](#%E5%86%9B%E6%83%85%E6%8A%A5%E5%91%8A%E6%97%A5%E6%8A%A5%E5%91%A8%E6%8A%A5) - [日报](#%E6%97%A5%E6%8A%A5) - [周报](#%E5%91%A8%E6%8A%A5) - [常见问题(Q&A)](#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98qa) ## 武器准备(ENV) ### JDK 目前公司JDK使用的是1.8版本的JDK。你可以选择使用oracleJDK,也可以使用其他OpenJDK,如:[adoptium](https://adoptium.net/releases.html?variant=openjdk8) ### IDE 目前公司不限制你使用什么IDE。你可以选择使用Eclipse,IDEA,甚至是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乌龟,可选用其他可视化工具) ### Maven 公司仓库配置请参考[maven-settings-demo.xml](../配置参考/maven-settings-demo.xml) ## 配件准备(plugin) 插件主要都是在IDEA下的。 ### 必要插件 #### lombok 用于生成实体getter,setter等方法的插件。IDEA直接在插件市场即可安装。如果是Eclipse,需要下载对应jar包后,使用管理员身份的命令行运行jar包进行安装。 #### checkstyle 公司2021年中旬后开始,开始限制代码规范风格。具体配置请下载同目录下的[checkstyle.xml](../配置参考/checkstyle.xml)文件。 #### MyBatisX 这是IDEA下的插件。公司的项目都是用了Mybatis,下载这个插件能方便开发。 ### 推荐插件 #### RestfulTool 一个spring mvc下的快速接口查找插件。 #### Maven Helper maven助手 #### Smart Tomcat IDEA社区版运行tomcat必装 #### SequenceDiagram 代码调用时序图生成器,方便快速查看方法的所有调用链路。 ## 军规(规范) ### 代码规范 推荐遵循[阿里官方Java开发手册代码规范](https://github.com/alibaba/p3c) ### 注释规范 [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包进行事先解压,将解压内容替换到配置的部署目录中。 ### 增量打包部署 [youfool-increpack-readme](../应用部署/youfool-increpack-readme.md) ## 军情报告(日报,周报) ### 日报 一般在入职后的第二周,项目经理就开始要求你写日报。日报通过企业微信的工作台的`汇报`-`日报`功能进行每日的工作,以及第二天的工作的汇报。 ### 周报 同样的,一般在入职后第二周或第三周开始,项目经理就开始要求你每周周五早上写周报。点击下载周报模版。 模版一般通过企业邮箱发送到自己的项目经理手上。这个具体要看你的项目经理的安排。 ## 常见问题(Q&A)