Back End Daily Internship First Round Failure

·interview-experiences
#bybit

bybit-后端开发日常实习一面凉经

问题

  • 自我介绍

拷打实习

  • 介绍一下实习具体做的哪方面内容,后台方面主要参与了哪些模块

  • 有参与过比如索引、推送相关的工作吗,比如关键词对小说的索引

  • 你在检索小说时是直接通过数据库还是其他方式实现的

  • 那比如现在有一个数据量非常大,比如说几十万字的小说,那你是如何去存储的,如何去做检索

  • 你们的网文平台是 app 还是 web

  • 那是通过章节来加载还是通过用户每次翻动来加载固定量的内容呢

  • 那回到索引,除了数据库之外你有考虑过用其他方式去做索引吗,比如说现在有很多用户在同时索引,那你们的服务器能承担多大的负荷,这个你们之前有做过压测吗

  • 那用户在浏览时,web 是动态地加载数据,还是把这个数据用某种静态的方式比如 html 去给到前端呢

  • 我看你简历中写实习中还有用到排序,你这个排序具体是用在什么场景

  • 那你们这个最后的排序是有人工参与还是智能算法

  • 你这个排序是分不同的维度的项,比如不同的小说类型、阅读量之类的吗

  • 那你们是如何统计某本书是否属于热点书籍呢

  • 你们这个平台是用什么语言写的

拷打项目

  • 介绍一下你简历上的几个项目

  • 我刚刚听你有提到你对项目进行了 DDD 的重构,能解释一下 DDD 的概念吗

  • 那你是如何界定多个模块之间的领域边界的呢

  • 那假如现在我们有两个不同的领域,但是它们需要共用用户的数据,那你这时候该如何把用户的数据按照领域去拆分呢,你有遇到过这种情况吗

  • 你在这个项目中是把网关做成了适配器层吗,还是转发层

  • 你这个网关是业务网关还是流量网关

  • 那假如现在让你把这个项目做成一个高性能的服务,部署在各个国家各个地区的节点,那你会怎么设计这个系统

  • 你的游戏后端 server 这个项目有什么亮点吗

  • 刚刚你有提到你这个服务器是由用户上报事件,然后后端再下发到不同的客户端去进行实际运算,那这个上报的内容是什么,是一个数据写入的包,还是说是一个指令

  • 那如果这个数据是在端里面进行操作的,那你们是如何设计它避免被恶意的数据包篡改的呢

  • 那假如我是通过修改内存的方式,但上传数据包的过程还是端侧的逻辑去做处理,那这种情况你们有想过吗,比如如何识别异常的被篡改的数据

  • 你所说的热门数据指的是哪些

  • 你所说的数据对比是纯后端来做校验吗

主要围绕 go 语言问八股

  • 你有提到 go 语言中的多线程高并发的应用,那你主要的应用场景是什么,达到了什么样的目标呢

  • 在 go 语言中如何处理 panic

  • 那假如现在有一个协程异步执行了一个任务,他这个任务可能在协程的逻辑中抛出 panic,那这时候你会如何处理这个 panic

  • 那比如说我们在协程的代码逻辑里面发生了 panic 之后,有可能会导致我们的系统崩溃,那我该在哪个层面,比如是在协程的内侧,还是协程的外侧,如何去防止我们的系统因为产生了这个 panic 而崩溃呢

  • 那假如说我这个协程在执行完之后我的主进程已经停止了,就是已经执行完毕了,那这个时候你如何去 catch 这个协程里面的异常呢,你是通过什么方式,比如像用什么关键字

  • 那你还有什么更好的方法吗,比如我在程序层避免它崩掉

  • 你有用过 defer 这个关键字吗

  • 假如说我在 defer 里面处理了一个收尾逻辑,然后我在这个 defer 里面又嵌套了一个 defer,同时我在这个 defer 的最外层还有一个 defer,那这个时候这三个 defer 它们的执行顺序是什么样的,就是首先有一个 defer 里面写了一个 defer,然后我在这个外层的 defer 的下面还有一个同级的 defer

  • 那如果现在我们有两个 defer 它是并排的,第一个 defer 的逻辑里抛出了一个异常,或者是发生了一个 panic,那这个时候第二个 defer 还会执行吗

  • 我们经常会用到一些数组,在 go 中我们叫切片,那我用什么样的方式去分配内存,才能让内存损耗更小呢,就是内存效率更高

  • 我们在 go 里面经常会传一些参数,那我该如何确定这个参数传的是值还是指针呢

  • 那假如我们现在有一个切片,中括号后面通常跟的是数据类型对吧,那这个数据类型我可以把它定义成指针吗,你可以简单理解为就是,我们在一个切片里面能存储指针吗

  • 那简单来说我们应该用什么样的载体或者类型去定义指针呢

反问

  • bybit 是什么,我们日常开发的技术栈和日常的业务是什么

  • 远程办公具体的形式是什么样的,有没有上班时间的强制限制或者协作相关的

  • 假如有幸能入职,需要学习哪些知识来让自己更快更好地融入

反思总结

其实是 9.16 面的了,只是现在才发出来,九月底太动荡了发生了很多事,结束了一些事情,也开始了一些事情

现在把它整理之后发出来,也代表自己重新又开始对于八股和算法的学习啦

后面还有一篇虾皮的面经也会发出来,也是 SRE 运维岗;本来还有一篇面腾讯的微信客户端的面经,嗯这个我要纠结一下再决定要不要发出来

其实 bybit 这个公司我是第一次听说,在 boss 上的公司名字也不是这个,后面搜了一下才发现由于国内政策对比特币的限制所以一般都是以这种形式招人

远程办公真的很香啊啊啊,而且薪资一天也很高,我其实在面试的过程中前面面试官问我实习和项目的时候我都自认为答得还不错,只是最后 go 八股感觉被问得太细了,可能答得不太好,但归根结底还是自己的深度不够,面完之后问了一次 hr 结果说会跟进,但那次之后也就没有联系过我了,估计就是挂了然后不通知的那种

国庆假期快到尾声啦,我也借着这个假期好好休息了一下,九月实在是发生太多事情了,特别是九月底,对我整个人的情绪产生了极大的冲击,所以这么晚才把这篇面经整理出来

无论如何,过去的都过去啦,我也开始慢慢收心了,十月到十二月希望自己能好好学习,争取把技术基础打扎实,各个方面的

中秋快乐!

继续加油,无限进步~