ChatGPT与软件架构(3) - 软件架构提示工程

news2024/11/28 14:34:01

高效利用ChatGPT辅助研发的关键是在研发生命周期的不同阶段采用对应提示获取有益的帮助。原文: Leveraging Prompt Engineering in Software Architecture with ChatGPT

软件架构开发生命周期转型。

Beth Smith @Unsplash
Beth Smith @Unsplash

简介

作为解决方案架构师,有必要掌握软件架构的最新进展。现阶段最受关注的前沿方法就是提示工程(prompt engineering),即利用GPT-4等AI模型根据给定提示生成输出。本文我们将深入探讨如何将提示工程应用于软件架构流程的不同阶段,并讨论在每个阶段最有效的提示类型。

优点总结:

  • 节约时间: 提示工程通过快速生成摘要、提取数据和提供有价值的见解来帮助解决方案架构师节省时间。
  • 提高质量: 利用AI生成的输出可以通过提供替代方案、识别瓶颈、输出最佳实践来提高架构设计质量。
  • 流水线开发(Streamlined development): 将提示工程集成到软件架构流程中,有助于促进流水线开发,确保各阶段的平滑过渡。
  • 优化性能: 通过生成重构建议、识别优化机会,有助于提高系统性能。
  • 适应性: 提示工程帮助架构师了解新兴技术,帮助他们设计出能够适应未来变化的系统。

需求收集与分析

需求收集和分析阶段的主要目标是清楚理解利益相关方的需求和期望,通过使用提示工程,解决方案架构师可以:

  • 为长文档或对话生成摘要。
  • 将非结构化信息转换为结构化格式。
  • 识别缺失的或矛盾的需求。

使用的提示类型:

  • 摘要提示:"总结以下文档,不要超过200个词。"
  • 数据提取提示:"从下面的对话中提取主要需求。"
  • 矛盾检测提示:"识别给定需求集合中的任何矛盾。"

架构设计

解决方案架构师在体系架构设计期间创建系统架构和组件的高级蓝图,提示工程可用于:

  • 根据给定需求生成备选设计方案。
  • 比较不同的体系架构模式。
  • 确定体系架构中的潜在瓶颈或问题。

使用的提示类型:

  • 设计建议提示:"基于以下要求,提出三种不同的架构设计。"
  • 模式比较提示:"比较微服务和单体架构模式。"
  • 瓶颈识别提示:"识别架构中的潜在性能瓶颈。"

实现

在实现阶段,架构设计被转换为代码,提示工程可以通过以下方式为开发人员提供支持:

  • 根据架构设计生成代码片段或伪代码。
  • 为库或框架选型提供建议。
  • 推荐编码标准和风格的最佳实践。

使用的提示类型:

  • 代码生成提示:"生成用于实现以下架构组件的Python代码片段。"
  • 库推荐提示:"推荐适合实现以下特性的JavaScript库。"
  • 最佳实践提示:"推荐在Java中实现RESTful API的最佳实践。"

测试与验证

在测试和验证阶段,系统根据其需求进行验证,提示工程可以通过以下方式提供帮助:

  • 根据系统需求生成测试用例或场景。
  • 识别可能导致问题的潜在边缘情况。
  • 提供关于测试方法和工具的指导。

使用的提示类型:

  • 测试用例生成提示:"生成五个测试用例来验证以下需求。"
  • 边缘情况识别提示:"为以下系统组件识别潜在的边缘情况。"
  • 测试方法提示:"为分布式系统推荐合适的测试方法。"

部署与持续集成

在部署和持续集成阶段,系统被发布并与其他组件进行集成,提示工程可用于:

  • 生成部署脚本或配置文件。
  • 提供有关部署策略和最佳实践的指导。
  • 提供有关监控和日志记录的见解。

使用的提示类型:

  • 部署脚本生成提示:"生成用于部署以下应用程序的Dockerfile。""
  • 部署策略提示:"解释蓝绿部署与滚动部署的优缺点。"
  • 监控和日志提示:"推荐在微服务架构中监控和日志的最佳实践。"

维护与演进

在维护和发展阶段,系统根据用户反馈和不断变化的需求不断改进和更新,提示工程可以通过以下方式提供帮助:

  • 生成重构或改进现有代码的建议。
  • 确定潜在的优化或性能改进点。
  • 提供对新兴技术及其对系统潜在影响的见解。

