作为追求代码洁癖的软件工程师,我们对“紧耦合”的技术实现可以说是深恶痛绝。要解决当前企业移动端App日益沉重、难以真正迭代、投入产出比低的问题,首先在技术架构上要实现真正的“松散耦合”。
 
那需要松散到什么程度呢?那就是是在一个相对稳定的App“内核”基础上,让绝大部分的应用功能(不管是因为创新需要、业务部门诉求等等而产生)必须可以(1)独立开发,(2)独立部署,(3)独立运维,(4)独立管理生命周期——随时上下架而不影响App主体。

化整为零,把功能高度“碎片化”

“碎片化“现在已经是一个潮流。首先,在移动互联网时代,用户的阅读时间、应用使用时间都是高度碎片化的。与之相对应的,就是前端用户体验的碎片化。全中国的手机用户都已经被微信小程序充分教育,各种场景下“随需随用”、“用完即扔”,是非常典型的“效用计算”。
 
而在云端,过去几年来“微服务”大行其道,本质上也是把传统“单体应用”碎片化。碎片化当然带来管理它们(小程序、微服务)的耗损,但是现在这些问题早就被越来越成熟的开发运维平台、工具链解决了。例如:Docker容器化生态、Kubernetes容器编排管理技术、FaaS函数即服务工具链等等让云侧的小粒度服务开发运维更便利、稳定、弹性可扩。而微信本身则实际上在端侧充当了小程序的“运行时”及管理工具。

解决方案:利用小程序实现敏捷迭代

微信本身与运行在它上面的数以百万计的小程序,就是一个“松散耦合”的最佳例子 :微信自身的版本迭代,从来与任何第三方小程序无关;每天互联网上各种小程序的迭代升级、上架下架,也不会影响到微信运行的稳定性。
 
如果目前市面上的APP都能把自己的App做成像微信一样稳定,把App中的业务功能拆分出去以类似小程序的技术载体进行碎片化、单一职责、独立生命周期的开发部署,是不是这些APP既需要维稳又需要敏捷迭代的矛盾就有希望得到解决?
 
这种程度的松散耦合,让业务功能可以独立于App进行开发、测试与上下架,有这样一些显而易见的好处:
(1)新业务功能单独测试单独发布,不影响基础App的稳定性,也无需对App进行全回归测试。
(2)业务功能开发可以高度并行 – 只要有人手,人多好办事(想想微信让全互联网的开发者都可以同时互不影响为它提供海量应用场景),而在传统原生App的技术体系下,这是不可能的。
(3)容易蓝绿测试、灰度发布 – 粒度细到碎片级(例如一个微信小程序是可以仅在测试白名单的范围内试点)。
(4)形成技术生态 。一家企业如果掌握了微信这样的技术,它也可以成为一个技术生态中心,让外部开发者、合作伙伴们将自己开发好的小程序直接上架至自身APP,然后企业运营人员对这些小程序进行审核,这样在一个企业APP内可覆盖多数服务场景。
 
在这个讲究快速敏捷迭代的时代,企业机构们应该需要考虑对自己的App进行瘦身,把新旧功能剥离,以独立生命周期、独立开发测试团队的方式进行开发 – 有用的场景继续深入、无效的尝试即时废弃。总体技术架构必须让基础App保持稳定、让频繁增删变更业务功能成为可能,同时最大程度降低开发门槛、减少试错成本、实现敏捷迭代。

我们如何获取互联网巨头才拥有的小程序技术

凡泰极客借鉴互联网成熟小程序技术方案,推出FinClip小程序容器技术,任何 App 均可以通过引入 FinClip小程序运行时 SDK 来获得运行小程序的能力,同时,它还提供一个后台管理系统,统一管理小程序的上架和下架,以及收集和分析小程序数据,对于开发人员,可谓是极其便捷了。

而且FinClip是完全遵循兼容微信小程序的开发标准与规范。也就是说,如果你本身已经开发好了一个微信小程序,可以在不改一行代码的情况下,直接放进你的 App 里面,运行效果和在微信上面保持一致,不必额外二次开发和改造,大大节省了人力成本。
 

 
而且由于FinClip提供的 SDK 是相同的,你所开发的小程序,可以在同样集成了 FinClip SDK 的 APP 里运行,做到一次开发,到处运行的效果。这样业务功能小程序也不局限于自有APP或者微信上使用,还能覆盖更多渠道。
 
此外,FinClip 支持包括 Linux、Windows、MacOS、麒麟等操作系统。这意味着,PC 端、车载设备、智能电视都能使用小程序了,反正现在IOT也是大势所趋。

FinClip还提供小程序 IDE 开发工具,界面与微信小程序的开发工具类似,自带调试和真机预览,简单易上手。你可以在这个 IDE 里面,对现有项目进行二次开发,扩展功能和接口,或者从零开始写出一个小程序,貌似他们最近打算针对这个IDE做一些功能优化,实现小程序直接生成APP功能,感兴趣的朋友可以后续关注一下。

App必须减重、瘦身、变成入口、合规可控对接互联网公共社交平台,通过这样的技术架构打造下一代超级APP,代表未来的方向。
 
FinClip凭借插件化、嵌入式、轻量而灵活的产品特点及行业领先优势已经赋能银行、证券、政企、电商、航空、园区、零售等多个行业,在无界开放银行、数字券商、监管与合规科技、电子政务、信创等方面形成较有特色的创新应用案例。现在登陆官网点击咨询即可获得行业解决方案! :https://www.finclip.com
 
