线上无小事,出现线上事故轻则影响用户体验,重则造成资损,这都是我们不愿意看到的现象。但又有一个著名的墨菲定律:可能出错的事,就一定会出错。那么我们应该如何减少错误、降低影响呢?

一、意识建设

1.1 质量重视

  • 明确需求:需求或UE评审阶段悬而未决的事情,及时找产品确认解决,保证不会有需求理解的偏差。避免开发联调时临时改逻辑,影响代码质量
  • 降低影响:公司重视线上 bug 是为了降低对线上用户的影响,提供更好的服务,因此遇到线上 bug,应该第一时间修复以及降低影响,遇到问题,寻求协助,大家都有义务协助其他同学解决线上 bug
  • 专项治理:定期排查 bug 集中的领域、子域、人员,进行专项治理
  • 经验学习:其他团队分享沉淀、质量文化助手

1.2 开发容错

  • 字段处理:对字段的处理要谨慎,做好特殊字段值的处理。对于数组、对象类型的字段尽量不要相信后端的接口定义,最好做对空值和 undefined 的处理
  • 编码习惯
    • 文件大小:限制单文件、单方法的代码行数
    • 代码注释:复杂逻辑多写一些注释或者记录在技术文档中,提升代码可读性便于问题排查和后续迭代
    • 规范命名:命名是代码的自描述,优秀的命名将减少注释量,甚至不需要注释
    • TS 约束:完善的 TS 类型约束
  • 迭代兼容
    • 对于迭代的需求,需考虑全面,比如老数据的兼容问题
    • 公共组件:兼容之前用法,改动后对于影响到的场景要全量回归,每种类型回归一种即可
    • 接口改动:新需求复用已有接口,需服务端提供接口出入参,并对当前所在环境做好自测

1.3 自测把关

  • 排期规划:理清需求点并与合作方确认疑问点,评估改动量和影响面,预留出回归测试时间。回归测试按照正常开发标准,showcase 时尽量多确认到一些交互细节
  • 自测 Check List:QA 测试 Case 留档,技术文档中列出本次开发所有的逻辑分支和特殊 Case(如精度等开发过程中觉得有风险的地方),自测完一条就中划线划掉,保证所有的逻辑都已自测
  • 共用逻辑改动(组件/util):梳理所有的调用方并与原开发同学确认影响面,统计不一样的调用类型,将每种类型自测,再同步到 QA 同学,避免漏测
  • 历史用例:对于修改已有功能,回归历史用例;领域负责人,要把之前的测试用例积累下来,形成文档,并整理对应测试场景的账号、流程整理等

二、流程建设

2.1 领域分工

  • 分工:明确领域第一负责人、第二负责人,尽量由熟悉领域的人修改代码,如果是不熟悉的人修改了代码,一定找负责人做代码质量把关
  • 积累:各领域的技术文档整理归档

2.2 方案评审

  • 对于复杂的需求,或者可能有质量隐患的需求,需要做方案评审,包含如何降低质量风险,暂时没有强制规定,个人主动发起评审

2.3 Code Review

  • CR 时机:

    • 提测前:保证修改后的代码进入 QA 环节
    • 上线前:修改代码一定重走涉及测试用例
  • 强制 CR 机制:
    • 主要负责人:业务模块负责人、公共函数/组件负责人、高危场景负责人
    • 核心、高危改动:公共函数/组件、高危场景

2.4 周会分析

  • 线下 bug 纳入统计,明确问题现状、趋势、分布等
  • 每周线上线下 Bug 统计分析

2.5 问题复盘

  • 线上 bug 彻底复盘,分析问题发生底层原因,形成可落地的改进机制,防止此类问题再次发生
  • 典型的线下 bug,个人主动分享,形成最佳实践,在组内推广

三、技术建设

3.1 架构改造

  • 微前端:子应用隔离,减小问题影响面和回归难度
  • 领域沉淀:完善领域模型与分层架构,降低代码耦合度,降低维护难度

3.2 监控报警

  • 接口返回值报警,比如 401、403、502
  • JS 错误报警,比如 SyntaxError、TypeError
  • 关键节点加埋点,比如文件下载后缀类型

3.3 自动化测试

  • 单元测试:公共组件和函数尽量覆盖,可以配合演示 demo,用例参考:https://github.com/umijs/umi-request/blob/master/test/util.test.js
  • UI 测试:尝试覆盖主流程,减轻回归成本
  • 主动放火:自动走查所有页面

3.4 主动反馈

  • 用户问题主动反馈,工单跟进
  • 主动反馈与 DOM 录屏、控制台信息相结合,便于复原现场信息

