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

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

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

相关推荐

11-28 23:44
已编辑
门头沟学院 前端工程师
回馈社区,楼主18号开题结束后开始投简历,此前两三个月一直在肝小论文,投了10份简历基本都给了面试,目前面了三场,如下:一、莉莉丝前端实习一面 凉经第一次面试,很多东西太久没看忘得差不多,我跟面试官小哥都绷不住了,被我菜无语了。1.自我介绍,然后聊了七八分钟,问为什么不做控制相关想学前端2.Monorepo的优势(没写简历上但是提到了,我这个贱嘴)3.zustand在组件外部使用,不能用勾子,应该怎么办(很基础但不会答)3.react什么情况下可以用勾子,随便一个ts文件就行吗(我为什么会觉得所有文件都是组件呢,我说定义在顶层就行)4.useEffect的参数有几个(贱嘴多提了一句清理函数,面试官问你对参数的定义是什么(绷)5.useEffect依赖数组改变是看值还是引用地址(感觉是浅比较但是又忘了浅比较的方法)6.如果我想改成只要值变就调用应该用什么方案(不会)7.看我连对象比较都弄不明白最后直接问了js个有哪些数据类型结束了总结:第一场面试倒是很放松,问题都很简单,回答成这样估计被莉莉丝拉黑了。十分后悔因为很喜欢这家公司,不应该第一份就投的。二、元戎启行 凉经疯狂复习一天来面,智驾独角兽,业务是开发3d标注工具相关,和我实验室干的活有些契合。感觉的出面试官想找代码写的溜能直接上手干活的。无js八股,都是写代码问问题或者自己补充代码, 没录音只记得这些1.usestate连续多次调用set会怎么样(因为闭包只生效一次),应该怎么解决(函数式更新或者useeffect),调用效果是同步还是异步(批处理,异步)2.State值是数组,写一下代码怎么逐个渲染其中内容3.面试官写了两个a,b两个组件,让写一下条件渲染的代码(&&或三元运算符都可以)4.手写to-do list总结:别老整这些纯实力的,哥们代码只会看不会写三、绿盟经过前两次面试和拓展性复盘,基本把之前的js和react基础拾起来了,自信来面。又没录上音,只记得这些,挺简单的。1.常见http方法2.UseEffect清理函数3.XSS是什么,怎么避免4.流式传输怎么实现的5.Redux和zustand的最大区别是什么6.防抖节流什么意思 用的场景7.心跳机制具体逻辑是什么8.Key什么场景下会设置 有什么要求9.TailWind相关 常用哪些10.Ts相关11.项目相关总结:说是过两天会通知hr面,oc的话应该会拒但是聊的挺开心的。从ssob投递到今天问了我好几次待遇有什么别的要求吗,感觉在北京180-200面试小哥自己都感觉少,我个人是无所谓的。总的总结:三场面试官人都不错,每次结束我都会感谢对方的耐心,心态就是练级呗,下周还有三四场面试希望能拿下一个。目前日常感觉不太缺人,从要简历到约面都是5天左右有点久还是。
查看23道真题和解析
点赞 评论 收藏
分享
评论
4
4
分享

创作者周榜

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