回顾外滩| DCloud崔洪宝:云开发和跨端技术开创企业降本增效新篇章

中国移动云通讯录_移动云通信_移动云端通讯录

“利用云开发和跨端技术,实现一套代码的多端发布,统一前后端技术栈,简化运维,精简团队,轻管理,快速交付是为企业降低成本、提高效率的最佳实践。”

在2023年外滩大会“云AI”洞察论坛上,来自中国的CTO崔洪宝以“云开发与跨端技术,共创人工智能新篇章”为主题,分享了公司在云开发与跨端技术方面的最新进展。企业降本增效”。 研究成果和实践经验介绍了他们如何通过云开发平台的资源共享和高效的开发工具来降低企业运营成本和开发成本。

移动云端通讯录_中国移动云通讯录_移动云通信

以下为演讲全文。

大家下午好,我来自,可能有些同学对我们不太了解。 我们主要提供开发者服务。 我们的产品包括开发工具和跨终端框架uni-app。 我们是国内唯一达到百万用户的IDE。 是一款具有用户规模的极客工具,跨终端框架uni-app月活跃设备数已达10亿以上。

今天我要讲的主题是“云开发与跨端技术,构建企业降本增效新篇章”。 我分三个部分来谈。

首先,我们将回顾传统多技术堆栈的人力效率和管理挑战。 然后,我们讨论基于跨端技术和云开发统一前后端技术栈后新模式带来的便利。 最后,我们将展望未来云集成的组件生态。

我们先回顾一下第一部分。

这是一个真实的案例,一个创业失败的自述。

他写道,半年时间花了500万元创业,资金链断裂,团队最终解散,相当累。 他进而进一步得出结论,开发商的成本是最大的劳动力成本。 他在后端雇佣了十个人,在前端雇佣了七个人。 个人,其中移动开发4人,开发2人,iOS开发2人,Web开发3人,测试人员5人,设计师2人。

移动云端通讯录_中国移动云通讯录_移动云通信

当我看到这个头条新闻的时候,我没想到,作为一家初创公司,他会有如此豪华的团队。 我认为他的失败是可以理解的。 或许他缺少的是一个更懂ROI的技术伙伴。 这位企业家实际上支持每个职位,因为他每个职位至少有两个人。

在不考虑备份的情况下,我们可以看看如果我们想要打造一个多技术栈的多平台产品,需要如何配置人员。

这是最简单的配置。 前端部分需要5人,iOS、、Web各1人。 Web工程师需要处理移动端和PC端。 之所以有两个小程序,是因为国内小程序平台太多,而且每个平台的规格都不同,所以至少需要两名小程序工程师。 后端至少需要一名工程师使用Java或PHP开发后端接口,然后需要一名运维工程师来处理系统的弹性扩展和安全防控。 如果要做跨平台的产品,这是最简单的团队配置,开发团队至少7人。

移动云通信_中国移动云通讯录_移动云端通讯录

这样的团队有其自身的一系列挑战。

首先,劳动力成本。

在人力资源方面,大家都可以理解,因为如果你多雇佣一个人,你就要多付给这个人一份工资,你还需要多交一份社保。 为了吸引人才,很多企业还会提供住房补贴、餐费补贴等,这些都需要增加资金消耗。 另外,如果你的团队较多,就需要更大的办公室和更多的办公设备。 这一系列的隐性成本也会同时增加。

移动云通信_移动云端通讯录_中国移动云通讯录

第二,管理成本。

管理成本主要涉及两部分:项目成本和团队成本。 因为当你的团队很大、人很多的时候,在做一个产品的时候,在需求分析、界面设计等阶段,你经常需要召开会议,让参与项目的每个人都明白你的需求是什么。 在做接口定义和联调测试的时候,需要和不同的团队进行预约,找到一个共同的时间窗口来工作。 这是一种约束依赖。 这种模式实际上会延迟项目的启动。

在这个过程中,管理者需要花费更多的精力来招聘、培训、激励员工,让员工了解团队未来的发展方向。 这是对球队经理精力的浪费。 公司或团队的负责人应该把更多的精力花在业务化、商业化上,花在带兵冲锋陷阵上,而不是花在与政委谈心上。

市场出现痛点,一定会出现相应的解决方案。 我们的解决方案是基于跨端和云开发构建统一的技术栈。

事实上,跨终端并不是一个新话题。 跨终端技术至少有20到30年的历史。 大家都知道,与C、C++相比,Java是第一个成功、彻底的跨平台开发语言。 客观地说,Web技术应该算是迄今为止最成功的跨端技术。 无论是Java还是Web,都是这二十年来程序员追求更高效开发的典型代表。

