一面
自我介绍
项目相关
使用 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 工程管理的知识(可能和组里做安全有关),虽然没有通过第一次的面试也学到很多啦!
有疑问加站长微信联系(非本文作者))