你实习中遇到最大的困难是什么?

很多次面试都被问到一个问题,你实习中遇到最大的困难是什么?

我都没有准备,或者再次准备。我说不知道“最大的困难是什么”,或是语焉不详地说解决了某某问题。

窃以为能够完成的任务都不算是最大的困难,我不屑于把某些问题夸大,但是这会导致我被认为“没有技术热情,没有深入思考问题”。过于谦虚会导致一个和素不相识的人真的觉得你是个菜狗。于是稍微撰写总结了一个期望是 Tell a good story 的非虚构小文,人的记忆是会说谎的,不确定细节是否有出入

在某厂实习的时候,接到一个极为紧急的需求。周一开了产品需求组会,任务并没有分配给我,只是先配置好了TRPC-GO的环境。

周二我没有工作可做,于是我主动地 问 mentor,有没有需求可以给我。这个需求十分地 trivial,也像是给实习生做的。目的是给一线的云服务客服员工提供必要的 API 接口,包括用户 uid,每月CDN、SCDN中流量的使用情况,根据 uid 返回其下所有的加速域名,根据域名查询 uid,统计所有的域名数量等,给了粗劣的请求与返回结果的格式。同时该接口需要使用到天机阁、Prometheus、Grafana、TRPC-GO,便于注意接口的运行情况。在周五之前要上线此 API。

然而在此之前,我没有使用过这些框架写过项目,战战兢兢地开始完成这个需求。

我给自己列了一个工作列表(Task List)

  1. 周二、周三下午之前:编写完该需求中提到的接口,功能正确。
  2. 周三下午至周四:接入天机阁和 Prometheus。
  3. 周四晚至周五:提交代码至仓库,通过 Pipeline 检查。

在新学习任意框架时,唯一能可信的参考通常就是官方文档。于是我跟着 Wiki 配置了 config.yml,也搜寻了其他人的文档、码客等网站。但是对于 MySQL 使用的协议,有的文档只写了一笔 trpc,我对此倒还深信不疑。我先尝试写了一个查询 MySQL 中所有记录的简单功能,但显示 MySQL 连接失败。

那么可能有几个问题:

  1. 我的 DevCloud 云主机没有权限访问此数据库。(和 mentor 确认完毕)
  2. 配置文件中的用户名、密码、IP、数据库名填写错误。(自行核对完毕)
  3. 配置文件中的协议选择错误。

因此原因就是 config.yml 文件中的协议应该是 TCP了。【面试官此处应该提问01】

之后完成接口是比较容易的事情,在此不表。接着就是通过 工蜂 Git 的 Pipeline 等检查了,在仓库里有 Dockerfile 指定环境来测试这个代码能否合并入 master 分支。

但是发现官方的构建机并没有更新到最新的 tlinux 版本,蓝盾方面的工程师表示暂时不会升级,像 ls 之类的命令都是缺失的。