个人终于参与完成了一个Java Web项目从需求提出到部署上线的全过程,虽然项目结构比较简单,但是走完全流程感觉还是挺有趣的,之后再做项目的时候就只是对各个环节的一些细化。

项目名称:kkb接单系统

开发文档:https://gitee.com/peng_2ni/kkb-parent-v2/wikis/Home?sort_id=4342815

源码地址:https://gitee.com/peng_2ni/kkb-parent-v2

一、准备阶段

开发工具:IDEA

开发环境:JDK1.8,MySQL,Redis,ELK-7.6.2,MongoDb,RabbitMq,Nginx

后端技术:Spring Cloud、Spring Cloud Alibaba、SpringBoot、Spring Security Oauth2、Mybatis-Plus、Redis、Jenkins等

前端技术:Vue、Vue-router、Vuex、Axios、iView、v-charts

部署环境:Docker(服务编排)

在此期间,完成了环境的搭建以及需求文档的编写,团队进行模块分工,统一接口等工作。

二、打码阶段

本次项目团队使用Apifox进行接口管理,相比于postman,个人感觉使用方便、操作简单、便于团队协作。

开发过程总结起来可以说很简单,1、写好开发文档;2、建好数据库;3、完成具体业务;4、实现技术优化。描述起来真的特别简单,而且基本都是这样的流程。

1、开发文档

各个小组根据负责的模块进行开发文档设计,包括接口的命名、数据库表的设计、数据库字段的命名等,并进行团队分享与改进。

2、数据库设计

在进行数据库设计的时候,参考阿里巴巴开发规范就行设计,每个表都需要设计id,createTime,updateTime字段,并且字段的命名需要见名知意,字段的类型与字段的范围大小都需要进行严格的设计,每个数据库的索引也必须谨慎的设计,数据库的设计最好在创建的时候就考虑谨慎,避免之后在开发中对数据库进行更改。

3、具体业务实现

具体业务的实现我们采用mp封装的api进行CRUD,使用lambda表达式的链式查询进行数据的操作,在项目开发初期自己手动实现sql,等熟练之后再使用api。在实现评论点赞的具体业务上采用布隆过滤器防止重复点赞。关于这个技术,也特地在网上参考了一些文档,对布隆过滤器有了一个简单的了解。采用spring提供的Spring Security Oauth2框架进行鉴权与授权。

4、技术优化

技术优化方向主要有:

(1)主从复制+多数据源+Redis缓存

(2)ELK实现日志系统

(3)Elasticsearch实现全局搜索项目

三、本地调试

在各组任务完成后提交代码,拉取代码到本地运行测试,在解决了若干个小问题之后,项目终于可以跑起来了,在这里需要特别感谢我们组的成员,提前将所有的坑都填好,写好解决方案分享给大家,使大家少走了很多的歪路。

四、项目总结

1、熟悉了大型项目开发部署的全过程;

2、丰富了自己的知识库,初次使用nacos注册中心、ELK等技术;

3、巩固了基础知识,通过查看团队成员代码学习其优秀之处,在自己的工作与学习中加以运用;

4、结识了一群技术大佬,跟着他们有学不完的宝贵经验;

5、在进行项目开发中遇到了许许多多的问题,在通过解决问题中不断积累,不断成长。

五、部署上线

目前项目刚做完技术优化,部署上线的任务也正在进行中,期待上线后的产品。