欢迎来到外包站!
网站建设/软件开发/微信小程序开发以及交流学习。
免费发布信息
建站分类
外包站 > 餐饮行业新闻资讯 > 网站建设资讯大全 >  小程序开发日记 -- 2019/10/11

   

小程序开发日记 -- 2019/10/11

发布时间:2019-10-12 18:56:54  来源:网友自行发布(如侵权请联系本站立刻删除)  浏览:   【】【】【

 

图片来自 bobopic.com在移植微信小程序到QQ小程序的过程中,你是不是也遇到了无法继续使用微信云函数的情况。因为QQ小程序目前还不支持微信那样的云开发能力,所以移植后的云函数一下子就变成废物了
小程序开发日记 -- 2019/10/11

图片来自 bobopic.com


在移植微信小程序到QQ小程序的过程中,你是不是也遇到了无法继续使用微信云函数的情况。因为QQ小程序目前还不支持微信那样的云开发能力,所以移植后的云函数一下子就变成废物了,那么这时应该怎么办呢?


大家可能会想到,要么自己重新实现一套逻辑,发布成小程序用的接口;要么借助第三方的云函数功能,将微信端的所有云函数移植过去,当然同语言移植(这里指Nodejs)就非常简单了。


首先,我们来看看,如果自己实现一套接口的话,都需要做哪些事情:
  1. 购买一台服务器(已有可忽略);
  2. 寻找合适的技术或框架(同环境最好);
  3. 寻找合适的存储方案(非云存储);
  4. 改用新方式进行必要的逻辑研发和测试;
  5. 使用自定义的方式做统计和日志;
  6. 部署和维护;
我们可以预想到这里的主要工作就是,修改、拆分、组合代码以匹配新的方式。这么一来的确要花费不少功夫。但优点也是显而易见的:
  1. 可以使用强大的存储技术(如mysql)实现更复杂的业务场景(如联合查询目前云存储还做不到)
  2. 不受平台方的资源使用限制,如:目前微信免费云函数的执行内存只有256M,遇到耗时或有大量IO操作时很容易崩溃
  3. 多端应用共享调用,不仅仅小程序,web,app也可以使用同一套接口
  4. 灵活和自由控制
哈哈,喜欢造轮子的同学,可能毫不犹豫地就选择这么折腾了,毕竟自己可以控制一切呐。


我们再来看看如何借助第三方实现简单化的移植吧。


第一:使用微信提供的HTTP API
以前,我们只能在微信小程序内部使用云函数及云存储,而外部应用则无法访问到这些资源,这样就导致了什么呢?例如一个小程序使用了纯云函数和云存储作为支撑小程序的后台,那么维护后台数据只能通过IDE的控制台,要么就自己开发一个小程序版的后台管理系统。现在微信开放了外部直接调用云函数、云存储的能力:

https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/

重点:
利用这个开放能力,我们就可以实现一个连接其他端应用和云函数的封装,它将输入传递给云函数,且返回云函数的输出。那么QQ小程序是不是通过这个壳就可以完全利用微信版的云函数了呢?

没有那么简单,如果微信云函数涉及用户数据操作,继续使用的话,两个平台的数据就会相互污染(只有同一个数据库)。所以需要复制一版针对QQ小程序的数据库,涉及用户数据操作的云函数也要复制一份并修改操作数据相关的代码。与用户数据无关的云函数可以继续使用。


第二:使用阿里云的小程序Serverless
第一次接触这个东西,竟然通过阿里云的客服。以前公众号提到过我把日语助手移植到支付宝小程序时,费了不少时间,主要是那时支付宝小程序开发者的工具和平台还不成熟,一路填坑过来的。


当时使用的是叫Basement的一种云服务,其实和云函数是类似的,Nodejs环境,但是可以做的事情比较少,也不支持npm第三方nodejs库,导致当时只能移植了简单的几个云函数。


后来升级支付宝小程序时遇到了问题,在和一个客服妹子沟通时才了解到阿里云开始主推Serveless功能了,原来的Basement以后可能要歇菜了。


阿里云的小程序Serverless也是刚刚推出不久,文档真叫一个纠结感觉和之前的Basement混杂在一起,分不清楚。


小程序Serverless目前是免费的,支持Nodejs,Python和Java,Nodejs也支持安装第三方依赖,比较麻烦的一点是需要自己在本地Nodejs环境下安装依赖,开发调试后,压缩成zip包(包括依赖),上传到阿里云,并启动运行它。而支付宝小程序IDE还支持的不够好。


阿里云的小程序Serverless目前支持支付宝和微信两大小程序:


重点:
那么QQ小程序中能不能使用在这里创建的云函数呢?当然可以了,只不过要借助一下微信的配置。另外小程序端调用这些云函数时也要通过官方提供的SDK【mpserverless.js】。剩下的问题就是增加一套数据库和移植微信版的云函数了。

参考文档
https://help.aliyun.com/document_detail/130734.html

注意:下载mpserverless.js后,最好手动压缩一下,因下载下来的是未压缩的源文件,有500多K,小程序大小限制只有2M,压缩后能节省出不少空间。

第三:使用其他Baas服务
自从小程序流行以来,以前APP时代的服务商纷纷推出面向小程序的Serverless服务,并且利用他们的SDK,可以很方便地开发小程序。例如:LeanCloud、知晓云、Bmob等。这些小型服务商相对阿里云,微软Azure,Amazon等更能专注自身的服务体验,相当于小而美吧,但是免费就别想了。

目前日语助手使用了知晓云的教育版套餐,0.3元/天,但只用到他们家的模板消息formid收集和模板消息发送功能,如果把微信上的云函数和云存储全部迁移到这里,也可以支撑目前的日语助手了。


重点:

QQ小程序使用这些第三方服务时,除了将微信版云函数改造成这些第三方平台下的云函数外,还需要复制一套微信版的云数据库到第三方平台,最后利用他们提供的SDK,在小程序内调用云函数或操作数据库。


总结:

说了这么多,总结一下,不管使用哪种方式,同语言环境下移植最简单,另外为防止数据混杂需要新建一套存储结构(与微信版大体相同),同时改造微信版的云函数。

如果不想将数据按平台分几套存储,就要将用户体系打通,在各个小程序端增加统一的注册流程,采用同一套账号体系,而数据库也可以整合统一为一个。额。。。好像越来越复杂了,这还是小程序吗?

推荐阅读:
小程序开发日记 --2019/09/24日语五十音小测试
小程序开发日记 -- 2019/08/24(移植微信小程序到QQ小程序的一点体会)
小程序开发日记 -- 2019/07/17(实现云函数调用失败后的重试机制)
小程序开发日记 -- 2019/05/31(谈谈独立开发者的小程序变现道路)


责任编辑:师从年华
相关评论我来说两句
© 外包站 粤ICP备12015996号

友情链接我要申请