你这个单项目技术栈太全了,虽然我作为初级工程师都用过,但是看上去很像六边形战士,从web、rpc、到命令行工具、运维、测试全干完了,那些面试官肯定会问的很细,而且一看就知道是网上的项目。 首先一个"微"博客系统上K8S就有点不太实际,虽然也不是不行。 然后Gin+gRPC涉及到两种协议的沟通问题,你整个项目的架构得弄清楚,gRPC是拆的哪一部分业务为什么要把部分功能拆成gRPC。web框架各种中间件(限流、***、跨域、恢复...),rpc框架的熔断器、限流器之类的,不管是你自己封装的还是社区的都得把原理搞明白吧。 如果你说你微服务架构那我请问没有写etcd这些怎么做服务发现、配置中心这些呢?顶天是个SOA架构 Cobra+Viper是命令行工具的开发首选,既然写了那你应该懂kubectl这些经典开源项目的实现原理吧,毕竟很多岗位要求k8s二开。命令行工具这一部分打包出来的东西是独立于你博客或者集成到博客某一些业务的调用里面的,如果面试官懂cobra那肯定会问你写的什么工具做什么的,写这个一般都是运维方向的内容。 Testify+Gomock、pprof是测试方向的,这个项目的黑白盒/边界测试、压测、功性能测试你得讲明白吧。 SQLite+GORM有个大坑就是SQLite有个纯go版本和cgo版本,GORM依赖cgo版本SQLite驱动,这个在Windows下编译的环境特别特别难配,如果是我会问你环境怎么搭的或者为什么换linux环境下编译。 看你写了单例、工厂、代理三种go用的最多的设计模式,怎么用水平组合和垂直组合实现的?