当前位置: 首页 > news >正文

【AI-Coding】聊聊AI--软件架构探索体验

写在开始:
①本文仅仅用作个人记录学习使用,如何涉及版权等其他问题,辛苦及时联系小编修改或者下架,全文2600字左右,阅读时间预计13min;
② AI-Coding日常工作中AI方向的部分体验;

WHAT

第一问:软件架构是啥?

“程序或计算机系统的软件架构,指的就是系统的结构,该结构由软件组件、外部可见的组件属性,以及它们之间的关系而构成”
软件工程中的架构工作,指的是把系统分解或划分为一系列部件,使我们能够对每个部件都进行模块式的、迭代式的、渐进式的和独立式的开发

第二问:常见的架构举例?
  • DDD分层架构:分层思想=越核心的领域模型,领域服务,应用服务,和最外层用户界面和基础设施
  • 六边形架构 : 如下图示,最核心业务逻辑(领域模型和应用程序)和外部资源(比如APP/Web应用)隔离
  • 整洁架构:DDD分层架构包含用户接口层、应用层、领域层和基础层
    在这里插入图片描述
第三问:AI带来了啥变化?
  • 角色变化: 程序员RD逐步从编码往决策去转型;
  • 系统能力变化: AI开始承担部分系统功能,能够帮助用户理解 解释和设计开发代码;未来可以通过提问,生成优质代码;

WHY

为什么AI背景有可能衍生出新软件架构呢?

LLM的知识量、准确度在快速提升,前沿的研究都在往更少人工参与的方向上进行。行业内的各类AI工具,也都在朝着这个方向进行快速奔跑:
① AI Coding在朝着全自动化方向前行
在这里插入图片描述
② AI 前沿研究在朝着真正低代码的方式发展

当下火热的AI Agent以AI全方面代理的目标发展:
阶段一:纯硬编码,Code控制输出、编排能力、提供基础能力
阶段二:LLM Call介入输出,Code编排能力、提供基础能力
阶段三:LLM Call介入更复杂的输出,Code编排能力、提供基础能力
阶段四:LLM Call介入输出、自己决策逻辑的编排,Code提供基础能力,开始步入真正的低代码时代
阶段五:LLM Call介入输出、有更强的决策编排能力,Code提供基础能力
阶段六:LLM Call介入输出、编排能力、提供基础能力,开始步入真正的“零代码”时代

为什么要去探索更适应AI时代的软件架构呢?

AI coding 商业化应用发展迅速,技术越发成熟
eg:

  1. Copilot :
  2. Nocode
  3. GitHub Copilot : https://github.com/features/copilot 集成于主流编辑器的 AI 编码助手,提供代码补全和建议,提升开发效率。
  4. Cursor : https://www.cursor.so 基于 Visual Studio Code 的 AI 增强型代码编辑器,支持智能代码补全、多文件编辑等功能。
  5. WindSurf : https://codeium.com/windsurf 形态上同 Cursor,在 Agent 方面以及代码分析方面略有优势
  6. v0 https://v0.dev 由 Vercel 推出的 AI 驱动工具,专注于快速 UI 原型设计,支持并行代码生成和预览
  7. Devin : https://devin.ai/ 是Cognition AI推出全球首个AI程序员,掌握全栈技能、自学新技术、构建和部署应用程序、自主查找并修复Bug、训练和微调自己的AI模型等多项能力。
  8. Bolt.new : https://bolt.new StackBlitz 推出的 AI 驱动全栈开发环境,直接在浏览器中运行和部署全栈应用程序。
    https://github.com/stackblitz/bolt.new

HOW

①认知转变:从评论者转变为践行者

尝试AI时,千万不要把自己摆在评论者的角色中

评论者:当把自己局限于评论者角色时,很容易形成一种消极的思维模式。总是看到事物的不足并进行评论,而不是思考如何去改善
践行者:践行者注重实践过程中的学习和改进。他们在行动中会遇到各种实际问题,并且通过解决这些问题来积累经验

