- 深入业务, 不只关注分配到的任务, 看看任务的上下游 关注下整体实现, 毕竟其他服务器的代码都有, 甚至还可以看公共服务的代码
- 从客户端数据进来到回包回去的流程, 确实可以看看
- 对整体有把握才能知道可以优化的地方.
- 性能压测, 编译优化
- KM, 对于某个需求点(如排行榜), 可以看看一个排行榜有多少种实现方式, 每种方法的坑.
- KM, 可以多看看极有可能发现预期之外的感兴趣的点, 一旦用到项目上直接UPUP.
算法
不喜欢这个方面还是算了, 有开源的不用白不用. 项目里的无锁队列一年半了也没认真看过.
工具侧
针对开发中遇到的问题, 对于能够自动化的想法提供自动化工具, 优化已有工具的体验.
优点
- 工具与工具之间独立性强, 很容易就能写出一个新的工具, 投入少见效快
- 对于新的工具, 每次处理的时候也算是能了解一点内容
缺点
- 后续需要进行工具的维护, 占用时间
- 工具就算写好了搭配上文档, 也会有人@你去处理, 占用时间, 重复操作比较麻烦.
- 难于出什么深度内容
做过的尝试
- GM工具优化: 这个一直在用, 属于是评价比较好的, 改动也不是很大, 主要是提高了效率.
- Wireshark抓包, 后台抓包工具: 前者运行在Windows机器无法支持解密, 也没法进行良好的操作和筛选. 后者运行在服务器, 支持解析. 最终都是没有太合适的应用场景, 没人用, 也就没维护了, 预期有更高级版本, 但是现在不想写工具.
- 服务器自动冒烟: 这个也是在用, 自动构建内网or外网的服务器, 发布服务器和配置. py脚本也不太熟练, 写的时候也比较折磨.
- 日志分析: 相对简单的脚本, 但是人要一直投入在上面. 就算有文档也会被@去处理. 后面尝试接入骏鹰来解决, 但感觉可能又要维护骏鹰.
体验
最近半年也算是没有写新的工具, 主要是维护自动冒烟, 日志分析(可能要负责维护骏鹰).
目前比较排斥写工具类的, 感觉没有学到太多的深度的东西, 写了之后就要负责维护和答疑甚至绑在上面操作.
服务器优化
优点
感觉比较高大上, 而且难点是找到问题在哪里
缺点
做起来太难了, 完全没这方面经验, 没有什么大的成果.
做过的尝试
Prometheus+Grafana提供的火焰图插件: 感觉这个也没什么深度的样子, 只做了一个火焰图的插件, 感觉虽然能看到 但还是找不到热点的优化方法, 不是很便宜大碗. 受限于采集频率
编译加速: 这个感觉还是挺爽的, 文件变更数量较少情况下, 编译速度大幅优化了. 但是没能做到进一步深入优化.
bpf: 这个最终甚至都没学完, 也是感觉无法落地.
服务器二进制包大小优化: 都是有损优化, 想无损的话还是没啥用途.
体验
高大上, 经验积累性质强, 成本高, 难于出成果.
业务仔
优点
培养代码的基本功
缺点
适量的话倒是没什么缺点
体验
一直在积累相关的经验, 最近半年整理的也发布出去了, 后面也打算继续整理和发布, 也算是正向的吧.
反正需求一直会有的, 这方面还是不太额外花时间了.
重构or架构优化
优点
缺点
- 这个更难了, 上面的优化章节还不需要对服务器有太多深入了解, 这里就需要找到问题, 并且有能力进行改动.