互联酒旅总结文档

一、项目架构

(1)采用nacos作为微服务工程的注册中心和配置中心。

(2)链路追踪采用skywalking(收集日志并且带有可视化界面)。

(3)Prometheus(普罗米修斯)实时存储事件,运维报警系统。

(4)nginx集群作为反向代理工具用于处理用户发起的http请求,也可以作为静态资源服务器。

(5)SpringCloud Gateway:nginx反向代理到网关,通过网关的动态路由找到对应的微服务工程。在这期间,与Ribbon(负载均衡)和Sentienl(熔断降级)配合使用。

(6)使用OAuth2.0登录认证。

(7)各个微服务之间采用OpenFeign远程调用。

(8)数据存储使用mysql和redis。

(9)ElasticSearch作为全文检索。

(10)文件的上传采用MinIo。

二、整理需求

首先熟悉了一下对标软件的使用流程以及项目需求,然后逐步分解需求,大概了解我们应该使用什么技术来解决。

三、数据库设计

根据阿里巴巴数据库设计规范来设计数据库的字段名、数据类型等。每一个字段都应该设置一个默认值并且做好相应的注解。主键使用bigint,创建和更新时间使用时间戳TimeStamp,标识字段使用tinyint。所有的删除都不应该为物理删除,应该为修改标识。同时也学习CHINER元数建模软件的使用。在数据库设计阶段就涉及到团队讨论了,因为每个人的想法和出发点都不一样,通过整体讨论和思想碰撞,得到一个最终的数据库版本。

四、接口设计

接口设计涉及到与前后端交互的问题了,这样就需要后端人员与前端人员做好沟通,确保进参和出参做好协同。在这次项目中学习了APIPOST软件的使用,这个软件支持团队协作开发。涉及接口的时候需要注意使用的请求类型:POST新增、PUT更新、GET查询、DELETE删除。

五、代码编写

(1)这次项目使用的是mybatis-plus技术栈。

(2)代码分层明确:service层(处理业务逻辑),controller层(返回正确业务结果),如果业务出现错误也是在service层处理(抛异常)。

(3)不要出现太多的if 和 else ,注意代码的可阅读性。

(4)mybatis-plus中使用LambdaQueryWrapper构造表达式,可以简化操作数据库的流程。

(5)在controller层的方法参数都要使用@NotNall,不要造成空指针异常。

六、项目收获

该项目是我学习JAVA以来的第一个完整项目,也是第一个与团队合作的项目。以前只是听说某种技术和工具在项目中怎么使用,这次亲身经历后感触更加深厚了。在项目这一个多月时间里,学习到以下内容:

(1)团队协作开发必备工具git使用。(拉取代码 -> 创建自己分支 -> 在自己分支开发 -> 上传到团队分支 -> 解决与队员的代码冲突)

(2)了解到Hutool工具类的使用,还需要大量的应用才能熟练。

(3)理解了全局异常的使用。

(4)一些中间件的使用:redis、minio的使用。minio自己写了一个demo可以做到图片的上传。redis缓存还需要多加练习,可以用在以后的项目中。

这个项目的技术栈很全面,在一个多月的时间里面不可能做到全部理解,这就需要我们在以后的工作和学习中有时间还是可以在回顾一下这个项目。最后感谢一起奋斗一个多月的小伙伴们。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值