【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

一套代码称霸 5 大端口,移动金融应用还能这样开发?

  • 2018-12-24
  • 本文字数:3805 字

    阅读完需:约 12 分钟

在全面拥抱移动互联网的时代,传统金融机构转战移动金融应用已是大势所趋。但银行转型面临的问题非常之多,不仅仅是机构属性复杂和用户留存率的问题,在开发层面也一样陷入了开发效率较低、缺乏统一化标准、运维困难和推广精准度不足等难题之中。北京时间 12 月 20 日下午,腾讯云发布了新一代移动金融开发平台,针对上述问题,在更好地帮助开发者层面上给出了一份可行的方案。

多端服务需要架构统一

据腾讯金融云总裁胡利明介绍称,腾讯移动金融开发平台(Tencent Mobile FinTech Platform,TMF)整合了腾讯在移动产品中开发、测试、发布和运营的技术能力,针对金融产品体验差、玩法少和渠道单一的问题打造,能降低开发周期,帮助金融机构低成本高效率的打造移动金融服务。


一般来讲,移动金融应用可以有四个渠道获取用户。HTML5 页面可以让用户达成初步了解,进而实现引流;微信公众号则可以给用户提供内容,帮助获取用户;而小程序则可以提供一些基础的服务,满足用户轻量级的需求;最终才是 APP,可以帮助用户完成金融交易等重量级的内容服务。


在 APP 端有安卓和 iOS 两个生态,加上上述提到的 H5、小程序、公众号渠道,开发者通常情况下要面对共 5 个不同的端口,面向不同的端口开发不同的内容。但实际上,金融机构想要完成瀑布式的研发流程,很难将这些事情全部完成。银行的业务往往提供给多个平台进行开发,每个开发商都有基于自身框架的开发方式,多个平台就意味着多个应用和框架,很难同时将其运营好。这种情况下就需要一个统一的开发平台解决多供应商生态下的统一问题。


TMF 一体化开发平台则提供了“1+3+N”的方式来解决这些问题。“1”指的是统一的开发平台提供了开发、运维、运营和安全等内容统一化。“3”则是提了传播、场景和 AI 三大工具箱,“N”则是实现多端研发。简单点来说就是可以用一套代码在不同端口的复用,提升开发效率。



从 TMF 的设计体系层面来看,最外层是设计的语言,整体过程中需要使用共同的语言;第二 #层,则提供共同设计原则保持框架;第三层提供金融业务为基础,基于业务展开,理解业务需求和特点,以达到进一步落地;最中心层是设计的基础层,包括了组件库、模板库、流程库和合规库。

统一框架解决不同体验问题

在金融移动客户端存在一些问题,通常不同业务有着不止一个客户端,这样带来的挑战包括:


  • 不同开发框架和开发体验的不一致,以及代码和运维运营方式的不一致,从而使机构的运营和运维变得困难;

  • 不同内容不能复用,也无法统一规划和统一使用;

  • 基于不同设计体系,用户体验设计也无法做到统一。


如果是统一框架开发,本身会有相互隔离,导致多端协同无法完成,多平台传播问题难以拉动,因而无法推动业务很好的发展。而 TMF 平台要解决的重要问题就包括开发框架的统一和推送的统一。

统一开发框架的设计原理与实现

在移动端开发一般有两种办法,一种是在开发过程中用纯前端——也就是 H5 的方式来实现,其优势在于能够跨端实现、开发效率高、在 iOS 和 Android 等多平台都支持,也可以做动态发布,但问题在于体验比较差,对原生部分调用和控制较弱。


而另一种则是在终端开发实现,利用原生代码调用控制能力比较强,体验也比较好。但问题在于开发效率比较低,而且无法跨平台实现;在发布时也比较麻烦,需要打包到应用市场才能发布,不能直接更新生效。虽然当下可以通过热补丁实现,但整体来看依然有一些瑕疵。


为了兼顾效率和效果,腾讯云决定推出一个新的开发框架 Hippy,帮助使用者用纯前端的代码实现终端效果。代码采用了前端的代码实现,但效果基本能达到终端的原生效果。



如果类比 java 的跨平台,Java 强调可以跨平台,但其本身只是在原生之上套用了一层虚拟机,通过虚拟机来驱动内容效果。因此很多原生架构是在通过纯 C 语言开发时性能很好,但问题在于不能跨平台,代码无法复用。Hippy 在终端的情况也是类似的,于是腾讯云技术团队通过虚拟层实现跨平台,基于这种理念打造了纯粹的跨平台能力,用户也能基于此实现跨终端开发。



目前来看,大多数企业会采用 H5 来编写移动端页面。而在落地时,业界有很多流行的 H5 框架,基于对金融行业的了解来看,目前大多数开发商都在使用 Vue 和 React 来做。因此腾讯云技术团队在研发时也是支持 Vue 和 React 的,从而降低未来开发商的迁移难度。



