本科毕业答辩:技术问题答不上来?没事,都能过
刚刚经历完本科毕业答辩,也算快正式毕业了。
前面那些繁琐的准备工作就不说了。最有意思的,是提问环节——也是最多同学关心的地方。
一般一个人答辩不超过20分钟:15分钟 PPT + 系统展示,最后5分钟提问。大部分人的课题都是基于 Spring Boot 的 XXX 系统,从这个背景出发,老师问的技术问题其实都很基础。如果你出去找过开发实习、真正面试过,这些问题,真的不难。
一、经典问题:库存扣减
很多同学会做电商系统,那就一定有库存扣减模块。老师就会问:“如果多个人同时下单,或者一个人同时发出多次请求,会出现什么问题?怎么解决?”
这就是经典的线程安全问题,核心就两个字:加锁。解决方案无非就是乐观锁、CAS+自旋,或者直接上 synchronized。反正毕业项目肯定是单体,别提什么分布式锁了,用不上。前端也可以做防抖,避免单个用户连点导致重复请求。
就这么基础的问题,很多同学答不上来,甚至没理解到点上。
二、技术选型:为什么你不用 MyBatis Plus?
主流的ORM框架是 MyBatis Plus。但有的同学用了 JPA,或者其他框架。老师就会疑惑:“你为什么不用 MyBatis Plus?”
因为正常搭配 Spring Boot 的ORM框架都是 MyBatis。SSM 框架里的 M 就是 MyBatis,Plus版本能更少写 SQL、更多操作对象。
这个问题怎么来的?大概率是这位同学的项目直接让 AI 生成的,没指定技术栈,AI 就默认选了个 JPA。别问我怎么知道的——byd我之前用 AI 初始化项目,它特么默认给我选的也是 JPA,很奇怪。我当场勒令 AI:“给我改回 MyBatis Plus。”(╯‵□′)╯︵┻━┻
三、写了什么技术,系统里必须有体现
如果你写了什么技术、什么功能,一定得在系统里体现出来。老师肯定会问。
比如你写了 Spring Cloud、Redis、MQ,或者 AI 相关的技术,你得知道:
- 这个技术在系统里哪里用到了?
- 它的原理是什么?
- 有什么优缺点?
- 这个功能的执行流程是怎样的?
我看见有位同学写了 AI 功能,老师就问:“AI 记忆系统怎么做的?向量数据库的嵌入和召回机制是什么?” ——这是真的会问的。
四、登录功能:JWT Token 是送分题
几乎所有同学都会介绍登录功能,大多数用 JWT Token。
老师问的问题也很基础: 刚开始可能会问系统安全性如何保证 , JWT TOKEN适合跨服务系统,为什么你单体项目用这个?然后老师可能发现答不上来就降低难度了,后面的同学就会问 Token 是干嘛的?Token 里包含什么信息? 都是很基础的问题。当然,这是对于找开发岗位的同学来说。很多同学可能并不干计算机这行,答不上来也很正常,本来就是混个毕业。
我们老师也说了:答不出来无所谓,无非就是分高分低的问题。 只要你不骑在老师头上拉屎,还问他要纸,大概率都能过。
编程导航里的同学就不祝答辩顺利了,你们就当顺手参加了个线下面试吧。^_^
