CodeOps:使用LLM和模块化编码加快开发进程

译文
运维 人工智能
本文介绍了我们如何利用生成式AI、通用应用程序结构和系统性代码重用,推动更快速、更创新地开发数字产品的工作。

译者 | 布加迪

审校 | 重楼

2009年,DevOps(开发运维)作为一种运维模型出现,适用于想要充分发挥敏捷软件开发方法潜力的团队。它使这些团队能够尽快地构建和部署,为快速、迭代的开发建立一新的范

随之而来的是全球软件开发的爆炸式增长,DevSecOpsMLOpsAIOpsDataOpsCloudOpsGitOps等相关框架层出不穷。任何工程职能或核心开发技术都有相应的运维框架和市场类别来加以优化。

既然市面上有这么多解决方案,为何企业仍难以将大量的“-Ops”策略转化为令人满意的速度和创新结果呢?随着组织不断适应不同的代码来源专有代码、开源代码和大语言模型即LLM生成的代码它们如何使这些模型适应不同来源的代码?

CodeOps(代码运维)应运而生,这种新兴方法使用完全拥有和可重用的代码快速构建软件产品。它利用生成式AI和模块化编码概念来加快开发过程,加强创新,并最终推动更快的数字产品开发。

CodeOps工作机理

与敏捷方法一样,CodeOps旨在支持并加速企业内部的软件开发。然而,它不是针对敏捷性进行优化,而是针对重用进行优化——重用规范、设计、架构、数据模型、集成以及代码本身。

长期以来,重用现有代码一直是工程师的一种自然做法。当应用程序在规划阶段看起来相似时,可以立即识别出一种合用的架构,并通过自动组装其核心部分来快速启动代码库。优秀的开发人员知道这一点,偶然重用他们自己开发的或在开源代码库中找到的代码组件。

然而,开发人员层面重用带来的影响完全依赖团队的成熟程度,通常没有流程或工具来确保它在整个组织中有效地扩展以提供好处。只有通过系统重用才能发挥这种潜力认证模块集中提供并且易于发现,用在参与应用程序开发的诸团队中。

因此,希望利用CodeOps概念的组织应该为范式转变做好准备。系统的代码重用是开发流程迈出的革命性一步。它需要创建一个集中存储库来容纳认证的模块,这些模块经过了必要的审查和广泛的测试,以确保功能和安全。目是创建一大批模块,可以无缝地部署不同的项目和团队中。

利用生成式AI确保投资回报最大化

CodeOps也很容易适应人机混合开发领域的新趋势。如今,大多数团队都了解生成式AI的潜力,可以充当伺机集成的智能助手。然而,他们不确定如何规划跟踪对业务结果的影响,并确保这方面的影响最大化

通过重构团队构建软件的方式,CodeOps解生成AI投资回报提供了一个框架。它确定大语言模型使用的优先级如下所示

1. 根据项目规范对现有模块进行组合

2. 创建与战略模块路线图一致的新模块

3. 为非模块化用例生成自定义代码

在模块组合方面,大语言模型已经达到或超过了人类的表现。模块组合是指这项任务:对照自定义的产品描述或详细规范,对已存储的模块目录进行模式匹配。这种方法可以显著地减少传统软件开发生命周期的“规划调校阶段,因此为不懂技术的利益相关者节省了时间,并缩短了总体开发时间。

大语言模型还非常适合根据自定义参数创建新模块。如果提示足够清晰,或者有足够的组织现有代码的训练集,它们就能够将团队现有的代码标准推广之,从而生成新的、可重用的规范和代码模块采用系统代码重用的组织因此可以根据内部代码标准快速填充其模块目录,与通过手创建模块相比,可以短的时间内大幅提高生产力。

最后,CodeOps很容易整合由不同开发人员生成的Copilot风格的AI代码。然而在CodeOps领域,这种用法局限于定制开发的最后一英里,这是初始模块组合未能涵盖的。这减少了团队今天面临的投资回报模糊性:一些开发人员频繁使用AI,一些却很少使用AI,但有了CodeOps,可以确定AI在代码库的哪些部分有望为团队提升生产力,然后相应地进行优化。

实战中的CodeOps

到重用代码模块,有两个主要参数需要考虑覆盖率和可重用性。覆盖率指典型应用程序中多少部分是由特定类型的模块组成的,而可重用性特定类型的模块在不同项目中可使用的可能性。

以下是理解覆盖率和可重用性的几个一般规则

模块层

示例

占典型应用程序

的百分比(覆盖率)

可重用性

基础设施

定义和部署

CI/CD管道

5%

连接到远程

服务

