综合面试题

基本信息:
姓名:
面试职位:
面试编号:
1、短剧系统中,一部短剧有多集(一对多关系),以下哪种表设计最合理?
2、数据库表 vs_dramas_video 中,category_ids 字段存储为 JSON 数组(如 [1,3,5]),要按分类 ID 筛选短剧,以下哪个 SQL 写法最合适?
3、用户通过 Header 传 token 进行接口鉴权,以下关于 Token 过期处理的说法,哪个最合理?
4、后台管理员删除一部短剧,系统采用软删除(设置 deletetime 字段)。查询短剧列表时,以下哪个做法正确?
5、UniApp 项目使用分包加载,以下说法错误的是?
6、设计一个"用户购买剧集"的 RESTful 接口,以下哪个设计最规范?
7、以下关于接口幂等性的说法,正确的是?
8、PHP 中使用数据库事务,以下代码存在什么问题?Db::startTrans();$user = Db::name("user")->where("id", $uid)->find();if ($user["coins"] < $price) { return json(["code"=>0, "msg"=>"余额不足"]); }Db::name("user")->where("id", $uid)->update(["coins" => $user["coins"] - $price]);Db::commit();
9、短剧系统中用户表使用 int 类型的时间戳存储 VIP 到期时间(vip_endtime),判断用户是否为 VIP,以下哪个写法最安全?
10、Vue 2 组件中,父组件向子组件传递数据用 props,子组件向父组件通信用什么?
11、以下关于 N+1 查询问题的描述,正确的是?
12、后台批量上架 500 部短剧,以下哪种实现方式最合理?
13、用户 VIP 已有月卡(到期时间 2026-04-01),又购买了年卡(365天),以下哪种权益叠加方式最合理?
14、以下哪个不是防止 SQL 注入的有效方法?
15、支付回调接口设计中,以下哪个做法是错误的?
16、用户用金币购买剧集时,为保证数据一致性和并发安全,以下哪些措施是必要的?
17、以下哪些是前端首屏加载优化的有效手段?
18、设计短剧排行榜功能(热播榜 Top 50,每小时更新),以下哪些技术方案是合理的?
19、以下关于 AI 辅助编码的说法,哪些是正确的?
20、后台批量操作 500 条数据时,其中 3 条失败了,以下哪些处理策略是合理的?
21、在 ThinkPHP 中,使用 Db::name("user")->where("id", $id)->find() 查询时,框架会自动进行参数化处理,可以防止 SQL 注入。
22、Vue 2 中,子组件可以直接修改父组件通过 props 传入的对象属性,且不会报错,所以这种做法是推荐的。
23、数据库中使用 int 时间戳存储时间,比使用 datetime 类型更节省存储空间,且不受时区影响。
24、使用 AI 工具生成代码时,只要提示词写得足够好,就不需要对生成的代码进行审查和测试。
25、在高并发场景下,先查询用户余额再扣减的"读-改-写"模式是安全的,因为数据库有事务保护。
27. 26、在 ThinkPHP 中,开启数据库事务的方法是 Db::______(),提交事务是 Db::______(),回滚事务是 Db::______()。
28. 27、Vue 2 中,子组件触发自定义事件通知父组件的方法是 this.______("事件名", 数据),父组件监听事件的写法是 ______:事件名="处理函数"(或简写 @事件名)。
29. 28、MySQL 中,防止 N+1 查询问题的常用方法是使用 ______ 查询将关联数据一次性查出,或使用 ORM 的 ______(eager loading / with)功能。
30. 29、RESTful API 中,获取资源列表用 ______ 方法,创建新资源用 ______ 方法,更新资源用 PUT 方法,删除资源用 ______ 方法。
31. 30、Redis 中最适合实现排行榜功能的数据结构是 ______(有序集合),添加成员的命令是 ZADD,获取排名前 N 的成员用 ______ 命令。
31、【AI 辅助编码】系统支持二级分销:用户 A 邀请用户 B,B 邀请用户 C。当 C 付费时,B 获得一级佣金,A 获得二级佣金。请使用任意 AI 工具生成佣金计算的核心函数,然后审查 AI 生成的代码,指出至少 3 个可能存在的问题并修正。(考察:AI 提示词能力、代码审查能力、金额计算安全意识)
32、【AI 辅助 Debug】线上反馈:部分用户购买 VIP 后,页面仍显示非 VIP,刷新后恢复正常。已知信息:后端购买接口返回成功;前端用 Vuex 管理状态,通过 vip_endtime > now 判断 VIP。请使用 AI 工具辅助分析可能原因,从 AI 给出的多个原因中判断最可能的是哪个,并给出代码级修复方案。(考察:AI 辅助排查能力、上下文组织能力、前后端联调经验)
34. 33、【AI 代码审查】请审查以下 AI 生成的用户签到领金币接口代码,找出至少 5 个问题并给出修正版本:public function signIn() ______ $yesterday = date("Y-m-d", strtotime("-1 day")); $yesterdaySigned = Db::name("sign_log")->where("user_id", $user_id)->where("date", $yesterday)->find(); $streak = $yesterdaySigned ? $user["sign_streak"] + 1 : 1; $coins = min($streak * 10, 100); Db::name("user")->where("id", $user_id)->update(["coins" => $user["coins"] + $coins, "sign_streak" => $streak]); Db::name("sign_log")->insert(["user_id" => $user_id, "date" => $today, "coins" => $coins, "streak" => $streak]); return json(["code" => 1, "msg" => "签到成功", "data" => ["coins" => $coins]]);}(提示:从安全、并发、事务、参数校验、时区等维度审查)
34、【AI 辅助架构设计】产品需求:短剧排行榜功能,支持热播榜/新剧榜/好评榜/付费榜,每种 Top 50,每小时更新,后台可手动调整排名,前端展示排名升降。请使用 AI 工具辅助设计技术方案,展示你的提示词和对 AI 方案的评估调整过程,最终给出:表结构 + 核心接口 + 缓存策略 + 定时任务设计。(考察:AI 辅助架构设计能力、提示词迭代能力、方案评估能力)
35、【场景设计】VIP 权益系统设计:系统有月卡/季卡/年卡,请设计 VIP 套餐表结构、购买流程(从下单到权益生效)、VIP 判断逻辑、权益叠加策略(已有月卡又买年卡怎么处理),以及支付回调延迟时用户状态的处理方案。
36、【场景设计】后台批量操作优化:运营需要批量上架 500 部短剧,目前前端循环调用单条接口导致很慢且超时。请从接口设计、数据库操作、前端体验、异常处理(部分失败)四个维度给出完整优化方案。
37、【编码题】请实现一个短剧列表分页查询接口(PHP/ThinkPHP 或任意语言),要求:支持分页(page, page_size)、按分类筛选(category_id,注意 category_ids 是 JSON 数组字段)、按状态筛选、按创建时间排序、返回总数和列表。请写出完整代码并说明关键设计决策。
38、【编码题】请实现用户用金币购买剧集的核心逻辑(PHP 或伪代码),要求:校验余额、防重复购买、使用事务、考虑并发安全(说明你选择的锁策略)。入参:user_id, video_id, episode_id。表:vs_user(coins), vs_dramas_video_order, vs_dramas_video_episodes(price)。
39、【编码题】请用 Vue 2 实现一个剧集选择组件 <episode-list>,接收 episodes 数组(每项有 id/name/is_free/price/is_purchased)和 currentId,免费集显示免费标签,已购显示已购标签,未购显示价格;点击未购集触发 @buy 事件,点击免费/已购集触发 @play 事件,当前播放集高亮。
40、【综合题】请描述你使用 AI 编码工具的完整工作流程:从拿到需求开始,你会怎么组织提示词?怎么审查 AI 输出?遇到 AI 生成的代码有问题时怎么迭代?你认为 AI 编码最大的风险是什么?你会怎么在团队中推广 AI 编码的最佳实践?
更多问卷 复制此问卷