【苍穹外卖】能力汇总

前言:本篇博客仅为记录笔者在学习苍穹外卖中的能力总结

1、业务分析能力

2、接口设计能力

2.1 处理时间格式
LocalDateTime相比Date类,提供了更加直观和易用的日期时间表示方式,同时也具有更好的性能和线程安全性。在Java 8及以后的版本中,建议优先使用LocalDateTime来处理日期和时间相关的需求。

[方式一] 使用@JsonFormat注解
在这里插入图片描述
[方式二](推荐使用,可以全局统一处理)
具体步骤:自定义配置类WebMvcConfiguration(配置类记得加上@Configuration),继承WebMvcConfigurationSupport类,重写extendMessageConverters()方法
在这里插入图片描述
JacksonObjectMapper为自定义类,继承ObjectMapper
在这里插入图片描述

2.2 处理公共字段
在我们设计数据库的表结构时,一般每张表都会有固定的几个字段,比如创建时间、创建人等,如果每张表的插入语句都手动去赋值,太笨重。大多数公司用的是mybatis-plus来简化开发,使用@TableField注解即可自动填充。其本质就是在利用AOP,对加了@TableField注解的字段进行赋值。

@TableField(fill= FieldFill.INSERT)  //新增时填充
private Date createTime;
@TableField(fill=FieldFill.INSERT_UPDATE) //新增和更新时填充
private Date updateTime;

2.3 频繁修改的字段
针对频繁修改的字段,可以优化到Redis中操作更加方便。比如设置店铺的营业状态,如果单独设计一张表来更新修改这个字段,会比较浪费。可以通过redis来优化。

3、编码规范能力

3.1 项目整体架构

在一家公司中,不需要重新搭建一个新项目,但要了解最基本的规范,如下是一个最为常见的项目架构:
在这里插入图片描述
常用模块:common模块
在这里插入图片描述

常用模块:pojo模块(Entity、DTO、VO都属于POJO)

在这里插入图片描述
pojo的使用样例:DTO接收前端参数,VO封装返回结果给前端
在这里插入图片描述
常用模块:server模块(常为三层架构,用来写业务代码)

在这里插入图片描述

3.2 优雅编写代码

针对同样类名的controller层,比如UserController这个类在项目中有两个,启动时spring会报错bean已存在,可以在@RestController注解上添加名称:
@RestController(”userShopController“)和@RestController(”adminShopController“)区分

4、文档阅读能力

5、代码调试能力

客户端每发起的一次请求都是一个单独的线程,即使是同一个用户发起的多个相同的请求,服务器也会为每个请求创建一个新的线程,确保请求的独立性和并发性。

6、其他能力(技术栈)

nginx代理过程如下图所示:路径中匹配到 /api/,就会对/api/其后面的uri进行剪切,拼接到反向代理的地址后面,完成我们真正的访问路径。

在这里插入图片描述
Redis五种常见类型:
hash:value是健值对的格式,适合存储对象,pojo
list:因为有序,所以像朋友圈点赞这样有序的,适合存储【可重复】
set:无序可以去重,适合朋友圈取交集,筛选共同好友【不可重复】
zset:可以计算分值,比如视频的推荐【不可重复】
在这里插入图片描述

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值