共计 1955 个字符,预计需要花费 5 分钟才能阅读完成。
11 月 22 日,由 CODING 主办的 DevOps 技术沙龙系列「品质」专场 在上海圆满结束。在流动现场,四位来自腾讯等知名企业的技术大咖们分享了研发品质与效力的实战经验,与观众们独特探讨如何采取有效伎俩以保障和进步软件品质。
本期沙龙回顾为大家带来的,是来自腾讯云 CODING 布道师杨周的议题——《DevOps 代码品质实战》。
问题:人越来越多,代码越来越乱
随着团队成员增多,每个人在缩进、换行、空格以及大小写方面有不同的习惯,导致代码越来越乱。代码格调问题尚且不致命,更重大的是这些问题:
- Hard code:在代码中书写各种环境配置、链接、密钥,导致平安危险
- 魔法数字(Magic Number):难以了解和保护
- 代码行数过多:难以保护,违反面向对象的 SOLID 准则
不少业界大厂颁布了代码标准,举荐大家间接采纳,因为本人创造标准往往不够全面,很难服众。
代码标准不只是缩进换行问题,通过强制束缚圈复杂度、文件行数和办法行数,可促使大家依照面向对象的形式设计。
如何强制执行代码标准
有了代码标准,但怎么落地?是很多团队面临的问题。Lint 程序用来查看代码标准,各个语言(比方 Kotlin、Java、PHP)都有本人的标准和 Lint。
主动查看代码标准有三个机会:
- IDE:最实时不便的,但须要所有人进行配置、某些 IDE 可能不反对
- Git commit Hook:提交时,会调用命令行工具强制查看,长处是十分及时,然而存在可被删除的危险
- 服务端:在 Git push 之后,在服务端进行查看,很牢靠,但毛病是不够实时
因而,倡议同时应用这三种形式。
在代码查看之后,如何解决?老我的项目有成千上万处不标准,很显然不能一次清理洁净,让所有人停下老我的项目去清理老代码并不事实,而且一次改变太多文件的危险也很高。因而倡议应用增量查看,尤其是 Java 增量查看计划比较复杂,详情可 辨认下图二维码浏览 CODING 文档。
服务端查看:倡议应用继续集成(继续一直地把代码集成到骨干,实现品质内建)。流程为:锁定 Git 骨干,所有人开发性能拉取小分支,小分支提交后触发继续集成进行代码标准查看,通过之后再告诉共事进行代码评审,通过这套流程来进步代码品质。CODING 继续集成兼容 Jenkins,图形化界面易上手,如果我的项目曾经在用 Jenkins 可平滑迁徙。
代码整洁了,但后果正确吗?
很多我的项目到最初面临的窘境——没有人敢改老代码。比方开发人员会把已有函数如 get() 复制一份再批改,变成了 get1()、get2(),这种做法导致我的项目逐步溃烂。本源在于没有人晓得批改老代码会不会导致其余中央调用出错。
在开发和测试拆散的团队架构中,一个负责任的开发者在写了代码之后要自测,而后提测给测试人员。然而前期大家逐步会变得不耐烦,从自测 10 种状况到 5 种状况,再到只测一种,最初到齐全不自测间接提测,所有的压力都缓缓转移到了测试人员身上。负责任的开发逐步变成不负责任的开发,问题还是出在机制上。
国外十几年前就开始这个计划:测试人员转岗学编程开发,仅保留少部分的人工测试。开发人员本人写测试代码,测试覆盖率不达标(比方 80%)则禁止合并。
开发人员如何对本人的代码有信念?不是靠聪明才智,因为人总会百密一疏,即便顶尖的程序员也可能会犯最高级的问题,因而本人写测试代码才是最牢靠的计划,测试代码笼罩了多种边界状况,即便其他人来改写代码也无需放心挂掉。
最晚什么时候开始自动化测试?
自动化测试很好,然而也面临窘境:业务太忙,没有工夫写测试代码。
从集体职业倒退的角度,把手动操作 Postman 自测的工夫用来写自动化测试代码,这样一来,本人的程度失去了进步,后续改代码的时候重测工夫也失去了节俭,不再是始终堆业务代码,难以成长。
以前中国的大公司我的项目品质广泛非常蹩脚,因为前 20 年是 2C 的红利期,大家在疾速抢占市场,但当初到了守地盘的时候,这两年大公司开始器重代码品质问题,倡议大家为这个时机早做筹备。
从公司角度,次要看机会。比方 2C 我的项目逐步成熟,用户质变大,线上的故障损失曾经大于多招开发人员的老本,或者随着我的项目性能逐步减少,回归测试工夫越来越长,如果一个网站一天上线屡次,一天把整个网站所有性能测过去是不理论的,因而自动化测试能力保障继续的高上线频率。而 ToB 我的项目初期呈现了重大 bug 可能就要抵偿客户,因而初期就须要自动化测试。
代码品质评级规范:从下图中能够看到,“优”级别的代码质量标准圈复杂度最多容许 5,类行数不能超过 50,函数行数不能超过 10,测试覆盖率需达到 90%。CODING 的合作伙伴优普丰提供了 CSD 认证培训,可能帮忙开发者们达到相应的规范,可辨认二维码理解详情。
那么本次的分享就到这里,大家能够返回 B 站观看演讲视频并获取残缺 PPT,或者返回 CODING 理解更多。