在开发早期进行分析和代码审查是一种流行的思维方式,但它应该“从左开始”,而不是在后期增加负担。
译自 Take the ‘Shift Left’ Approach a Step Further by ‘Starting Left’,作者 Manish Kapur。
如今的开发人员不能将速度和质量视为权衡取舍。在现代软件环境中,团队需要将这些需求视为紧密交织的舞蹈。“左移”理念是开发人员中流行的一种思维方式,它考虑到了在两者之间取得平衡的必要性。
这种方法敦促开发人员在软件开发生命周期 (SDLC) 的早期阶段将关键检查和防护措施(例如代码安全和质量分析)移至更早的阶段。它强调主动识别和缓解问题,在开发的早期阶段发现诸如错误、安全漏洞和性能问题等问题。
开发人员需要认真对待左移实践,以确保他们通过 SDLC 编写 干净的代码——一致、有意、适应性和负责任的代码。这是团队确保其交付的软件能够毫无问题地发挥作用,同时随着时间的推移保持弹性的最佳方式。然而,真正的成功来自于那些更进一步的人,他们拥抱“从一开始就左移”的理念,以防止问题的发生。
任何开发人员都应该努力编写可读、安全、模块化、干净且按预期运行的代码,不会造成任何问题。开发团队越依赖于他们在部署后修复问题的能力,这些补丁就越难实施,成本也越高。
基于有缺陷代码构建的软件可能会给公司带来巨大的经济损失,在发布时可能会 超过万亿美元。随着软件对我们日常生活各个方面的至关重要性,随着构建和部署的应用程序数量不断增加,这个数字只会不断增加。
因此,从一开始就保证代码质量和安全性至关重要,这样就不会出现任何疏漏。左移考虑到了这一点。它通过在 SLDC 的早期阶段引入代码测试和分析, 最大程度地降低了错误 和漏洞的风险,在问题累积并变得难以解决或甚至难以发现之前就将其解决。在早期推进测试活动使 DevOps 团队能够更频繁地向客户交付更高质量的软件。
作为一种实践,“左移”在当今的安全环境中需要更多的警惕。但大多数开发团队没有足够的精力(或时间)来正确地执行它——即使它应该是代码开发策略的内在组成部分。事实上,Linux 基金会在最近的一项 研究 中发现,近三分之一的开发人员不熟悉安全软件开发实践。“左移”——在开发过程的早期阶段执行分析和代码审查——是创建更好软件的流行思维方式。然而,这种思维方式应该是“从一开始就左移”,而不是仅仅在 SDLC 的后期阶段将负担强加给开发人员。
我们不能忽视 团队在开发过程中尽早进行测试和分析 的重要性。只有从一开始就快速发现问题,他们才能对他们部署的软件充满信心。在 软件开发中,“从一开始就左移”意味着从开发的最早阶段开始优先考虑代码质量和安全性,确保在潜在问题演变成代价高昂的问题之前将其解决。拥抱“从一开始就左移”的思维方式是团队提高信心和保证结果的最佳方式。当开发人员通过采用边写边清理的开发方法来优先编写干净的代码时,团队可以显著降低出现严重漏洞的风险,并节省时间,同时提高生产力。
这种“从一开始就左移”的思维方式不仅关注一种重视尽早且频繁测试的方法,还关注使用最佳工具来进行测试。公司需要为其开发团队配备他们了解、喜爱和信任的工具,不仅用于识别问题,还用于专注于修复最关键的问题,而不是陷入大量的或较小、临时的补丁中。 代码分析工具,例如 SonarLint、SonarQube 和 SonarCloud,在“从左开始”的主动方法中至关重要。它们允许开发人员从集成开发环境 (IDE) 和持续集成/持续部署 (CI/CD) 管道开始捕获代码质量和安全问题。它们不仅识别问题并防止其继续发展,而且从代码编写的那一刻起就这样做,帮助团队避免因大量需要解决的问题而陷入困境。
可靠的工具为开发人员提供了保证,确保他们有效地测试和生成干净的代码,从而提高其 软件质量,同时减少技术债务并简化开发人员 工作流程。拥有合适的工具还可以使开发人员能够及早发现问题,并有能力和动力去解决问题。
企业依赖软件,就像我们作为消费者一样,但软件的质量取决于其构建基础的代码质量。开发人员理解这一必要性,并已转向将向左移作为一种思维方式来实现它。然而,随着我们看到不良代码和技术债务的不断增长成本,团队必须更进一步,以确保其软件的安全、可行性和持久性。这意味着“从左开始”。
这是我们所处的数字化转型时代的一项必要措施。随着 AI 编码助手采用率的不断提高,并帮助开发人员比以往更快地编写更多代码,拥有最佳的“从左开始”实践是必不可少的。事实上,Gartner 分享了 63% 的组织现在正在试用、部署或已经部署了 AI 编码助手。
通过将这些 AI 编码助手和 Sonar 工具 结合使用,您可以完全拥抱“从左开始”,使代码质量成为软件开发生命周期的基础部分。这样做将使 开发人员能够使用这些工具来提高生产力,而不是导致错误和问题增多,这些错误和问题需要解决,进而导致倦怠。
通过在 SDLC 中的适当时间(从一开始)整合合适的工具,开发团队及其所在的组织将从发布安全且具有长期价值的软件中获益。