莉莉丝25游戏工具开发一面
莉莉丝25游戏工具开发一面
本文作者:程序员小白条
面试时长在 30 分钟左右,好像是做插件 CI/CD 之类的~
没问计算机网络~
1. 简单的自我介绍
回答建议:简要介绍教育背景、工作经验、技术栈及感兴趣的方向,突出与工具开发、自动化相关的经验。
2. 共享屏幕看了下两个项目,介绍下是为什么要做,然后亮点功能的业务流程
回答建议:
- 选择两个与工具开发、自动化或插件相关的项目。
- 说明项目背景和解决的核心问题。
- 详细介绍亮点功能的业务流程,例如:
- 自动化构建/部署流程。
- 插件系统的设计与实现。
- 如何提升开发效率或减少人工干预。
3. TypeScript 原理实现,转 JS
回答建议:
- TypeScript 通过编译器(tsc)将 TS 代码转换为 JS 代码。
- 编译过程包括类型检查、语法转换(如将接口、泛型等转换为 JS 兼容形式)。
- 可以通过配置
tsconfig.json
控制编译目标(如 ES5、ES6)。
4. 前后端怎么部署的,怎么上线
回答建议:
- 前端:通常使用 Nginx 部署静态资源,可能涉及 CDN 加速。
- 后端:使用 Docker 容器化部署,结合 Kubernetes 或云服务(如 AWS、阿里云)进行管理。
- 上线流程:通过 CI/CD(如 Jenkins、GitLab CI)实现自动化构建、测试和部署。
5. Redis 排行榜,数据结构
回答建议:
- 使用 Redis 的
ZSET
(有序集合)实现排行榜。 - 成员作为 key,分数(score)作为排序依据。
- 常用命令:
ZADD
、ZRANGE
、ZREVRANGE
。
6. Redis 数据库和缓存一致性问题
回答建议:
- 常见策略:
- 缓存失效模式:更新数据库后删除缓存。
- 延迟双删:先删缓存,更新数据库,再删缓存。
- 使用消息队列确保最终一致性。
7. Redis 限流
回答建议:
- 使用
INCR
和EXPIRE
实现固定窗口限流。 - 更精确的方案:滑动窗口限流(使用
ZSET
存储请求时间戳)。
8. 缓存击穿
回答建议:
- 问题:高并发请求同一个刚好过期的 key。
- 解决方案:
- 使用互斥锁(如 Redis 的
SETNX
)防止多个请求同时重建缓存。 - 永不过期策略:逻辑过期,后台异步更新。
- 使用互斥锁(如 Redis 的
9. 缓存雪崩
回答建议:
- 问题:大量缓存同时过期,导致请求直接打到数据库。
- 解决方案:
- 设置不同的过期时间(加随机值)。
- 使用集群或分布式缓存避免单点故障。
10. 死锁
回答建议:
- 死锁条件:互斥、占有且等待、不可抢占、循环等待。
- 预防:破坏其中一个条件,例如按顺序获取锁。
11. 分布式死锁
回答建议:
- 常见于分布式锁场景(如 Redis、ZooKeeper)。
- 解决方案:
- 设置锁的超时时间(如 Redis 的
SETNX
加EXPIRE
)。 - 使用 Redlock 等算法实现分布式锁。
- 设置锁的超时时间(如 Redis 的
12. 信号量
回答建议:
- 用于控制同时访问特定资源的线程数量。
- 示例:Java 中的
Semaphore
,初始化时指定许可数量。
13. 信号量和互斥锁区别和联系
回答建议:
- 互斥锁(Mutex):用于互斥访问,一次只允许一个线程访问资源。
- 信号量(Semaphore):用于控制多个线程同时访问资源,可以指定并发数。
- 联系:互斥锁是信号量的一种特例(许可数为 1)。
14. 并发项目优化点
回答建议:
- 使用线程池避免频繁创建/销毁线程。
- 减少锁的粒度(如分段锁)。
- 无锁数据结构(如 CAS 操作)。
- 异步处理(如消息队列)。
15. SpringMVC 模型
回答建议:
- 核心组件:
DispatcherServlet
、控制器(Controller)、模型(Model)、视图(View)。 - 流程:请求由
DispatcherServlet
分发,控制器处理请求并返回模型与视图名。
16. 平时喜欢玩游戏吗?
回答建议:
- 如果喜欢,可以提及常玩的游戏类型(如 RPG、策略类),并简单说明游戏经历。
- 如果不常玩,可以表达对游戏开发的兴趣或学习态度。
17. 反问技术栈和业务,面试轮次
回答建议:
- 技术栈:可以询问团队常用的编程语言、框架、工具链(如 CI/CD 平台)。
- 业务:了解具体负责的工具或插件类型(如编辑器插件、自动化测试工具)。
- 面试轮次:确认后续面试流程及轮次安排。
程序员小白条的编程日记:https://xbt.xiaobaitiao.top/ (分享如何拿到腾讯实习 Offer 和多个中大厂的面试机会,大学经历、求职经历、职场工作、创作经历、生活日常、面经、技术分享、毕设项目指导)定期更新内容,成长打怪系列,分享从大一到大四的完整面经,更新好玩的,有趣的事!看完可冲中大厂!dy同名程序员小白条,主要口述面试经历和分享我认为的实用网站,会比面经讲的详细很多,以真实面试录音为主!公粽号:程序员落叶(全部面经和简历修改指南)
欢迎关注上方公粽号!感谢支持!一起进步,共勉!
#发面经攒人品#