记录一次腾讯Go开发岗位面试经过 您所在的位置:网站首页 腾讯一般几次面试会被刷出来 记录一次腾讯Go开发岗位面试经过

记录一次腾讯Go开发岗位面试经过

2024-07-17 22:20| 来源: 网络整理| 查看: 265

这些问题看似没用,实则还是有用的,除了个别题目,大部分还是偏向实际应用可能会遇到的问题,简单捋一捋1,2 是让你对 GC 过程和机制有了解,结合 Go 的内存分配,在优化代码的时候就要注意 GC 的压力,尤其是早期 Go 版本,现在 GC 的损耗越来越小了

5 软件工程,最起码的常识

6 半连接是比较常见的攻击手段,一般加一层人工校验而不是完全依赖 TCP 协议就能解决,这块是在考量面试者对架构在安全方面的设计能力(有能力的人会直接从 TCP 三握里面推导出这个问题,有经验的人会知道有这个问题)

7 跟6相似,数据安全和传输的问题,TCP 自定协议栈的设计,考量面试者设计基本 TCP 服务协议的能力,在设计 TCP 协议时,就会遇到这个问题

8 数据库的,基础问题不用多说,起码要知道索引以及索引的类型和最左前缀原则,不然如何设计出符合 explain 预期的查询语句

9 处理请求安全的,还是校验,不管是非对称加密还是鉴权令牌桶还是布隆过滤器,毕竟对服务器开发来说,性能就是成本

10 不管是什么语言,只要是做服务器开发,做高并发的开发,锁 这个东西都是需要知道的,互斥锁,乐观锁,悲观锁,进阶一点自旋锁,分片锁,分布式锁等等

11 这属于开放问题,不管是从网络流量还是监控数据异常(CPU跳/进程/线程/协程完全卡死等),属于经验导向的问题,考量的还是面试者的是否有类似经验

12 基于传输层协议的应用层实现,这里只是举例了一个 rpc,也可以让你说说 HTTP 或者 FTP 或者什么流式传输的什么协议,还是考量面试者架构设计能力

13 了解可以,但没必要太深入,至于为什么,比如面试者不知道树的结构或者树反转的代价或者各种平衡树里面调整平衡的代价,又是一个只知道它性能好的半吊子,那就很有可能随意用这种树结构,从而写出比链表数组性能还要差的代码

14 涉及操作系统和 go 本身基于 epoll 实现的东西,还是考量面试者对 go 的 net 的设计是否熟悉,不过这个确实也没必要,除非对性能有非常扣的需求,才会去看 go 的 poll 如何搞,比如:go 自己基于 epoll 实现的网络轮询器 netpoll,它会把阻塞在 网络I/O 的 goroutine 挂载在网络轮询器上从而空出被占用的 M,那这时候如果你不知道有网络轮询或者多路复用,实现多协程/线程网络 I/O 异步的时候的思路就不一样了

我这么说可能有点马后炮的意思,但我从以往项目里面应用到的各种技术和可能的问题以及存在的问题,以及未来可能需要的技术提炼出来的知识点,就是这种看上去比较八股的东西

我也尝试过直接以经验导向而不是一个个问题导向去提问面试者,结果往往是面试者自己有过类似的经验,但场景一换很多时候自己就懵了



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有