专栏首页IT大咖说XpmJS —— 小程序后端开发思考和实践

XpmJS —— 小程序后端开发思考和实践

摘要

Linux容器技术很早就有,LXC的容器方案也早2008年就已面世;但直到 2013年 Docker 推出,才让容器技术红遍全球。Docker 没有高深底层技术,只是把 LXC“改”得更贴近应用场景,并且使用起来足够简单。本主题以 XpmJS 为主要例子,分享 XpmJS 的设计理念,以及 XpmJS 是如何改进微信小程序云端 API,帮助开发者提升小程序开发效率的。

视频内容

小程序与云计算

云端通信API

小程序在和云端进行通信的时候提供了wx.request、文件上传下载和websocket这三类API。

wx.request向后端发送http的请求。

提供了文件上传下载的API。

微信还提供了一组websocket的API,可以和后端websocket的服务器建立一个长链接进行双向通信。

WSS&HTTPS

小程序只支持WSS和HTTPS的协议,在传输层用TLS进行了加密。

所以就需要购买TLS或SSL证书,配置web服务器。这对于前端工程师来说是非常麻烦的,无疑为小程序开发增加了门槛。

后端开发工作

对于后端来说,需要搭建一个开发环境,实现session鉴权。然后要实现业务接口和管理后台,这两件事其实就是数据的增删改查,有时偶尔会调用微信接口,这样的重复劳动应该交给机器去做。

云计算的“进化”

云的作用

无论是移动应用还是小程序,用云主要是需要有一个账号管理系统,把对应的用户信息保存起来。

另一个比较大的需求就是数据存储。把一些数据保存到云端,在有多个终端的时候就可以共享云上的数据。

因为各大支付平台需要在云端交换数据,所以在云端会有支付需求。

即时通信主要是去实现聊天室的一些需求。

文件存储就是要把一张图片或一个文件存在云端,并有一个可以访问的地址。

从IaaS到BaaS

IaaS交付的产品是主机、网络和磁盘。在做后端的时候除了要编译后端代码,还需要配置后端的运行环境、做中间件等等,所以后端的复杂度比较高。

PaaS会相对简单一些。因为PaaS提供的是服务接口,做后端的时候只需要用我们的程序把这些接口串起来,就基本可以实现前面提到的那些功能了。

BaaS交付给开发者的是SDK+后台。

云计算有一个弹性伸缩的特性。IaaS是交由客户负责,云平台只提供扩展的能力,至于什么时候扩展、如何扩展,则要客户自己决定。

而PaaS和BaaS的弹性伸缩是由厂商负责,因为它们交付的是服务和后台,开发者无需担心。

国内外的BaaS平台

我们认为BaaS非常符合我们的需求,因为不用写后端程序,几乎可以减少一半的工作量。于是我们调研了一系列国内外的BaaS平台,发现Parse和Leancloud这两家开发者支持做得比较好。

我们需要怎样的云服务?

1、可以掌控数据,最好没有迁移成本。

2、不用做Web服务器配置之类和业务无关的事。

3、不用写后端代码,节省开发时间(成本)。

4、立即上手,不用学习一堆新东西。

我们需要的是一个可独立部署、开通即用的轻量BaaS平台。

搭建“云桥”

XpmJS

XpmJS可链接任何云计算资源,为小程序提供云端支撑。开发者无需编写后端代码,即可实现用户登录、websocket通信、微信支付、云端数据表格、文件存储等功能。

它包括了小程序SDK和后端服务器的程序XpmJS Server。

小程序SDK丨用户

用户登录只需要user.login这一行代码就能实现整个用户的登录和用户健全的机制。同时还会提供对应的管理后台,可以在这个管理后台里看到所有新注册、新登录的用户情况,提供用户信息的管理。

小程序SDK丨支付

支付的SDK同样也是通过pay.request这一行代码把订单信息写入,就可以呼出微信支付界面。每一条支付记录都会在后端有对应界面可以进行管理。

小程序SDK丨云表格

云表格支持ACL鉴权、JSON字段以及join,inwhere等多种查询。关系型数据库的SDK可以进行数据表增删改查的操作。

小程序SDK丨信道

信道功能主要是listen和send两个方法。Listen可以监听一个指令,调用send发送指令,监听指令里的代码就可以运行。另外还提供了websocket后端调试的工具。

XpmJS Server丨自由扩展

对于一些机密数据,比如API的Secret KEY,需要保存在云端。这部分需求可以通过编写XpmJS云端应用来实现。

XpmJS Server丨支持分布式部署

XpmJSServer支持分布式部署,通过修改配置文件即可添加多台前端,提升后端服务能力。

XpmJS RoadMap

XpmJS SDK

XpmJSSDK增加了数据存储、消息推送和视频直播。

今年会提供JS的SDK和android/ios的SDK,除了小程序之外还会支持一些混合应用开发的工具。

XpmJS Server

在后端集成一个NoSQL的数据库,新增消息推送和流媒体服务。另外会完善统计分析功能,提供XpmJS Server Hosting,推出一系列快速开发移动应用的培训。

今天要分享的就是这些,谢谢大家!

本文分享自微信公众号 - IT大咖说(itdakashuo),作者:王伟平

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-07-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 16个Spring注解,你知道的有几个?

    标识一个该类是Spring MVC controller处理器,用来创建处理http请求的对象.

    IT大咖说
  • 非常全的Web开发学习总结(4张高清大图)

    内容来源:原作者——amranahmedse,原文——https://github.com/kamranahmedse/developer-roadmap;译者...

    IT大咖说
  • 还在用 ifconfig/netstat,该更新点新技能了

    为啥要替代?因为大多 linux 发行版已经不默认安装 ifconfig/netstat了,反而预装了 iproute2 套件。

    IT大咖说
  • Python3.8 新特性-很有用的呀

    1、海象表达式****1 2、强制位置参数****2 3、增强型f-string****2 4、continue关键字的使用****3 5、as_int...

    大牧莫邪
  • MongoDB数据类型

    上篇文章我们介绍了MongoDB的最基本的增删改查操作,也介绍了一些基础的概念,MongoDB中每条记录称作一个文档,这个文档和我们平时用的JSON有点像,但也...

    江南一点雨
  • 教你用 Python 生成 GIF 动图 !

    最近啊 ,微信订阅号改变频繁 ,很多读者后台说 :小詹啊 ,我总是容易错过你公号的消息 ,现在没有置顶功能很难过啊 !

    小小詹同学
  • 【leetcode刷题】T137-出现次数最多的子树元素和

    https://leetcode-cn.com/problems/most-frequent-subtree-sum/

    木又AI帮
  • CMS Made Simple 注入漏洞(CVE-2019-9053)分析复现附利用POC

    刚好前一段时间分析了这个cms的一个插件showtime的一个任意文件上传漏洞,大家还可以在从往期的文章中找到这漏洞链接如下

    用户5878089
  • 优先级队列模式

    为发送到服务的请求确定优先级,以便高优先级请求能够得到比低优先级请求更快速地接收和处理。 在向各个客户端提供不同服务级别保障的应用程序中,此模式非常有用。

    只喝牛奶的杀手
  • GitHub项目推荐 | ChainerCV:计算机视觉中的深度学习图书馆

    ChainerCV是一个使用Chainer训练和运行神经网络以进行计算机视觉任务的工具集合。

    AI研习社

扫码关注云+社区

领取腾讯云代金券