使用的提示类型:

  • 重构建议提示:"建议对以下代码片段进行改进,以获得更好的可维护性。"
  • 优化识别提示:"识别以下系统组件中潜在的性能优化点。"
  • 新兴技术提示:"讨论边缘计算对当前系统架构的潜在影响。"

提示工程提供了一种通用且强大的方法来增强软件体系架构流程,将其好处扩展到设计阶段之外。通过整合不同阶段AI生成的输出,解决方案架构师可以简化开发过程,优化系统性能,并确保解决方案能够适应未来的变化。成功的关键在于尝试各种提示类型,并利用AI的能力在每一阶段提供有价值的见解和支持。

解决方案架构师可以让设计更快、更高效、更适应未来的变化。通过利用AI生成的提示,架构师可以提高生产力,更有效的协作,并提供满足用户需求的高质量设计。提示工程是释放解决方案架构全部潜力并彻底改变软件构建方式的关键。


你好,我是俞凡,在Motorola做过研发,现在在Mavenir做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。微信公众号:DeepNoMind

- END -

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/607482.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【分布式架构】资源与事务:可观测性的基本二重性

西格曼:我叫本西格曼。我是Lightstep的联合创始人兼首席执行官。我在这里讨论的是资源和事务,这是可观察性的一个基本的二元性。我职业生涯的大部分时间都在研究可观察性。在我职业生涯之初,我在谷歌工作了九年,致力于谷歌的分布式…

SLAM实战项目(1) — ORB-SLAM2稠密地图重建

目录 1 整体思路 2 功能实现 3 结果运行 (1) TUM数据集下载 (2) associate.py用于RGB和Depth匹配 (3) 运行数据集 4 CMakeLists.txt文件修改 5 完整PointCloudMapping.h和PointCloudMapping.cc 6 报错分析 7 思考扩展 文章参考部分开源代码和报错文章 1 整体思路 利…

【微信小程序开发】第 3 节 - 安装开发者工具

欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行。动静不失其时,其道光明。 目录 1、缘起 2、微信开发者工具 3、下载 4、安装 5、扫码登录 6、设置外观和代理 7、总结 1、缘起 开发微信小程序从大的方…

吊打面试官的16000字JVM专属秘籍,又一个Java面试神器!终于可在简历写上精通JVM了!

前言 吊打面试官的16000字JVM专属秘籍,总共包含三部分的内容,从基础到进阶带大家一步步深入理解JVM! 学完就可以在简历上面直接写上精通JVM! 因为篇幅限制这里只给大家做简单的一个介绍,也就是进行一个大点的梳理&a…

记录--手把手教你Vue+ECharts+高德地图API实现天气预报数据可视化

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 所谓数据可视化,我们可以理解为从宏观角度来看一眼就能看出来整个数据的占比,走向。对于数据可视化,很多互联网公司是很看重这一块的,包括大厂&…

基于wireshark打造安全分析师工具--解析suricata中的分析结果

从本篇文章开始,我将通过若干篇文章陆续介绍在实际安全运营的过程中,基于wireshark打造安全分析师趁手的流量威胁分析工具,帮助安全分析人员在面对网络数据包取证和分析时候达到事半功倍的效果。本篇文件介绍使用在使用iwreshark分析数据包事…

21天学会C++:Day7----auto关键字

CSDN的uu们,大家好。这里是C入门的第七讲。 座右铭:前路坎坷,披荆斩棘,扶摇直上。 博客主页: 姬如祎 收录专栏:C专题 目录 1. 知识引入 2. auto的使用 2.1 auto与指针和引用结合起来使用 2.2 在同一…

区分序列/UIO/特征集示例

区分序列/UIO/特征集示例 从确定性有限状态机进行测试:检查状态 概述 让我们假设我们有一个状态集 S 的 FSM M。还假设我们知道通过转换 t 达到的当前状态是 s 或 s0。 我们如何确定 t 到达了哪个状态? 分离状态 输入序列 w 将两个状态 s 和 s0 分开&…

C++进阶之继承

