关于AI时代的程序架构的变化
以ChatGPT为代表的AI出现,表示着AI的零点时刻已经突破。现在AI的使用已经不用再多说了,实际上是已经侵入到各行各业。所有人都在疯狂寻找本行业AI的使用场景,这样的盛景只在互联网刚出现的时候能感受到。
马化腾说,这个AI有可能像电一样是重要的未来的基础元素。我感觉还是很有可能。原来波士顿动力的机器人做的都只是翻跟头跑步,给人感觉是四肢发达头脑简单,感受不到智能的存在。但是结合摄像头语音控制。以及生成式AI,目前已经有公司实现了用语音命令机器人做一些原来做不到的事情。例如对机器人说“把红色的苹果放到某某的照片旁边”,然后机器人听到之后照做。这种场景中,人工智能的驱动力就体现出来了。前两年很火的华为天才少年稚晖君的创业也是做这个事情,特斯拉的“擎天柱”也是这个路线。
对于应用程序开发者而言,我们的如何来使用人工智能?ThoughtsWorks说他们做了一系列的实验:提升devops的效果;在编程实验中使用AI最终提升20%到30%的效率;也尝试了对应用程序来进行重构,用一些Dsl来做指导,引导AI生成代码;同样也探索了AI在业务逻辑层面的适配。但是我认为这个还不够。没有真正抓到开发的痛点。
开发的痛点是编程不快吗?是设计不深入吗?是DevOps不连贯吗?
是需求变化!
我们到现在为止是怎么对待需求的?“需求的变化要进行遏制,否则会导致程序的改动量太大”!即使是我们现在推行号称“拥抱变化”的敏捷开发,实际上也没有对业务的变化百依百顺,还是以遏制居多。
但是你要知道客户最害怕的是什么?他们害怕的是软件写的太固定,没有办法适应业务的需求。更害怕的是软件都已经开发完了,但是业务又变了。而对开发者来说,害怕的是软件还没编完,客户的需求变化了(当然,编完了就不怕了,毕竟可以让客户加预算嘛)!
我发现现在的软件行业里,ISV和客户之间形成了一种奇怪的博弈逻辑:所有人都在围绕着一个抽象的名词“需求变化”在进行博弈,没有人想着怎么真正解决客户的问题。
要知道,客户的市场在不断变化,任何一个公司要适应变化才能够有生存。客户之所以找我们开发软件,是因为他们想要一个能够适应市场变化的IT工具,帮助他们快速适应市场需求。客户和ISV没有一方是愿意需求变化的,但是又不得不去适应。如何适应?传统的手段能做到的不多,所以面对需求变化,要么耍赖,要么遏制。
未来AI进入应用程序,解决的一定是适应变化的问题!
若干年前,我和朋友在讨论应用分层的概念的时候,发现了应用系统中的“胶水层”。在领域驱动设计(DDD)中也明确分了用户界面层(UI层)、应用层(Application层)、领域层(Domain层)、基础设施层(Infrastructure层)。在需求变化的时候,每一层受到的影响也不同:界面层变化最大,但是代价较低;应用层变化较大,但牵一发动全局,会影响到其他各层;领域层深入到原子化的业务,只要不做根本性的变化,基本可控;基础设施层则受影响很小,除非架构大变化。
这个“胶水层”就是“应用层”。为了让应用层可以底层本快速适应需求变化,马丁福勒推出了dsl的概念。试图用解释性语言解决应用层变化过快的问题。主意不错,但业界实际上没做好,没有完全解决。SOA则提出了编排的概念,试图用后期流程图的方式把应用层的变化以低成本的实现。我和朋友则是提出了用nodejs来做业务的编排和适配(属于是重复发明轮子了)。
直到AI的出现。我认为基本解决了这个问题。
因为有AI的出现,应用层要继继续拆分。一些固化的,重要的流程用dsl或者编排的方式进行。但是一些灵活的业务串联,就会通过AI来进行关联和匹配,并以AI理解的方式调动整个企业应用系统的执行。也就是说,流程依然存在,但是流程会变得更细和碎片化。用AI组合这些流程,形成最终交付的应用系统形态。
在这种形态中,跨流程会变得更容。但是大而全复杂的流程将会消失。
从这个意义上来说,因为AI的出现,复杂应用比简单应用面临更大的挑战和淘汰的风险。
如果你做ERP的或者做财会的。或者是做MES的小企业,那么恭喜你!小ISV翻身做大的时代又来了。新出现的独角兽一定是AI占很大比重的软件开发企业。
同理。只要能解决并适应业务变化的问题的软件,市场上就会很受欢迎。
之前有一个做etl的企业,做出了一个在网上做流程整合的,叫做Cloud HUB,听说活得不是很好。如果沿着刚才的思路往下延伸,互联网上面向个人的业务整合都瞬间变得有价值起来。
关于AI时代的程序架构的变化的更多相关文章
- 转: GUI应用程序架构的十年变迁:MVC,MVP,MVVM,Unidirectional,Clean
十年前,Martin Fowler撰写了 GUI Architectures 一文,至今被奉为经典.本文所谈的所谓架构二字,核心即是对于对于富客户端的 代码组织/职责划分 .纵览这十年内的架构模式变迁 ...
- DataPipeline CTO陈肃:从ETL到ELT,AI时代数据集成的问题与解决方案
引言:2018年7月25日,DataPipeline CTO陈肃在第一期公开课上作了题为<从ETL到ELT,AI时代数据集成的问题与解决方案>的分享,本文根据陈肃分享内容整理而成. 大家好 ...
- GUI应用程序架构的十年变迁:MVC,MVP,MVVM,Unidirectional,Clean
十年前,Martin Fowler撰写了 GUI Architectures 一文,至今被奉为经典.本文所谈的所谓架构二字,核心即是对于对于富客户端的 代码组织/职责划分 .纵览这十年内的架构模式变迁 ...
- AI时代,还不了解大数据?
如果要问最近几年,IT行业哪个技术方向最火?一定属于ABC,即AI + Big Data + Cloud,也就是人工智能.大数据和云计算. 这几年,随着互联网大潮走向低谷,同时传统企业纷纷进行数字化转 ...
- 云计算和AI时代,运维应该如何做好转型?
云计算和AI时代,运维应该如何做好转型? 今天我们来聊一聊,在云计算和AI时代,运维应该如何做好转型?今天的内容可以说是我们前面运维组织架构和协作模式转型的姊妹篇.针对运维转型这个话题,谈谈我的思考和 ...
- 大数据时代的IT架构设计
大数据时代的IT架构设计(来自互联网.银行等领域的一线架构师先进经验分享) IT架构设计研究组 编著 ISBN 978-7-121-22605-2 2014年4月出版 定价:49.00元 208页 ...
- fir.im Weekly - iOS/Android 应用程序架构解析
假如问你一个iOS or Android app的架构,你会从哪些方面来说呢? 本期 fir.im Weekly 收集了关于 iOS/Android 开发资源,也加入了一些关于 Web 前端方面的分 ...
- Python 为何能坐稳 AI 时代头牌语言
原文链接:https://mp.weixin.qq.com/s?__biz=MzI0ODcxODk5OA==&mid=2247487055&idx=2&sn=ca0fe8740 ...
- AI时代:推荐引擎正在塑造人类
We shape our tools and afterwards our tools shape us. ------Marshall McLuhan 麦克卢汉说:"我们塑造了工具,反过来 ...
- ****微信小程序架构解析
| 导语 微信小程序的公测掀起了学习小程序开发的浪潮,天生跨平台,即用即走.媲美原生体验.完善的文档.高效的开发框架,小程序给开发者带来了很多惊喜.通过这篇文章和大家一起分析小程序的架构,分享开发 ...
随机推荐
- 可视化容器管理工具-portainer.io使用
续docker日常使用指南 背景 当我们开始使用docker后,我们的机器上镜像和容器会越来越多,或者有时候我们有多台开发机的时候,单纯使用命令行去管理镜像和容器就变得麻烦了,这时,我们就可以选择一些 ...
- selenium实战学习--定位元素
from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.common import ...
- 【Linq】 join 子句中其中一个表达式的类型不正确。在对“GroupJoin”的调用中,类型推理失败。
报错代码: 原因分析:on后面的两个关联条件 数据类型不匹配,调整为一致即可.
- ASP.NET MVC4 学习笔记-3
创建一个简单的数据录入程序--Create a Simple Data-Entry Application 在这篇博客中,我们将通过创建一个简单的数据录入程序来探索MVC的其他特点.在这一节中我们要跟 ...
- Day07_Java_作业
A:简答题 1. 构造方法的作用是什么?构造方法的特点是什么?构造方法的注意事项? 构造方法中可不可以写return语句呢? 2. 一个类的缺省构造方法可以有参数吗? 3. 静态代码块和构造代码块的特 ...
- mysql基础_约束
介绍 约束对应的英语单词:constraint,在创建表的时候,我们可以给表中的字段加上一些约束,来保证这个表中数据的完整性.有效性. 约束的作用就是为了保证:表中的数据有效. 类型 非空约束:not ...
- 模型部署 — PaddleNLP 基于 Paddle Serving 快速使用(服务化部署 - Docker)— 图像识别 + 信息抽取(UIE-X)
目录 流程 版本 安装 Docker 安装 PaddleNLP 安装 环境准备 模型准备 压缩模型 下载模型 模型部署 环境配置 启动服务 测试 -- 暂时还没通过 重启 图像识别 + 信息抽取(UI ...
- 树形DP + 换根DP
树形DP--基础 P1352 没有上司的舞会 设 \(f[i][0/1]\) 表示第 \(i\) 个人不去或者去. 如果第 \(i\) 个人没去,那么下属可去可不去,所以 \(f[i][0] = \s ...
- redux的三个概念与三大核心
1.什么是redux?一个组件里可能会有很多的状态,比如控制某个内容显示的flag,从后端获取的展示数据,那么这些状态可以在自己的单个页面进行管理,也可以选择别的管理方式,redux就是是一种状态管理 ...
- python独立脚本应用Django项目的环境
一.需求说明 一直用 Django 在开发一个网站项目,其中的注册用户和登录,都是使用Django自带的认证系统.主要是对密码的加密,在注册或者登录的时候,前端传递多来的密码,我会使用Django的s ...