一面
自我介绍
项目相关
- 使用
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 的数据类型和底层实现
谈谈对 Dock