国庆项目训练营回放的时间轴及知识点分布(三、四天)
上一篇:国庆项目训练营回放的时间轴及知识点分布(前两天) (zsxq.com)
第三天:前后端协作,如何做好开发第一步
时间轴和知识点
00:00:00~00:02:09 介绍今天的主题(看回放的同学直接跳过)
00:02:09~00:04:21 总结和回答前两天的问题(看回放的同学直接跳过)
00:04:22~00:09:45 怎么做好前后端协作?
- 接口文档
- 大家一起参加需求评审,都知道要做什么事情
- 前端和后端分别考虑怎么实现这个需求
- 前端找后端要哪些接口?
- 后端数据库表怎么设计?提供给前端哪些接口?
- 本质上前后端对接依赖于接口文档
- 前后端对齐,确认了字段信息,接口信息,前后端并行开发
- 后端独立写接口
- 前端mock数据或者写死数据
00:09:45~00:15:14 点评大家的项目(看回放的同学直接跳过)
00:15:15~00:46:56 如何做好开发第一步
拿到新项目,搭建好demo之后,第一步要做哪些:
- 开发第一步:先把增删改查做好
- 字段规范以团队内部约定为准
以寻爱项目为例,讲解项目结构
- 简单逻辑可以按需放到controller层中,稍复杂的业务逻辑一定写到service层中(controller写接口,service写业务逻辑)
00:46:56~00:59:55 根据数据库设计如何快速开发增删改查
- mybatis-x插件生成代码,逻辑删除
- 创建 controller,生成增删改查接口
- 创建请求类DTO,方便前端
- 最好是编写单元测试
00:59:56~01:04:44 接口设计规范
- 自己定义开发规范
- 遵循业内的开发标准
- RESTful接口设计规范
- OpenAPI
01:04:45~01:27:37 前端部分讲解
- 前端目录结构
- 前端增删改查步骤讲解
- 前端开发经验分享
01:27:38~01:28:50(结束) 任务分配(看回放的同学直接跳过)
第四天:如何聪明地写代码
时间轴和知识点
00:00:00~00:03:10 介绍本次直播内容
- 原则:先做设计,再写代码
- 寻爱网项目功能具体设计+讲解
- 从设计到开发一个新的功能
00:03:11~00:52:15 寻爱网项目功能(点赞功能)具体设计+讲解
后端部分到00:48:29,之后是前端部分到00:52:15
- 需求分析:功能的一些需求上的限制,比如每个用户只能点赞一次等
- 方案设计:为什么要写:
- 便于开发
- 自己总结
- 明确依赖
- 更好地沉淀,给他人给团队做参考
- 流程设计要清晰、详细,后期实现和调试方便,提升开发效率
- 方案设计:业务流程,描述越详细越好,以点赞功能为例
- 基本流程
- 输入:接收请求参数:用户id、帖子id等,分析参数:尽量让用户传递最少的、最安全的参数
- 校验原则:”高性能校验原则“
- 优先校验不需要查数据库的、操作第三方资源的
- 参数校验
- 业务无关的校验:判断请求参数是否为null、id是否>0
- 业务相关的校验:帖子是否存在,帖子的状态是要能点赞的(比如必须审核通过)
- 权限校验
- 判断用户是否登录:获取当前用户信息
- 执行点赞操作
- 单独点赞表
- 1、用户是否已点赞:根据userId和postId查询点赞表,如果存在表示已点赞,否则未点赞
- 2、如果已点赞,执行【取消点赞】操作
- 从点赞表删除数据
- 帖子表点赞数量-1
- 两个操作要用事务(可以用事务注解),下同
- 3、如果未点赞,执行【点赞】操作
- 点赞表增加数据
- 帖子表点赞数量+1
- 返回一个能区分是点赞成功还是取消点赞成功的值,比如返回1、-1表示点赞成功、失败
- 除了基本流程,还要考虑
- 安全性
- 权限
- 幂等性
- 用户不能重复点赞/取消点赞,加锁保证幂等性(注意锁力度,给用户id加锁,注意加锁要是同一个对象,比如String.valueOf(xxx).intern())
- 性能
- Redis实现点赞-》提升接口性能,减少响应时长
- 存储
- 硬删除等
- 前端要做什么
- 请求后端接口
- 根据后端返回数据改变图标和帖子点赞数
00:52:15~00:54:30 测试根据什么测试?
- 测试左移:在需求分析阶段考虑要做哪些测试。
- 自动化测试
00:54:31~00:57:10 回答问题
- 加锁会影响性能,尽量减小锁的粒度
- 为什么要做详细地设计,特别是详细和流程?在设计方案找出问题成本是最低的,理清逻辑很重要
00:57:14~01:34:38(结束) 从设计到开发一个新的功能
切换 banner
- 需求分析
- 管理员在管理后台可以切换首页的 banner 图
- 切换方式
- 本地上传文件
- 上传图片地址
- 在线裁切
- 程序员关注:怎么实现方便
- 产品关注:用户怎么用方便
- 选用那种方式根据情况具体分析
- 没有最好的实现,只有最合适的。要灵活。
- 系统设计(以上传图片地址的实现方式为例)
- 图片的地址如何存储
- 存配置中心里
- 存数据库表里
- 本地文件/内存(不推荐)
- 库表设计
- 四件套
- 根据具体情况设计
- 避免上线对数据库的改动
- 表可以思考通用
- 尽量保证扩展性
- 跟着需求走,灵活一些
- 实现
- 后端提供给管理员的接口
- 前端提供页面
理性分析,不要到代码实现阶段再改来改去的
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
作者分享
字节跳动内推,火热招聘中~
4
#内推#字节跳动
大家好!我是东华24届校友,也是鱼皮的学弟,目前在字节跳动-抖音研发团队担任工程师。
字节跳动一直以创新和技术驱动为核心,抖音更是在全球范围内产生了巨大的影响力。如今,我们团队已经开启了 2025 年的秋招。
我所在的抖音研发团队,主要负责抖音短视频的业务和技术研发、相关产品的内容安全业务。截至2021年6月,抖音日活用户超6亿。
未来一年,抖音将更多关注对创作者和社会的价值。团队汇聚各种背景的优秀人才,在更大体量更为复杂的业务场景中不断提升。
如果你对字节跳动-抖音研发团队充满好奇和向往,欢迎加入我们,字节内推码:34XM35E,投递链接:https://job.toutiao.com/s/irq6Hx3M
5
阿里评估面(Java 后端)
14
面试官:来,说一说TCP中的滑动窗口
8
面试官:TCP协议的重传机制了解过吗?来讲一讲!
17
