莉莉丝25游戏工具开发一面

莉莉丝25游戏工具开发一面

本文作者:程序员小白条

本站地址:https://xbt.xiaobaitiao.top

面试时长在 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)作为排序依据。
  • 常用命令:ZADDZRANGEZREVRANGE

6. Redis 数据库和缓存一致性问题

回答建议

  • 常见策略:
    • 缓存失效模式:更新数据库后删除缓存。
    • 延迟双删:先删缓存,更新数据库,再删缓存。
    • 使用消息队列确保最终一致性。

7. Redis 限流

回答建议

  • 使用 INCREXPIRE 实现固定窗口限流。
  • 更精确的方案:滑动窗口限流(使用 ZSET 存储请求时间戳)。

8. 缓存击穿

回答建议

  • 问题:高并发请求同一个刚好过期的 key。
  • 解决方案:
    • 使用互斥锁(如 Redis 的 SETNX)防止多个请求同时重建缓存。
    • 永不过期策略:逻辑过期,后台异步更新。

9. 缓存雪崩

回答建议

  • 问题:大量缓存同时过期,导致请求直接打到数据库。
  • 解决方案:
    • 设置不同的过期时间(加随机值)。
    • 使用集群或分布式缓存避免单点故障。

10. 死锁

回答建议

  • 死锁条件:互斥、占有且等待、不可抢占、循环等待。
  • 预防:破坏其中一个条件,例如按顺序获取锁。

11. 分布式死锁

回答建议

  • 常见于分布式锁场景(如 Redis、ZooKeeper)。
  • 解决方案:
    • 设置锁的超时时间(如 Redis 的 SETNXEXPIRE)。
    • 使用 Redlock 等算法实现分布式锁。

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同名程序员小白条,主要口述面试经历和分享我认为的实用网站,会比面经讲的详细很多,以真实面试录音为主!公粽号:程序员落叶(全部面经和简历修改指南)

欢迎关注上方公粽号!感谢支持!一起进步,共勉!

#发面经攒人品#
全部评论

相关推荐

09-18 20:41
百度_Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务