CODING DevOps 线下沙龙回顾一:DevOps 代码质量实战

11 月 22 日,由 CODING 主办的 DevOps 技术沙龙系列「质量」专场在上海圆满结束。在活动现场,四位来自腾讯等知名企业的技术大咖们分享了研发质量与效能的实战经验,与观众们共同探讨如何采起有效手段以保证和提升软件质量。程序员

本期沙龙回顾为你们带来的,是来自腾讯云 CODING 布道师杨周的议题——《DevOps 代码质量实战》编程

问题:人愈来愈多,代码愈来愈乱

随着团队成员增多,每一个人在缩进、换行、空格以及大小写方面有不一样的习惯,致使代码愈来愈乱。代码风格问题尚且不致命,更严重的是这些问题:安全

  • Hard code:在代码中书写各类环境配置、连接、密钥,致使安全风险
  • 魔法数字(Magic Number):难以理解和维护
  • 代码行数过多:难以维护,违反面向对象的 SOLID 原则

很多业界大厂公布了代码规范,推荐你们直接采用,由于本身发明规范每每不够全面,很难服众。架构

代码规范不仅是缩进换行问题,经过强制约束圈复杂度、文件行数和方法行数,可促使你们按照面向对象的方式设计。ide

如何强制执行代码规范

有了代码规范,但怎么落地?是不少团队面临的问题。Lint 程序用来检查代码规范,各个语言(好比 Kotlin、Java、PHP)都有本身的规范和 Lint。函数

自动检查代码规范有三个时机:工具

  • IDE:最实时方便的,但须要全部人进行配置、某些 IDE 可能不支持
  • Git commit Hook:提交时,会调用命令行工具强制检查,优势是很是及时,然而存在可被删除的风险
  • 服务端:在 Git push 以后,在服务端进行检查,很可靠,但缺点是不够实时
    所以,建议同时使用这三种方式。

在代码检查以后,如何处理?老项目有成千上万处不规范,很显然不能一次清理干净,让全部人停下老项目去清理老代码并不现实,并且一次改动太多文件的风险也很高。所以建议使用增量检查,尤为是 Java 增量检查方案比较复杂,详情可识别下图二维码阅读 CODING 文档测试

服务端检查:建议使用持续集成(持续不断地把代码集成到主干,实现质量内建)。流程为:锁定 Git 主干,全部人开发功能拉取小分支,小分支提交后触发持续集成进行代码规范检查,经过以后再通知同事进行代码评审,经过这套流程来提升代码质量。CODING 持续集成兼容 Jenkins,图形化界面易上手,若是项目已经在用 Jenkins 可平滑迁移。网站

代码整洁了,但结果正确吗?

不少项目到最后面临的困境——没有人敢改老代码。好比开发人员会把已有函数如get() 复制一份再修改,变成了 get1()、get2(),这种作法致使项目逐渐溃烂。根源在于没有人知道修改老代码会不会致使其余地方调用出错。.net

在开发和测试分离的团队架构中,一个负责任的开发者在写了代码以后要自测,而后提测给测试人员。可是后期你们逐渐会变得不耐烦,从自测 10 种状况到 5 种状况,再到只测一种,最后到彻底不自测直接提测,全部的压力都慢慢转移到了测试人员身上。负责任的开发逐渐变成不负责任的开发,问题仍是出在机制上。

国外十几年前就开始这个方案:测试人员转岗学编程开发,仅保留少部分的人工测试。开发人员本身写测试代码,测试覆盖率不达标(好比 80%)则禁止合并。

开发人员如何对本身的代码有信心?不是靠聪明才智,由于人总会百密一疏,即便顶尖的程序员也可能会犯最初级的问题,所以本身写测试代码才是最可靠的方案,测试代码覆盖了多种边界状况,即便其余人来改写代码也无需担忧挂掉。

最晚何时开始自动化测试?

自动化测试很好,可是也面临困境:业务太忙,没有时间写测试代码。

从我的职业发展的角度,把手动操做 Postman 自测的时间用来写自动化测试代码,这样一来,本身的水平获得了提升,后续改代码的时候重测时间也获得了节省,再也不是一直堆业务代码,难以成长。

之前中国的大公司项目质量广泛十分糟糕,由于前 20 年是 2C 的红利期,你们在快速抢占市场,但如今到了守地盘的时候,这两年大公司开始重视代码质量问题,建议你们为这个机遇早作准备。

从公司角度,主要看时机。好比 2C 项目逐渐成熟,用户量变大,线上的故障损失已经大于多招开发人员的成本,或者随着项目功能逐渐增长,回归测试时间愈来愈长,若是一个网站一天上线屡次,一天把整个网站全部功能测过来是不实际的,所以自动化测试才能保障持续的高上线频率。而 ToB 项目初期出现了严重 bug 可能就要赔偿客户,所以初期就须要自动化测试。

代码质量评级标准:从下图中能够看到,“优”级别的代码质量标准圈复杂度最多容许 5,类行数不能超过 50,函数行数不能超过 10,测试覆盖率需达到 90%。CODING的合做伙伴优普丰提供了 CSD 认证培训,可以帮助开发者们达到相应的标准,可识别二维码了解详情。

那么本次的分享就到这里,你们能够前往 B 站观看演讲视频并获取完整 PPT,或者前往 CODING 了解更多。

相关文章
相关标签/搜索