身份验证

20%

与基础服务

相关的应用

程序逻辑

身份验证

逻辑

20%

样式

乐高资产

5%

数据库模型

用户表

10%

屏幕布局

活动源UI

15%

与差异化功

能相关的应

用程序逻辑

产品推荐

算法

25%

值得一提的是,应用程序最大部分代码并不总是重用性最强的。这种区别可以帮助团队理解在致力于模块开发时如何做出正确的取舍。在CodeOps方法中,模块的构建应该首先根据可重用性而不是覆盖率来确定优先级,以确保实现价值最大化

了理解CodeOps如何影响某个项目,不妨考虑采用CodeOps不采用CodeOps的示例性的个人理财应用程序开发时间表

不采用系统重用

  • 项目工期28周
  • 项目
  • 需求分析2周
  • 设计:2
  • 编码
  1. 身份验证流程3周
  2. 支付处理集成4周
  3. 数据验证功能2周
  4. 报告功能:3
  5. 额外自定义功能6周
  • 测试和调试:4
  • 部署:2

采用系统重用CodeOps方法

项目工期:16周

项目

  • 需求分析1周重用规范
  • 设计1周重用设计
  • 编码
  1. 身份验证模块重用):1周集成和定制
  2. 支付处理模块重用):1集成和定制
  3. 数据验证模块重用):1周集成和定制
  4. 报告模块重用):1周集成和定制
  5. 额外自定义功能5周AI Copilot辅助)
  • 测试和调试3周由于重用认证模块,代码错误和不一致有所减少
  • 部署2周

值得注意的是CodeOps的整个周期影响。它在整个过程中的多个节点为多个团队提升了生产力,不需要这些团队大幅改动工作流程

系统性代码重用的好处

实施系统代码重用带来了几个明显的业务优势,包括如下:

  • 增强灵活性通过允许开发团队使用组织的代码访问预认证模块的存储库,他们可以定制代码,并创建完全符合独特业务需求的应用程序。
  • 保证一致性系统代码重用确保了应用程序之间具有一致性。多个团队使用相同的认证模块可以最大限度地减少不一致性,并降低遇到错误、安全漏洞或兼容问题的风险。
  • 快学习:有了系统代码重用,开发人员可以从团队成员和同事所做的工作中学习和完善。这创建了一个组织知识库,缩短了新团队成员的学习过程,并在组织内打造一种倡导协作和创新的文化。
  • 降低风险经过严格测试和认证的代码模块是成熟可靠的,降低了开发测试过程中或发布后出现关键安全或合规问题的可能性。
  • 致力于创新通过将开发团队从不断处理重复的任务中解放出来,系统代码重用鼓励他们将精力投入到令人兴奋的创新。他们可以分配更多的时间和资源,以构建独特和有价值的功能,而且结果更易于预测,同时缩短产品上市时间,以生成新的收入或节省成本。

一种更好的构建方式

最终,拥抱系统代码可重用性的CodeOps方法通过显著加快交付速度、提升生产力以及在竞争激烈的技术环境中促进创新和协作,彻底改变自定义应用程序开发。新产品的构建和创新技术有趣部分,这意味着利用CodeOps的组织不仅可以创造较之竞争对手的优势,还可以提升内部团队的生产力和士气。

原文标题:CodeOps: Using LLMs and modular coding to accelerate development,作者:Anand Kulkarni


责任编辑:华轩 来源: 51CTO
相关推荐

2011-01-11 13:40:44

webcssdiv

2019-09-02 10:51:59

Python脚本语言程序员

2019-08-28 16:18:39

JavaScriptJS前端

2010-08-02 09:10:36

Flex模块化

2017-02-13 18:46:38

Android模块化组件化

2019-01-30 14:04:57

Fedora存储库

2010-08-02 08:54:53

Flex模块化

2009-04-10 09:05:48

Windows 7微软操作系统

2013-08-20 18:39:34

JavaScript模requireJS

2017-04-10 14:23:01

typescriptjavascriptwebpack

2009-04-30 09:02:53

AcerAndroid开发

2013-08-20 18:18:55

CSS模块化Normalize.c

2014-04-22 10:19:40

objection模块化开发iOS

2015-12-04 10:09:55

Java 9模块化发布

2013-08-20 15:31:18

前端模块化

2017-05-18 10:23:55

模块化开发RequireJsJavascript

2020-09-17 10:30:21

前端模块化组件

2017-07-11 11:02:03

APP模块化架构

2020-09-18 09:02:32

前端模块化

2015-10-10 11:29:45

Java模块化系统初探
点赞
收藏

51CTO技术栈公众号