2023年10月22日

关于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,听说活得不是很好。如果沿着刚才的思路往下延伸,互联网上面向个人的业务整合都瞬间变得有价值起来。

posted @ 2023-10-22 18:44 老翅寒暑 阅读(434) 评论(0) 推荐(0) 编辑

2023年4月5日

关于需求规范和需求评审的一点看法

摘要: 需求很重要,但是很多公司做不好。根本还是在需求的理解和管理组织的问题。朋友正好问了我这个问题,所以整理下来发一篇。 阅读全文

posted @ 2023-04-05 22:02 老翅寒暑 阅读(529) 评论(0) 推荐(2) 编辑

2023年2月25日

关于低代码和无代码---喧嚣背后的致命问题

摘要: 前言 2021年的时候,刮起了一阵”低代码”和”无代码”的风,结果猪没见吹起来,风却早早停了。 在我的职业生涯中遇到了很多的低代码的构想和实现,通常他们的想法非常朴素:写代码写烦了!或者是觉得增删改查代码太没有价值,又太有规律,于是就想着用工具解决劳动重复的问题。 如果你也是这样觉得,首先还是要表扬 阅读全文

posted @ 2023-02-25 16:34 老翅寒暑 阅读(1415) 评论(5) 推荐(9) 编辑

2023年2月18日

为Jekyll静态网站添加PlantUML插件

摘要: 前言 突然想起来要好好整理一下自己的博客空间,已经荒废很多年,如果再不捡起来,等到自己知识老化的时候再去写东西就没人看了。 使用Github Pages + Jekyll把博客发布为静态网站,给人感觉比较私密,似乎所有的控制权都抓在自己手里的样子。 但是作为一个技术博客,如果写东西没有PlantUM 阅读全文

posted @ 2023-02-18 10:56 老翅寒暑 阅读(262) 评论(0) 推荐(0) 编辑

2019年5月29日

企业要为现金流建模

摘要: 1. 前言 很久以来我一直有这样的想法,如果我有一个企业,一如何为企业建立数学模型定要在新的年度开始之前,为我的企业定好这一年的现金流计划。 2. 现金流计划 一般商业企业存在的目的就是盈利。大家都知道这个公式 这个公式里隐藏了很多信息。我们先看支出。所谓的支出,就是公司必须支付出去的钱,这些钱很多 阅读全文

posted @ 2019-05-29 10:03 老翅寒暑 阅读(1078) 评论(0) 推荐(1) 编辑

2019年5月28日

关于通用框架的一些想法

摘要: 前言 前几天跟朋友谈起框架的事情,回顾了一下当前框架的发展,尤其是Spring Boot,已经把程序员的开发简化到了最初的一个 class 的形式了。这个也是我为什么喜欢领域驱动设计(DDD)的原因,真正回归了本源。回头看历史上的各种框架,从struts开始,到Tapestry、Wicket、Spr 阅读全文

posted @ 2019-05-28 10:09 老翅寒暑 阅读(1399) 评论(5) 推荐(3) 编辑

2018年1月2日

XenServer 5.5 断电重启虚拟机磁盘丢失的修复

摘要: 1.现象 公司云平台使用的是XenServer 5.5,版本比较老了。最近几天因为机房改造,导致云环境断电,重启之后发现有2台机器无法ping到,所以再次重启,登录修复网卡,最后发现无法用XenCenter找到Local Storage,部分主机的该栏目内容为空,导致一些重要的虚拟机无法启动。 2. 阅读全文

posted @ 2018-01-02 12:01 老翅寒暑 阅读(1647) 评论(0) 推荐(0) 编辑

2014年1月20日

Fix catalyst driver in Ubuntu 13.04 / 13.10

摘要: Fix catalyst driver in Ubuntu 13.04 /13.10(墙外文章备份)1. IntroductionI found lots of people struggling to get catalyst driver work in Ubuntu 13.04. This issue has been persistent for some laptops, ever since Ubuntu 13.04 came out, specially for Intel, AMD dual graphics setup. For people, who have been l 阅读全文

posted @ 2014-01-20 14:20 老翅寒暑 阅读(1194) 评论(0) 推荐(0) 编辑

2013年8月25日

Preserving Remote IP/Host while proxying

摘要: 因为这个文章用一般手段看不到,所以摘录下来备用(From http://kasunh.wordpress.com/2011/10/11/preserving-remote-iphost-while-proxying/)You host your web application with a hosting provider. Your application log/access IP address of your users and you get 127.0.0.1 or some other private IP. Deja Vu? Most likely reason for the 阅读全文

posted @ 2013-08-25 23:26 老翅寒暑 阅读(580) 评论(0) 推荐(0) 编辑

2012年11月8日

异步javascript的原理和实现

摘要: 因为工作的需要,我要在网页端编写一段脚本,把数据通过网页批量提交到系统中去。所以我就想到了Greasemonkey插件,于是就开始动手写,发现问题解决得很顺利。但是在对脚本进行总结和整理的时候,我习惯性地问了自己一个问题:能不能再简单点? 我的答案当然是“能”。 首先回顾我的数据批量提交的需求:我有一批用户数据要插入到系统中,但是因为系统库表结构不是行列式的,所以无法转化为sql语句插入。要插... 阅读全文

posted @ 2012-11-08 02:13 老翅寒暑 阅读(8802) 评论(7) 推荐(4) 编辑

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示