企业开发项目流程记录

完整的企业开发项目思路

1. 需求分析

这是第一步,也是最重要的一步。

这一步到底在干嘛?

说白了就是先回答这几个问题:

  • 这个项目要解决什么问题?
  • 给谁用?
  • 用户能做什么操作?
  • 哪些功能必须有,哪些功能以后再做?

2. 设计

设计一般分两层:

  • 概要设计
  • 详细设计

2.1 概要设计

是什么?

概要设计关注的是:

系统整体怎么搭起来

它不纠结每一行代码怎么写,而是先看整体结构。


会设计什么?

比如一个用户中心系统,概要设计会考虑:

  • 系统分成哪些模块
  • 前后端怎么分工
  • 数据库存哪些表
  • 接口大概有哪些
  • 权限怎么控制
  • 文件存本地还是 OSS
  • 是否需要缓存
  • 是否拆成微服务

产出物

  • 系统架构图
  • 模块划分图
  • 数据流图
  • 接口清单
  • 库表初稿

2.2 详细设计

是什么?

详细设计就是把概要设计再往下拆,细到开发能直接按它写代码。

会设计什么?

还是拿用户中心举例:

数据库层面

会明确:

  • user 表有哪些字段
  • tag 表有哪些字段
  • user_tag 表是否需要
  • 字段类型是什么
  • 哪些字段建索引
  • 哪些字段唯一

接口层面

会明确:

  • /user/register
  • /user/login
  • /user/current
  • /tag/list

并且写清楚:

  • 请求参数
  • 返回参数
  • 异常情况
  • 权限要求

业务层面

会明确:

  • 注册时账号是否去重
  • 密码是否加密
  • 登录是否生成 token
  • 删除是否逻辑删除

产出物

  • 表设计文档
  • 接口文档
  • 时序图
  • 类图
  • 详细流程说明

3. 技术选型

这一步干嘛?

技术选型就是决定:

这个项目用什么技术栈来实现

后端

  • Spring Boot
  • Spring MVC
  • MyBatis / MyBatis-Plus
  • Redis
  • RabbitMQ
  • Elasticsearch

前端

  • Vue / React
  • Element Plus / Ant Design Vue
  • Axios

数据库

  • MySQL
  • PostgreSQL

部署

  • Linux
  • Nginx
  • Docker

4. 初始化 / 引入需要的技术

这一步在做什么?

技术选好了之后,就要把"工程骨架"搭起来。

也就是:

把项目跑起来,把基础环境准备好。


后端通常会做什么?

  • 新建 Spring Boot 项目
  • 配置 Maven / Gradle
  • 引入依赖
  • 配置 application.yml
  • 配置数据库连接
  • 配置 MyBatis / MyBatis-Plus
  • 配置日志
  • 配置统一返回类
  • 配置全局异常处理

前端通常会做什么?

  • 新建 Vue / React 项目
  • 配置路由
  • 配置请求封装
  • 配置 UI 框架
  • 配置环境变量
  • 配置跨域代理

5. 写 Demo

很多人会忽视这一步,但企业里其实很常见。

Demo 是什么?

Demo 就是:

先做一个小的验证版本,证明思路可行。


为什么要写 Demo?

因为有些东西你以为能做,实际上未必。

比如:

  • 某个插件到底能不能自动生成代码
  • 某个第三方登录能不能通
  • 模型服务能不能被 Java 调用
  • 文件上传到 OSS 是否可行
  • Redis 缓存策略是否合适

6. 写代码(实现业务逻辑)

这一步就是真正进入开发了。


一般开发顺序是什么?

标准顺序通常是:

1)数据库先落地

建表:

  • user
  • tag
  • detection
  • file

2)生成基础代码

  • Entity
  • Mapper
  • Service
  • Controller

3)实现核心功能

比如用户模块:

  • 注册
  • 登录
  • 查询当前用户
  • 退出登录

4)实现校验

  • 参数校验
  • 权限校验
  • 登录态校验

5)补业务细节

  • 密码加密
  • 逻辑删除
  • 分页查询
  • 条件搜索

7. 测试(单元测试)

这一步不是上线前随便点两下。


测试分很多层

1)开发自测

开发自己先测:

  • 接口能不能通
  • 参数错了会不会报错
  • 数据有没有写入数据库

2)单元测试

针对某个方法或某个类测试。

比如:

  • 注册逻辑是否正确
  • 密码校验是否正确
  • 标签查询方法返回值是否正确

3)集成测试

看多个模块连起来是否正常。

比如:

  • 登录后再查用户信息
  • 上传文件后再查询检测结果

4)测试同学做功能测试

测试会根据需求文档和测试用例来测边界情况。

8. 代码提交 / 代码评审

这一步是企业开发的关键习惯。


代码提交

一般是把代码提交到 Git:

  • commit
  • push
  • 提交 merge request / pull request

代码评审(Code Review)

别人会看你的代码有没有问题,比如:

  • 命名是否规范
  • 逻辑是否清晰
  • 是否有重复代码
  • 是否考虑异常处理
  • SQL 是否有性能问题
  • 是否有安全风险

9. 部署

代码写完、测试通过,不代表用户能用了。

还要部署到服务器上。


部署在做什么?

把本地代码和服务放到正式环境运行起来。


后端部署一般包括

  • 打 jar 包
  • 上传服务器
  • 配置 Java 环境
  • 配置数据库
  • 启动 Spring Boot
  • 配置端口
  • 配置日志目录

前端部署一般包括

  • 打包 dist
  • 放到 Nginx
  • 配置静态资源访问
  • 配置反向代理到后端接口

数据库部署

  • 建库建表
  • 导入初始化数据
  • 配置账号权限
  • 备份策略

10. 发布

部署完成还不算结束,真正对外可用才叫发布。


发布时会做什么?

  • 切正式配置
  • 检查接口是否可访问
  • 检查前端页面是否正常
  • 检查数据库是否正常
  • 检查日志
  • 观察用户反馈
  • 必要时回滚

发布之后也不是结束

企业里后面还有:

  • 线上监控
  • Bug 修复
  • 性能优化
  • 新需求迭代
  • 版本升级

所以项目不是"一次性做完",而是不断迭代。

相关推荐
独自破碎E2 小时前
前后端分离+微服务架构下的用户认证
java·面试·架构
hssfscv2 小时前
力扣练习训练2(java)——二叉树的中序遍历、对称二叉树、二叉树的最大深度、买卖股票的最佳时机
java·数据结构·算法
Byron__3 小时前
HashMap面试知识点
java·面试·hash
诺浅3 小时前
聊聊@DSTransactional的坑
java·多数据源·dstransavtional
菜鸟‍3 小时前
【后端项目】苍穹外卖day01-开发环境搭建
java·开发语言·spring boot
lzksword3 小时前
C++ Builder XE OpenDialog1打开多文件并显示xls与xlsx二种格式文件
java·前端·c++
青槿吖3 小时前
【保姆级教程】Spring事务控制通关指南:XML+注解双版本,避坑指南全奉上
xml·java·开发语言·数据库·sql·spring·mybatis
mygljx4 小时前
spring-ai 下载不了依赖spring-ai-openai-spring-boot-starter
java·人工智能·spring
jaysee-sjc4 小时前
【练习十二】Java实现年会红包雨小游戏
java·开发语言·算法·游戏·intellij-idea