Tips:
最近正好访问他们的官网。留意到他们正在举办黑客马拉松的比赛,主办方准备了价值十万元的大赛奖金池!感兴趣的朋友可以了解一下!点击链接即可报名参赛:「码」力集结,与众不「凡」 - 小程序容器技术领导者 | FinClip

小程序容器技术,App热更新与敏捷开发新方案的更多相关文章

  1. 小程序容器助力打造企业超级App

    阿拉丁研究院发布<2021 年度小程序互联网发展白皮书>显示,2021 年全网小程序数量已超 700 万,其中微信小程序开发者突破 300 万,DAU 超过 4.5 亿:日均使用次数同比增 ...

  2. APP跳转小程序,小程序跳转APP

    关注公共号,搜索 "APP跳转小程序,小程序跳转APP",查看原文 前置条件: 开发环境:windows 开发框架:uni-app , H5+,nativeJS,mpvue 编辑器 ...

  3. 快成物流科技 x mPaaS | 小程序容器加持下的技术架构“提质增效”

      导言 从 2017 年开始,GMTC"移动技术大会"就更名为"大前端技术大会".发展至今,混合开发.原生开发.前端开发等概念正在深度融合,组成"大 ...

  4. 黄文俊:Serverless小程序后端技术分享

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 黄文俊,现任腾讯云SCF无服务器云函数高级产品经理,多年企业级系统开发和架构工作经验,对企业级存储.容器平台.微服务架构.无服务器计算等领域 ...

  5. 微信小程序、安卓APP、苹果APP对比分析

    今天的话题主要是关于微信小程序.安卓APP.苹果APP对比分析.既然是对比分析肯定是将它们一个一个说明. 本篇不涉及技术话题,只讲解微信小程序.安卓APP.苹果APP它们各自的优缺点及其应用场景. 一 ...

  6. Docker应用程序容器技术_转

    转自:百度百科 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相 ...

  7. 微信小程序中的app.js-清除缓存

    微信小程序中的app.js 关于小程序app.js生命周期的介绍 App(Object) App() 函数用来注册一个小程序.接受一个 Object 参数,其指定小程序的生命周期回调等. App() ...

  8. Ionic APP 热更新

    开门见山,本文主题:cordova-hot-code-push 作用:cordova热更新插件,提供了在应用程序中对基于Web的内容进行自动更新的功能. GitHub地址:https://github ...

  9. C# WinForm小程序(技术改变世界-cnblog)

    WinForm小程序(技术改变世界-cnblog)   需求: 1.点击按钮  更新 当前时间 2.输入 身份证,必须身份证 排序(类似银行卡那样的空格),自动生成空格排序 3.实现 必须按 第一个按 ...

随机推荐

  1. kubernetes证书过期处理

    rancher中文文档:http://docs.rancher.cn/ k8s中文文档:https://kubernetes.io/zh/docs 一.修改kubeadm 源码 增加证书到100年 $ ...

  2. linux命令管道工作原理与使用方法

    一.管道定义 管道是一种两个进程间进行单向通信的机制.因为管道传递数据的单向性,管道又称为半双工管道.管道的这一特点决定了器使用的局限性.管道是Linux支持的最初Unix IPC形式之一,具有以下特 ...

  3. 《前端运维》三、Docker--1镜像与容器

    一.基本概念 如果我们想要让软件运行起来,首先要保证操作系统的设置,其次还需要依赖各种组件和库的正确安装.那么虚拟机就是一种带环境安装的一种解决方案,它可以实现在一种操作系统里面运行另外一种操作系统, ...

  4. @Transactional注解的失效场景

    一口气说出 6种,@Transactional注解的失效场景 计算机java编程 发布时间: 20-03-1912:35优质科技领域创作者 引言 昨天公众号粉丝咨询了一个问题,说自己之前面试被问@Tr ...

  5. SpringAOP--aop使用

    SpringAOP使用方式 切点表达式 常用的符号: *:匹配任何数量字符: ..:匹配任何数量字符的重复,如在类型模式中匹配任何数量子包:而在方法参数模式中匹配任何数量参数. +:匹配指定类型的子类 ...

  6. 你将如何使用 thread dump?你将如何分析 Thread dump?

    新建状态(New) 用 new 语句创建的线程处于新建状态,此时它和其他 Java 对象一样,仅仅在堆区 中被分配了内存. 就绪状态(Runnable) 当一个线程对象创建后,其他线程调用它的 sta ...

  7. 如何创建spring web 工程

    在项目资源管理器右键,New-Spring Starter Proje 设置一些参数 点击Next,然后勾选两个选项

  8. Java 中,Serializable 与 Externalizable 的区别?

    Serializable 接口是一个序列化 Java 类的接口,以便于它们可以在网络上传输 或者可以将它们的状态保存在磁盘上,是 JVM 内嵌的默认序列化方式,成本高. 脆弱而且不安全.Externa ...

  9. mybatis源码之我见

    以前一直想看mybatis的源代码,但是一直没找到入口(傻),最近看教程,有些感悟. 和起以前一样,关键代码我会用红色标记. 首先,先贴下我的dao和mapper,代码很简单,和平时写的hello w ...

  10. 显示调用C++中构造函数和析构函数(有什么弊端)

    1.C++中, 构造函数和析构函数可以被显示调用. 显示调用默认构造函数的语法: a.A::A();(不能写成a.A();) , 显示调用非默认构造函数的语法: a.A::A(7);(不能写成a.A( ...