②深度参与AI Coding,探索更适用于AI Coding的代码架构

自动完成后端功能诉求 todo
欢迎大家自行尝试:

根据规范生成前端页面 todo
@Codebase 先完成环境搭建; ==
输入一个页面原型图, 会输出前端VUE代码,生成效果基本符合预期;

让AI生成项目Readme文档 todo

  • 立角色 : 你是一位优秀架构师,精通系统和业务架构设计,你的工作是梳理项目业务逻辑,并生成详细文档记录;
  • 述问题 :
  • 定目标
  • 输出要求
  • 输出样例
  • 任务拆分:
③AI Coding 的局限和不足

由于大模型本质上是一个概率模型,因此生成的过程是在限定的上下文中概率最大化的过程,无法确保内容 100% 正确,对于 AI Coding 领域来说,存在以下局限:

a)上下文理解受限,输出不稳定:主流的模型的窗口为 100~200K 左右,包含输入和输出,而输出一般为 8K 左右,效果稳定的窗口大概在 50K 左右,而一次任务需要的上下文往往会超过这个值,当超过一定的窗口之后,可能会发现无论如何对话,都无法达成预期。建议人为拆解任务,让AI一步步执行。如需要AI实现一个从dal层到api层的实现,可以先让AI依次编写mapper、dal、repository、service、api

b)代码幻觉,bug 更为隐蔽:AI 生成的代码质量可能参差不齐,代码中潜在的 bug 可能更加难以发现。

c)技术设计能力受限:由于无法感知复杂业务逻辑,对代码库整体架构缺乏认知,大多数复杂的技术设计环节,还是需要依赖人工拆解。

d)不能读取反编译后的class文件(迭代到目前似乎可以阅读了)

结尾

未来已至,人工智能(AI)在代码编写和架构设计方面展现出无限潜力。
我们既要勇于尝试,不怕失败,每一次尝试都是成长,能帮我们找到适配 AI 时代的架构与方式。
也要积极探索,怀揣无畏之心挖掘新可能,积极参与 AI Coding,深入思考未来架构。
让我们携手拥抱 AI,在这场变革中勇做先行者,为职业发展开创新局面,为行业发展添砖加瓦。你准备好行动了吗?
对于日常融入 AI,快分享你的想法和建议,一同踏上探索之旅!

写在最后 : 码字不易,如果觉得还不错,或者对您有帮助,麻烦动动小手,点赞或关注,谢谢!

相关文章:

  • Mysql - 日志相关问题
  • 【工具类】PDF文件转图片
  • 计算机网络 第一章:计算机网络和因特网(1)
  • CMake学习笔记(三):静态库,动态库的生成和使用
  • Python基础入门掌握(十三)
  • Linux应用:程序运行
  • ESP32学习 -从STM32工程架构进阶到ESP32架构
  • C++基础 [五] - String的模拟实现
  • 本地部署 RAGFlow - 修改默认端口
  • 基于javaweb的SpringBoot校园运动会管理系统设计与实现(源码+文档+部署讲解)
  • 其利天下技术·伺服电机在机器人技术中的应用
  • 深度解析ECharts.js:构建现代化数据可视化的利器
  • 1536数字三角形
  • 【位运算】速算密钥:位运算探秘
  • 深度剖析:Pytest Fixtures如何重塑自动化测试的可读性与高效性
  • ⭐算法OJ⭐克隆图【BFS】(C++实现)Clone Graph
  • 对项目进行优化
  • JMeter 性能测试
  • 工业省电空调降温原理
  • 边缘云原生操作系统的设计与思考
  • 年轻人能为“老有意思”做点什么
  • 阿根廷发生5.8级地震
  • 购车补贴、“谷子”消费、特色产品,这些活动亮相五五购物节
  • 匈牙利国会通过退出国际刑事法院的决定
  • 病人有头发,照护者不发疯:《黑镜》中的身体缺席与虚伪关怀
  • 王毅出席金砖国家外长会晤