关于前端研发质量提升的建设思路相关推荐

  1. 10000+ 代码库、3000+ 研发人员大型保险集团的研发效能提升实践

    本文共计7354字,建议阅读时间:14~15分钟. ‍ 阅读本文你将获得: 1.金融行业研发效能提升的整体情况 2.金融行业研发效能提升的痛点: 3.研发效能提升实践过程经历: 4.研发效能提升系统方 ...

  2. Midway Serverless 2.0,一体化让前端研发再次提效

    简介:2021 年 3 月,Midway Serverless 推出了第二个大版本.就像两年前说的一样,开源只是开始,终态远没有到来.Midway 体系希望能够在当前的十字路口,不断向前演进,让前端可 ...

  3. Midway Serverless 发布 2.0,一体化让前端研发再次提效

    简介: 2021 年 3 月,Midway Serverless 推出了第二个大版本.就像两年前说的一样,开源只是开始,终态远没有到来.Midway 体系希望能够在当前的十字路口,不断向前演进,让前端 ...

  4. 字节跳动Dev Better技术沙龙成功举办,携手华泰分享Web研发效能提升经验

    2022年6月25日,第一期字节跳动Dev Better技术沙龙活动如期在线上举行,近3000位开发者同学参与到交流与活动中,直播点赞量过万. 字节跳动Dev Better技术沙龙是字节跳动基础架构- ...

  5. 深入前端研发效能治理:数据化运营思路及其实践

    简介: 数据中台前端研发无不让人厚重真实地感受到"唯一不变的是变化".拿集团的数据资产服务平台来说,业务上经过两年的发展,已由单一的数据管理和使用平台发展成了集团具有一定规模和影响 ...

  6. 前端团队研发效能提升的探索与实践

    读者受益 研发效能定义:知道研发效能是什么?(对「研发效能」的定义有一个经得起推敲的参考) 研发效能提升:知道如何提升技术团队的研发效能?(对提升自己所在团队研发效能有一些想法/灵感) 技术的价值:当 ...

  7. 「技术人生」第10篇:如何做研发效能提升(即指标体系建设过程回顾)

    01 背景 Aliware 纵观软件研发的发展历程,如果说"业务需求开发"是核心主线的话,那么研发效能建设就是这一核心主线之外最大的一条支线.每个历史阶段的研发效能所面对的主要矛盾 ...

  8. 建设一站式DevOps平台,腾讯云研发效能提升实践

    本文作者:张渝 导语 | 近年来,研发效能提升越来越受到业界重视,许多厂商都在不断探索研发效能提升之路,从而实现研发效率和质量的持续优化,以应对日趋复杂的产品开发.那么腾讯云的研发效能相关工作是如何开 ...

  9. 聊聊代码质量 - 《学得会,抄得走的提升前端代码质量方法》前言

    点击一键订阅<云荐大咖>专栏,获取官方推荐精品内容,学技术不迷路! <聊聊代码质量> 代码质量对公司和个人都很重要.但提升代码的方式有很多,在时间和资源有限的情况下,我们该做哪 ...

最新文章

  1. CSDN博客越来越垃圾了,到处放广告
  2. pytorch relu6
  3. IAR实际使用过程中遇到的问题
  4. 机器学习基石13-Hazard of Overfitting
  5. TCP/IP,HTTP,Socket的区别与联系
  6. 高效的半同步/半异步模式的实现
  7. python课设答辩问题及答案_HTML5网站前端开发设计答辩问题及答案
  8. SpringAOP 注解方式代码示例
  9. Oracle 归档开启切换和归档日志删除(单实例和RAC)
  10. JS来推断文本框内容改变事件
  11. c语言非标准输出电源适配器,五分钟了解设计模式(3)---适配器模式
  12. linux卸载jdk,安装jdk
  13. Qt使用flowlayout,使控件两端间距始终固定,垂直和水平间距相等
  14. java在线校验银行卡号_校验银行卡卡号
  15. android代码 灰色,一行代码实现界面全灰(android,web,flutter)
  16. 2020计算机专硕考数二的学校,2020考研备考:考研数一、数二、数三哪个最难?...
  17. vue-cli3.0 进行项目的部署和构建
  18. ubuntu18.04 搭建ffmpeg踩坑
  19. Firefox支持Websocket
  20. flex+php ria应用开发实战详解光盘,《Flex+PHPRIA应用开发实战详解-梁文新版》学习日记2...

热门文章

  1. 探索企业即时通讯软件的发展趋势
  2. 史上最牛的五次******
  3. 最新macOS Big Sur11.1新功能介绍
  4. WPS英文和数字会默认为中文字体原因
  5. SpringBoot+Mybatis+Elasticsearch 实现模糊分页查询并标记关键字
  6. 联想存储8GB缓存00MJ101大量现货做工精细
  7. python列表删除元素问题+指针问题进阶杂谈
  8. Java+spring+springmvc 基于ssm的师生防疫登记备案系统设计#毕业设计
  9. 清明节主题PPT模板
  10. 企业邮箱,孰优孰劣?