我们今天说的跨终端更多的是手机上的跨终端。 与国外相比,国内的前端工程师要适应更多的终端,因为小程序是中国移动互联网的一个特点,是一个特殊的存在。

我们前端工程师需要开发支付宝、微信、抖音、百度等小程序,以及快应用。 类似这样的小程序平台还有十多个。 每个程序都有不同的开发规范和各种细节。 差异是一件非常痛苦的事情。 其实这张图只是列出了其中的一部分,还有更多的平台。 比如京东小程序、小红书小程序、新浪微博小程序等,这些小程序也正在上线,也号召前端工程师尽快适配。

移动云通信_移动云端通讯录_中国移动云通讯录

基于国内终端碎片化的现状,2018年建立了跨终端框架uni-app,可以实现一套代码发布到所有平台。 uni-app现在是一个比较成熟的开源框架,网络上有超过38000颗星。 这个星数在国内开源项目中是名列前茅的。

同时,我们的生态系统也比较成熟。 uni插件市场上已经有超过11000个插件。 在做业务开发时,很多开发人员不需要从头开始编码。 他们可以直接从uni插件市场下载模板并快速开始运行。 。 每天新增超过 6000 个项目,uni-app 正在成为前端工程师开发小程序时优先考虑的开源框架。

基于uni-app,我们解决了小程序、App等平台的多端拆分问题。 我在这里再花一点时间给大家分享uni-app x产品,它是uni-app的下一代升级版本。

为什么我们需要升级这个版本?

事实上,自从iOS和分天下后,跨平台开发一直是移动互联网时代前端工程师的追求。 但无论是早期以Web渲染为代表的框架,还是后期以阿里巴巴的weex和以原生渲染为中心的框架,都经常被开发者吐槽。

开发者会将跨端框架开发的应用和原生开发的应用进行比较,感觉跨端框架开发的应用性能不如原生开发的应用。 这就是跨端框架长期以来被诟病的地方。 性能是最大的缺点。

那么为什么已经是原生渲染了,仍然存在性能缺陷呢?

因为这些跨端框架都是基于Web技术开发的,开发者基于JS来编写业务逻辑。 最终运行时,业务逻辑运行在V8等JS环境中,但UI的渲染是另外一个过程。 当数据发生变化时,JS进程和UI进程之间需要进行通信。 频繁的通信会造成阻塞,从而导致UI渲染滞后。 人们会感觉使用跨端框架开发的应用程序的体验不如原生开发的应用程序流畅。

为了解决这个问题,我们推出了uni-app x产品,彻底消除JS流程,让业务逻辑和UI逻辑运行在同一个流程环境中。 具体如何实施呢?

中国移动云通讯录_移动云通信_移动云端通讯录

在Web上,我们仍然会像现在一样编译开发者编写的TS代码和Vue代码,这和现在的uni-app实现是一样的。 但是当涉及到App平台时,我们会将其编译成Swift。

移动云端通讯录_中国移动云通讯录_移动云通信

那么具体该怎么做呢?

我们在TS的基础上进行改进,将其定义为UTS。 我们的目标是在运行时干掉JS进程,但开发时仍然需要继续使用JS技术栈,仍然需要拥抱Web生态,目标用户仍然是前端工程师。

使用TS + Vue开发后,我们将其编译成基于SWC的Swift项目。 这个过程实际上是一个重新编译的过程。 你也可以简单地将其理解为开发语言之间的翻译和转换,但在这个翻译过程中,需要抹平各个开发语言之间的各种细节差异。

编译为对应客户端的原生语言后,我们可以保证最终的渲染是原生渲染,会有更高的渲染性能。 另外,业务逻辑也会从JS翻译成原生语言,逻辑和渲染都是原生的。 运行在同一个进程中,没有JS进程,也没有通信阻塞,彻底解决了传统跨端框架的性能阻塞问题。

最后,将Swift项目打包成apk或者ipa,在用户手机上运行时,我们还需要实现Vue。 由于开发者编写的原始代码是Vue的SFC文件,因此使用了大量的数据响应函数。 因此,在运行时,我们还需要通过原生语言实现数据响应功能来完成Vue和Swift Vue。

基于这个跨端框架,我们现在可以回顾和比较开发团队的人员需求。 本来前端需要5个人,现在居然变成了1个人,叫大前端工程师,也可以叫应用开发工程师,1个大人。 前端工程师可以处理所有平台。

