关于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 麦克卢汉说:"我们塑造了工具,反过来 ...
- ****微信小程序架构解析
| 导语 微信小程序的公测掀起了学习小程序开发的浪潮,天生跨平台,即用即走.媲美原生体验.完善的文档.高效的开发框架,小程序给开发者带来了很多惊喜.通过这篇文章和大家一起分析小程序的架构,分享开发 ...
随机推荐
- 近期uniapp使用与总结
弟弟是个uniapp小白,有什么问题欢迎指正. 吃什么饭对于有选择困难的我来说是个大问题,所以想做个根据自己输入的食物随机分配每餐吃的东西,然后就准备用uniapp做这样一个软件,主要是uniapp打 ...
- 【SpringBoot】WebSocket在线聊天
先看一下页面效果,有点简单粗暴!哈哈哈哈哈,别介意. 本文参考:SpringBoot2.0集成WebSocket,实现后台向前端推送信息 新建一个springboot项目 引入相关依赖 <dep ...
- 即构携手智能对讲机品牌Runbo,打造可视化对讲通信系统
现代通信技术的发展,让信息的传递变得前所未有的便捷.作为双向移动通信工具,对讲机不需要网络支持就可以进行通话,且没有话费产生,尤其适合酒店.物业等使用区域固定.通话频繁的场景. 随着技术的不断迭代,对 ...
- Java扩展Nginx之六:两大filter
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<Java扩展Nginx> ...
- Python单元测试之道:从入门到精通的全面指南
在这篇文章中,我们会深入探讨Python单元测试的各个方面,包括它的基本概念.基础知识.实践方法.高级话题,如何在实际项目中进行单元测试,单元测试的最佳实践,以及一些有用的工具和资源 一.单元测试重要 ...
- OOP第三次大作业
前言 前言的前言 快期末,也一直在等这次作业发布,我现在只能说终于等到了!!!跟上一个Blog的时间相隔比较大,内容也比较多,涉及范围也比较广7-11次小练习,废话不多说,直接开始吧.如果对我blog ...
- tmux 移动窗格
pre + Ctrl+o:所有窗格向前移动一个位置,第一个窗格变成最后一个窗格 pre + Shift+[:当前窗格与上一个窗格交换位置 pre + Shift+]:当前窗格与下一个窗格交换位置
- cgroup Linux中的资源限制
参考链接:容器技术的基石:cgroup 直接上实验: # docker run --rm -d --cpus=0.1 --memory=100M --name=test redis:alpine WA ...
- C/C++八大排序
排序 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 按照难易程度排序,八大排序算法可以从简单到复杂 ...
- python数据处理:获取Dataframe中的一列或一行
解决方案 df['w'] #选择表格中的'w'列,使用类字典属性,返回的是Series类型 df.w #选择表格中的'w'列,使用点属性,返回的是Series类型 df[['w']] #选择表格中的' ...