业务开发中的术与道

从事IT行业若干年,有时回首,不禁感叹,很多技术方案和日常生活息息相关,可以相互借鉴。

以下只是草稿,以后有缘再整理

以下每项并不是独立,而是相互重叠的

技术追求

  • 提升自身和团队的水平、服务架构合理性和性能的考虑、提高开发效率和体验

定时任务使用UDS作为触发运行的通知方式

  • 基于架构的完全性考虑:不暴露非本机触发的机会
  • 基于架构的合理性考虑:复用已有服务的逻辑和资源,无需新开进程
  • 具体实现看:谈谈定时任务的原理和应用 - 使用域信号通知通知服务

代码质量

使用代码扫描工具

  • 比如Java的Sonar、Golang的golint等

单元测试

  • 及时发现新代码逻辑问题,以及发现避免误改动等
  • 提交代码检查并及时阻断

代码Review

  • 上面的事项自动化,比如和gitlab pipeline结合,在开发阶段就及时修正;
  • 后续代码review可以避免审核低级问题,提高效率

开发效率

脚本工具

  • 开发快速生成curl脚本的工具,便于快速定位问题,以及反馈时提供复现实例;

代码复用

通用组件抽象

  • apollo灰度工具
  • bi数据上报组件
  • 消息通知组件

业务组件抽象

  • 目前都流行微服务,但有很多上游的逻辑是可以复用的,可以抽象出来,通过代码库的方式复用

服务稳定

灰度工具

  • 为保证改动一旦出问题,降低影响,开发基于配置中心的灰度工具,可以根据业务属性进行灰度

性能优化

  • 使用wrk、pprof等工具分析优化

文档化

常规事情文档化

复杂事情文档化