移动云通信_移动云端通讯录_中国移动云通讯录

我们继续看后端业务工程师和运维工程师这两个角色,看看前端和后端是否可以进一步融合,运维工程师的工作是否可以简化? 答案是肯定的,对应的解决方案就是云开发。 支付宝总裁李峥刚刚推出的支付宝小程序云就是相应的厂商实现。

我们总结一下云开发的几大特点:

第一,技术栈的统一。

刚才我们介绍的跨端框架都是基于Web技术栈的,其中最重要的就是JS开发。 云端开发的云功能是基于Node.js的,Node.js也是一个JS技术栈。 这样前端工程师和后端工程师使用的是同一个技术栈。 工程师用JS写前端,然后用JS继续写后端云功能。 他甚至可以直接在前端页面编写JS代码来查询云端数据库。 一个人就可以用JS实现从前到后的所有页面和逻辑构建。 前端工程师不再需要等待后端PHP或Java工程师提供接口,也不再需要协调双方联调时间。 这就是最大的好处,技术栈的统一。

二、弹性伸缩。

这一点大家应该都很清楚。 虽然前后端技术栈统一了,但前端工程师仍然面临一个很大的挑战,那就是不了解系统运维、Linux的各种权限规则、安全防控。 因此,如果想让一个前端工程师从前到后开发出整个系统并发布到网上正常运行,就需要帮助他解决他不擅长的运维问题。 那么云开发正好可以解决这个挑战,包括一系列的麻烦。

第三,价格便宜,按量付费。

刚才支付宝的李峥也说了,要照顾中小企业,就要降低他们的收费。 按量付费的云开发是一种显着降低服务器成本的方法。 仅当有用户请求时才会计费。 如果夜间没有用户请求,则不会产生任何费用。 传统的虚拟机,只要购买或开启了虚拟机,无论是否有用户请求,都会产生成本。 相比之下,云开发是一种更便宜的服务器资源解决方案。

现在,我们结合跨端框架和云开发来总结一下。

在前端,我们实现了uni-app产品,统一app、小程序、H5等所有客户端的开发,这是一个前端跨平台框架。 在云上,我们将业界成熟的云开发厂商统一成统一的包,发布了这个产品。 它是一个基于云的跨供应商云开发引擎。

移动云端通讯录_移动云通信_中国移动云通讯录

为什么我们要打造这个跨云的云开发引擎? 因为现在,无论是云开发还是云开发,大家在选择模式的时候,都有一个很大的担忧,那就是担心被云厂商束缚。

什么概念? 在传统的开发模型中,您从云供应商购买虚拟机并在其上部署 Java 或 PHP 代码。 以后,如果您不想再使用这个云供应商,您可以快速复制并迁移到其他云供应商,而无需修改您的Java或PHP业务代码。 但如果使用云开发,每个云开发的API都有供应商属性,API名称和各种参数都不同。 当你从一个云开发供应商转向另一个云开发供应商时,你需要花费大量的精力修改你的业务代码。 否则,您的旧代码将无法在新平台上正常运行。 这称为受云供应商的约束。

我们要做的就是把这些厂商的云开发规范拉平。 您只需要按照规范开发一套代码,就可以在支付宝小程序云或者其他厂商的云开发平台上运行。 如果迁移到云厂商,则不需要修改业务代码。 通过这一点,更多的开发者可以放心选择云开发模式。

云开发是一种更高效的开发方案。 我们说至少可以节省 60% 的代码。 我这里举个例子,以这个常见的图片和文字列表为例。 如果是传统开发,需要先写一个后端接口返回列表数据,然后构建一个前端列表页面,并在列表页面中发送联网请求。 这些代码加起来,大约有九十行代码。

但是基于云开发模型,可以看到我们只需要使用一个-db数据组件,然后在组件属性中定义需要查询的数据表名称、查询条件、返回字段,以及代码结束了。 传统的Ajax网络请求就不用再写了。 这种模式只有30多行代码。 与传统模式相比,我们可以节省58行代码,实现60%的代码缩减。 因此,至少从代码量上来说,云开发是一种更高效、更稳定的开发方案。 毕竟,代码越少,上线速度就越快; 代码越少,错误就越少。

中国移动云通讯录_移动云端通讯录_移动云通信

我再举一个例子:十分钟开发一个云通讯录。

我们的要求是前端和后端都要实现,前端需要兼容各种平台。 需要支持发布到支付宝、微信等各种小程序,支持iOS、App平台,数据需要真正存储在云数据库中。 我们能在这十分钟内完成它吗?