如上图所示,Hippy 的架构最上层是组件层,向下架构包括了 Render 解析层和 SDK 等。此外,配套上 Hippy 本身还需要提供一些发布工具,这样可以支持离线包和热更新,保证进一步提升用户体验,使其与原生体验基本一致。


Hippy 与 H5 进行对比的话,在运行时占用空间较小,对内存占用也比较小,加载时间比较短,运行的帧率比较高,对原生的控制能力强,体验和 native 原生近似。同时用 H5 前端流行的框架 Vue 或 React 开发出跨平台的应用,兼顾 H5 开发的高效率和 Native 的体验性能。


此外,TMF 的一个重要方向是通过 API 开放,其核心一是要解决安全问题,二是在架构层实现微服务化。所以目前 TMF 在统一开发框架上通过接口实现了与微服务技术的打通,前端服务可以被拆成组件和模块来看待,在后端调用上则直接采用的是微服务思路。


总结来看,借助一份代码实现多端复用的的核心在于开发的语言用的是 H5,本身就有多端实现的特色,但是整体呈现效果可以实现原生效果,因此可以一份代码多端使用。

统一开发下的移动推送能力实现

在 TMF 平台中,移动推送能力也是值得重点关注的一点。其具有每分钟 1800 万推送的能力,单推毫秒级和全推秒级的能力,与腾讯系应用共享推送通道能够保障高抵达率和稳定长连接,并且能够精准分析用户按上百种标签实现精准效果推送。那么这些是怎么实现的呢?



首先需要明确的是,在移动端推送主要需要解决的问题是推送和营销的问题。从底层核心技术来说,TMF 平台主要是基于 LBS 技术的位置推送。平台的优势主要有以下四点:


第一,具有统一推送能力。TMF 除了具备自身推送的通道,还可以和厂商的推送通道进行打通和互补,整体具有统一性;


第二,推送的核心保护率很高。通过 SDK 实现保活,因此只要用了 SDK 保障活跃性就可以保证触达。但问题在于,有的硬件平台和软件可能会杀掉部分进程,这就导致用户收不到 Push 消息。因此,想保障推送效率就需要借助一些高频服务,保活共享 SDK 通道,实现多端保活。


第三,平台支持基于 LBS 定位的推送。可以针对某个商圈的人进行高精度的推送,让整体推送从通知的属性变成营销的属性。


第四,平台支持公众号、短信、各类厂商、智能家居等各种内容分发方式,不同的接口提供推送,同时,平台也支持按照标签的进行的定向推送。移动推送技术架构如下图所示:


统一化运维提升运营效率

开发框架的统一解决了开发的基础,但想进一步提升效率还需要在后续的运维和运营阶段继续进步。平台在这两个方面主要提供了数据埋点模板化、A/BTest 常态化、统一发布工具等能力。



在数据运营方面,数据分析人员 80%的时间在数据提取和处理上,传统的数据采集需要进行全埋点导致效率不高。TMF 平台提供埋点方式全埋点、可视化埋点和代码埋点三种埋点方式,并根据不同的需求场景,结合不同的埋点方式。


全埋点数据多但需要进行数据清理和找到关键数据;可视化埋点可以针对热点调整集中性的变化,也可以由分析人员进行埋点,由于本身具有可视化因此可以有非开发性埋点,便捷而且具有标准化模板;针对一些个性化问题难以解决时,就可以用代码埋点解决,多个方式综合使用来解决不同场景下的不同需求。TMF 平台提供的 6 大分类,27 小类,80+个指标,可以改变本末倒置的数据分析问题,提高数据应用效率。


为提升发布效率,借助 A/Btest 提供系统化的版本,可以提升整体开发效率。具体流程如下:首先需要提供整体开发框架,支持做两个版本;然后需要能够发布,数据分析平台可以提供不同标签的用户进行不同的验证工作,然后把 AB 版本推给打有不同标签的用户群进行试用并收集用户反馈;再是提供预设的工具,进行大规模的预演,当看到数据后改进业务数据和体验,再进行数据预设,然后构建产品,做 ABTest。当然,这些测试都需要系统化和工程化的理论体系来支撑。


进一步来讲,一些相对简单的需求可以通过可视化开发让业务人员基于开发平台完成,在发布时可以免于测试,灰度能力支持预览可以先检验问题。可视化开发在 UI 上的调整是在平台框架上进行的,不会触及代码就不会产生 Bug。另外,开发往测试转移的流程也已经在需求方完成,所以不会涉及漏洞和问题,这样既完成了需求测试,也可以实现免测试发布。


