一面

自我介绍

我的项目相干

  • 应用 database/sql 和应用 gorm 的区别
  • 为什么要应用 redis 连接池

基础知识

  • 过程/线程/协程的区别
  • 面向对象的三大个性 (联合 Go 说说)
  • 如何限度 goroutine 并发数目:channel 或 WaitGroup

发问环节

  • Go 开发能够补充什么常识:
    • 高并发/分布式
    • 性能监控/性能优化
    • 单元测试/压力测试
    • 动静调试

二面

算法 (PS: 没有手撕,只讲思路)

  • LeetCode-104 二叉树的最大深度
  • LeetCode-110 均衡二叉树

基础知识

  • Go 高并发和分布式的特点
  • Go 如何查看性能:pprof
  • Go 如何进行调试:gdb/delve
  • Go 如何打印堆栈:runtime.Caller
  • 谈谈对 Web 框架的了解(联合 gin 说说)
  • Redis 的数据类型和底层实现
  • 谈谈对 Docker 容器的了解
  • Linux 的命名空间是什么
  • Linux 命令应用:
    • 查看过程:ps/top
    • 查看内存:free
    • 查看磁盘:df/du

发问环节

  • 对本次面试的评估:多去了解底层常识。
总结:侧重于 Go 工程治理的常识(可能和组里做平安无关),尽管没有通过第一次的面试也学到很多啦!