这是一个演示视频。 我们预先定义了通讯录所需的字段名称和类型、长度限制等。 例如,姓名是字符串类型,长度为2~10个字符,性别是枚举类型,手机号码是数字。 这是一个json格式的定义,你确认需求后可以快速抽象出来。 然后右键该文件上的菜单,就会根据你的shema定义自动生成通讯录所需的列表页面、新建表单页面、修改表单页面、详细信息页面。 生成的页面包含-db组件和相关API。 ,可以实现前端API直接操作云端数据库。

智能生成云集成代码(点击播放)

这是生成的特定页面。 生成的页面代码可读性很强,完全可以在此基础上进行二次开发。

页面生成后,您可以在右侧窗口中预览效果。 一开始,这是一个没有联系数据的空列表。 现在我们向其中添加一个新联系人。 添加完成后,会自动返回列表页面并刷新列表。 点击列表页,跳转至详情页。 单击详细信息页面中的编辑按钮。 ,可以跳转到修改表单页面。 修改联系方式后,您将自动返回详情页面并刷新联系方式; 在详情页点击删除,该联系人将从云数据库中删除,并返回到列表页面并刷新列表。

您不需要为这些 UI 和逻辑编写代码。 由于该代码生成器基于云开发技术,因此它会自动为您完成这一切。

综上所述,基于云开发技术的代码生成,只需了解需求,将需求抽象成.json文件,然后点击代码生成即可。 对于通讯录的要求,10分钟内完成定义就足够了,所以10分钟完成一个云通讯录对于我们来说是完全现实的。

在最后一部分,我们展望未来。 如果基于跨端框架、云开发,未来的应用开发会是什么样子?

首先,我们认为未来的组件将以业务为中心,端到端一致,并与云集成。 传统的组件生态是碎片化的,前后端分离,各个平台也碎片化。 例如,您要创建一个用户管理功能,包括登录、注册、修改密码、找回密码等功能。

你可能需要找一个基于Vue/React框架的H5轮子来实现H5平台的用户管理功能,然后再寻找iOS和iOS平台的用户管理轮子。 每个轮子由不同的人或团队维护。 你发现的H5和iOS轮子 轮子可能有不同的UI和不同的交互逻辑。 你需要投入大量的精力进行二次开发,以抹平每一端的差异。 那么就需要根据服务器端使用的语言来寻找Java或PHP轮子。 单独使用这种轮子的成本非常高。

基于跨端框架和云开发,轮子的使用效率会高很多。

跨端框架保证了一个覆盖所有平台的前端轮子,并且各端的UI和交互逻辑是一致的。 无需在H5、iOS等各端寻找不同的轮子,云开发可以直接在前端页面查询数据库,基于JS编写云函数。 后端逻辑和前端页面可以在同一个项目中维护,由同一个团队维护。 这个轮子与云集成,以业务为中心。 轮子可以大大提高业务上线和商用验证的效率。

中国移动云通讯录_移动云端通讯录_移动云通信

最后,我们看一下大局。

中国移动云通讯录_移动云通信_移动云端通讯录

最底层是两个最重要的基础设施,即uni-app和uni-app。 Uni-app统一了各端的差异,是一个跨平台的前端框架; 统一了厂商之间的差异,是一个跨厂商的云开发框架

基于这两个框架,我们设计了大量云集成的公共模块和轮子。 例如,可以根据数据库定义快速生成列表、编辑和详细信息页面。 uni-id包含通用的用户管理功能,支持各平台的推送功能。 ,聚合各类支付平台; 下一步,我们进一步开源了用户侧的uni-模板和管理侧的uni-admin项目模板。 开发者可以基于这两个模板快速启动自己的业务应用和管理后台。 建造。 在上层,社区开发者可以封装不同模块的SDK,如音视频、直播、IM等; 在上层,基于下面搭建的基础设施,可以集成各种SDK轮子,产生不同行业的解决方案,例如:电商、O2O、短剧等。

基于这样的设计,开发者可以借助跨端框架和云开发,以及云集成轮子生态,大幅降低成本,提高效率,加速数字化建设。

今天的分享就到这里,谢谢大家!

版权说明:平台部分文章信息及图片来源于网络。本页面仅负责文章的调整、排版和编辑。如果权利人发现自己的作品被歪曲,请及时与我们联系。经核实确认后,将尽快处理。

相关推荐

流量卡大全
联系客服
联系客服
返回顶部