为了继续提升开发效率,平台还提供了三大工具箱。传播工具箱能够释放社交玩法,基于 LBS 和腾讯大数据库准确引导用户;场景工具箱则是为应用提供跨界互通的能力,基于社交生态触达用户。AI 工具箱则可以拓展智慧玩法,可以提供静默活体检测等方式降低人脸识别使用门槛,产品设计的创新与 AI 能力的应用可以提供更多玩法,吸引用户使用。



在安全方面,平均每款金融 APP 存在 65 个漏洞,并且其中 23%为高危漏洞。因此产品需要增强用户的安全信心,具体做法可以有三个方面,首先,APP 需要有相关品牌的背书,强绑定自家品牌;其次,操作安全要求在一些操作中设计为可逆的,当错误不可被避免时,应该对用户进行明确引导;第三,实时呈现收益让用户腾出更多的时间来明确感知财产。


整体来看,TMF 平台对于金融移动端开发的效率提升具有重大意义,能够跨平台实现统一。无论对用户还是开发者而言,都可以拥有更好的使用体验和更丰富的场景体验。


2018-12-24 10:483289

评论 2 条评论

发布
用户头像
又没有公开,扯再多也没用,还是研究Taro吧
2018-12-28 10:34
回复
没有更多了
发现更多内容

基于华为云ModelArts的水表读数识别开发实践【华为云至简致远】

科技云未来

水表读数识别项目

国内部分手机游戏开始显示用户IP属地

郑州埃文科技

游戏 手游 IP归属地

QCon 回顾 | Data Fabric:逻辑统一、物理分散

网易数帆

大数据 数据湖 降本增效 Data Fabric

开源一夏 | RuntimeException 子类

六月的雨在InfoQ

开源 8月月更

LeaRun模型驱动开发框架 重塑企业生产力

力软低代码开发平台

Netty入门 -- 什么是Netty?

Bug终结者

Netty 8月月更

【高并发】别闹了,要实现亿级流量下的分布式限流,这些算法你必须掌握!!

冰河

并发编程 多线程 高并发 协程 异步编程

企业“数字化转型”成功的2个必备条件!

优秀

数字化转型

阿里云数据库PolarDB开源人才培养计划发布!万元好礼等你来拿!

阿里云数据库开源

数据库 阿里云 开源 认证 polarDB

永续合约交易所系统开发逻辑详情

开发微hkkf5566

如何用精益敏捷组合管理,提升研发效能?|ONES 研发管理大师课

万事ONES

什么是Shell?从小白到入门你只差一个它

Albert Edison

Linux centos 运维 shell脚本编程 8月月更

企业进行知识共享的好处有哪些?

Geek_da0866

调研阶段复盘

Geek_XOXO

复盘

如何让您的wiki内容更高级?

Geek_da0866

开源一夏 | 基于 Serverless一键体验FastAPI

六月的雨在InfoQ

阿里云 开源 Serverless FC 8月月更

培训预告 | 企业应用现代化实用教程——DevOps方法论及最佳实践篇 8月11日上线

York

DevOps 云原生 团队建设 降本增效 应用现代化

急了,Mysql索引中最不容易记的三个知识点通透了

知识浅谈

8月月更

2022纯手工打造1700道Java高级工程师面试宝典(含面试题解析)

Java工程师

Java 面试 八股文

APICloud AVM 封装日期和时间选择组件

YonBuilder低代码开发平台

安卓 低代码开发 多端开发

Go-Excelize API源码阅读(四)——Save()

Regan Yue

Go 开源 源码刨析 8月日更 8月月更

经验分享|低成本快节奏搭建企业知识管理系统的方法

Baklib

文档管理系统对于企业来说有哪些作用?

Baklib

Spring Cloud Stream 消息发送

急需上岸的小谢

8月月更

Taro小程序跨端开发入门实战

京东科技开发者

小程序 taro 开发 移动端

以数治企,韧性成长,2022 年中国 CIO 数字峰会成功举行

金蝶云·苍穹

运筹帷幄决胜千里,Python3.10原生协程asyncio工业级真实协程异步消费任务调度实践

刘悦的技术博客

Python 协程 Async Python3 协程原理

深度解读 | 关于SBOM最基础元素,你需要知道的(Part I)

安势信息

开源 漏洞 SCA SBOM 最基础元素

Linux下Docker安装部署以及云原生的理解

Geek_acae888666

云原生 Docker 镜像

mysql进阶(二十九)常用函数汇总

No Silver Bullet

MySQL mysql常用函数 8月月更

openEuler 资源利用率提升之道02:典型应用下的效果

openEuler

开源 数据 cpu 操作系统 openEuler

一套代码称霸5大端口,移动金融应用还能这样开发?_架构_贾凯强_InfoQ精选文章