技术债务填补与崩溃预防
@ 姜波 | 星期三,九月 15 日,2021 年 | 2 分钟阅读 | 更新于 星期三,九月 15 日,2021 年

技术债务填补

产生原因

  • 开发过程中因为时间紧迫导致的实现不合理
  • 暂时没有想到更好的实现方式而妥协的版本
  • 架构设计前期没有考虑到的细节
  • 不合理的交互设计,导致技术实现复杂
  • 旧功能文档缺失,无正确拓展、修改和兼容旧功能,导致上线后问题剧增

后果

  • 修复变重构
  • 小的技术债务不做偿还,最后会演变成一场大规模的重构工作,导致产出不高
  • 影响开发速度
  • 技术债务的存在导致整体开发需要兼容的点过多,影响开发效率,极大影响上线速度,导致整体项目迭代缓慢,失去核心竞争力
  • 容易陷入维护旧功能->开发新功能->兼容旧功能->维护旧功能->开发新功能的恶性循环

解决方案

  • 优秀的架构设计是基础
  • 必须能够有效处理当前需求可预见的情况,对于未知的、可能出现的特殊情况,很小的改动就能解决问题
  • 根据当前的业务,进行合理的项目拆分,尽量的代码解耦合
  • 必须有日志模块,操作日志、错误日志、业务日志等等
  • 良好的技术培训和传帮带能力
  • 让每一位开发者可以从更深一层次理解自己所需要实现的功能
  • 从最开始的代码规范、到熟悉业务、最后再到编写文档
  • 充分的技术方案可避免一部分技术债务的产生
  • 技术方案是充分理解需求之后所能产出的对需求理想的实现方式,必要性不言而喻
  • 不同工程师之间可以相互review
  • CodeReview是非常重要的,同时也是对自身的一个提高
  • 提升对修复技术债务重要性的认知
  • 工程师如果能预见一个债务可能导致的问题,自然愿意花时间去处理
  • 善于发现和定期处理一些技术债务
  • 勇于发现系统中的技术债务,让自己为系统负责

预防架构崩溃

  • 架构崩溃是严重的架构设计事故,也是需要预防的关键所在
  • 了解系统崩溃的产生
  • 日志记录,如:操作日志,错误日志,业务日志等
  • 用户行为抓取:争取在最新时间获取到用户操作链条
  • 解决存量问题:技术债务
  • 遏制新增:减少新增问题的概率
  • 对脏数据进行兜底和检验
  • 单元测试
  • 崩溃报警
  • 自动化测试
  • 更广的灰度触达
  • 性能优化体系

公众号

Image text

QQ

Image text

微信

Image text

微信打赏

Image text

社交链接