文章目录 前言一、继承的概念及定义1.继承概念2.继承格式与访问限定符3.继承基类与派生类的访问关系变化4.总结 二、基类和派生类对象赋值转换基本概念与规则 三、继承中的作用域四、派生类的默认成员函数五、继承与友元六、继承与静态成员六、复杂的菱形继承及菱形虚拟继承七、…

图论试题2020

n-m 2 16 Pk(Kn)k(k-1)…(k-n1)。 C:A2对角线元素aii2等于对应顶点vi的度数,所以对角线元素之和等于边数的两倍。 A的所有特征值的平方和等于A2的对角线元素之和。 B 完全图没有顶点隔,实际上也只有以完全图为生成子图的图没有顶点隔。 连通…

Qt6 C++基础入门1 定时器与QTimer

定时器 定时器图片流水灯案例 实现效果:构建一个界面,点击开始按钮轮流播放文件夹下图片,点击停止按钮停止播放 构建页面,上部是一个没有内容的 label 下面是开始和暂停按钮,各自的名称分别为 startBtn 和 stopBtn 先保…

6.事件绑定

目录 1 事件对象的属性 2 事件绑定方式 3 在事件中赋值 4 事件传参 1 事件对象的属性 target是触发该事件源头的组件,currentTarget是当前事件所绑定的组件,比如现在有一个父组件包着子组件,你给父组件绑定事件,由于事件…

ps磨皮插件专用智能磨皮插件Portraiture4

Portraiture是一款智能磨皮插件,为Photoshop和Lightroom添加一键磨皮美化功能,快速对照片中皮肤、头发、眉毛等部位进行美化,无需手动调整,大大提高P图效率。全新4版本,升级AI算法,并独家支持多人及全身模式…

从0到1深入剖析微服务架构,阿里人十年经验浓缩成一份笔记

前言 数字化经济的快速发展和云计算给底层IT系统带来的巨大变革正是当下微服务架构快速发展的时代背景。Gartner预计,从2018年到2022年,PaaS将成为未来的主流平台交付模式,而PaaS平台需要更加灵活的云原生应用架构做技术支撑,微服…

图论与算法(3)图的深度优先遍历

1. 遍历的意义 1.1 图的遍历 图的遍历是指按照一定规则访问图中的所有顶点,以便获取图的信息或执行特定操作。常见的图遍历算法包括深度优先搜索(DFS)和广度优先搜索(BFS)。 深度优先搜索(DFS&#xff0…

UART串口通信实验

不管是单片机开发还是嵌入式 Linux 开发,串口都是最常用到的外设。 可以通过串口将开发板与电脑相连,然后在电脑上通过串口调试助手来调试程序。 还有很多模块,比如蓝牙、GPS、GPRS等都使用串口与主控进行通信。 UART简介 串口全称串行接口…

vb6 Webview2微软Edge Chromium内核执行JS取网页数据测速

微软Edge Chromium内核执行JS获取网页数据测试 ExcuteScript eval(document.body.innerHTML) from : https://www.163.com 采集的网页HTM字符串占用字节空间1.2MB ExcuteScript回调事件中取得JS执行结果,用时 54 毫秒 其中JSON转字符13.5209毫秒 jSON数据长度: 增…

ChatGPT更新说明(20230524)

原文传送门:ChatGPT — Release Notes 更新说明(5月24日) 简要:iOS应用在更多国家可用,Alpha测试中的共享链接,Bing插件,iOS上的历史记录禁用 ChatGPT iOS应用在更多国家可用 好消息&#xf…

Elasticsearch:如何使用集群级别的分片分配过滤(不包括节点)安全地停用节点

当你想停用 Elasticsearch 中的节点时,通常的过程不是直接销毁节点。 如果你这样做,那么你就有数据丢失的风险,这不是你想要对应该是可靠的数据库做的事情。 这样做的问题是,节点很可能会通过 Elasticsearch 处理的恰当命名的分片…

Character.AI成为新晋AI聊天应用爆款;谷歌推出 Google Slides AI 图像生成

🦉 AI新闻 🚀 Character.AI:首周下载量超越ChatGPT,成为新晋AI聊天应用爆款 摘要:Character.AI是一款受欢迎的人工智能聊天应用,用户可以自由创建AI角色,并与它们聊天。该应用于2023年5月23日…