返回 登录
1

近日微信小程序再发多项新功能,独家解读!

阅读2995

感谢“造程序”(微信ID:zaochengxucom)的授权发布。
责编:陈秋歌,关注微信开发等领域,寻求报道或者投稿请发邮件至chenqg#csdn.net。

8月30日晚,微信小程序又迎来了新的更新。透过这次更新,可以看出微信官方要把小程序的开发工具视为一个产品了。那些试图开发类似工具的,基本上可以省省心了。从这次更新可以看出,微信一方面是降低开发门槛,另一方面当然就是大力扶持第三方。

毕竟,有了金钢钻,才能揽瓷器活,是不?

小程序开发工具

全新的版本号

前一天,我们使用的小程序开发工具的版本还是:0.22.202200,当下最新版本号一下子跳到了:1.00.170830。

看来官方认为这是一个可以见人的版本了,总算可以用「1」打头了,立起来了。

虽然本次开发工具有了比较大的更新,但开发整体布局还是「左中右」的方式。开发习惯也沿袭了之前的方式。

腾讯云集成更多的底层方案

在后端,经过本次升级,小程序开发工具自动集成了自家的腾讯云服务,服务端使用Node.js的方案。关于这一点,各花入各眼,对Node.js熟悉的小伙伴可以试一试。

造程序使用的是Java服务端的开源方案:https://github.com/lihuadong/xiaochengxu4j,感兴趣的同学可以参考,后面会陆续把相关代码释放出来。

使用腾讯云的好处,就是所有的底层方案已经帮你集成好了,包括了WebServer、数据库、文件存储、负载均衡、CDN。

云测试系统可以模拟真机测试环境并生成报告!

为了方便开发者检测小程序程序缺陷、评估小程序产品质量,这次升级,微信提供了免费的云真机测试环境以及一整套测试方案。

在小程序交付到真实用户手中使用之前,你可以将小程序分发到云平台以模拟用户使用的方式进行测试,执行完毕后自动生成测试报告。

根据作者亲测,报告的反馈速度非常快,上午申请,下午就收到了报告。

图片描述

云测试报告生成界面

云测试的内容包括:缺陷发现、性能数据分析、机型覆盖等。

图片描述

看到这个更新,小程序开发者肯定别提多高兴了。要知道,之前使用市面上的测试解决方案是要费不少银子的,这点上对微信小程序真的太宠爱了。

同样的测试方案换到别家平台都是需要真金白银的。

小程序管理后台

数据统计工具支持「性能指标」查询

之前,小程序提供了数据统计工具,使开发者可以对小程序的流量进行精细化的管理。现在数据统计工具还支持对「性能指标」的查询,开发者可以查看到小程序接口调用的性能分析。

当出现小程序「脚本错误」或「程序异常」的时候,就会通过微信群的方式发送通知,跟之前服务号的路子类似。

图片描述

举个例子,像「玩社群」和「给赞」这样的爆款小程序,在使用这个功能之后,就能及时地发现接口的响应情况,根据接口的调用情况再实时地调整后台的负载——添加服务器或提高数据库的性能。

当然,如果是基于云平台的话,只要架构合理,就能实时的扩展后台响应能力。

图片描述

小程序运行错误查询界面

灰度发布功能上线

这是一个神奇的新功能。「灰度发布」作为App时代较为成熟的技术之一,对于小程序来说却是一个相对陌生的词汇。

因为微信巨大的流量基础,很多产品在一夜之间就爆火起来,对于很多团队来说都是巨大的考验。功能考虑不周全的,或是服务端承接不了的,都会丧失大量用户。

有了「灰度发布」功能,开发者可以给产品一个修复的缓冲期。这点上可以说是微信把自己的产品经验给贡献出来了。也就是说,「灰度发布」允许开发者每次上线新功能的时候,可以根据用户比例一点点的释放,直到15天之后再全量开启。

作者的团队最近在开发的「懒人小程序」,第一个版本需要全量发布,后面的迭代版本就可以先给5%的用户使用。收集到一些反馈意见之后,可以及时地调整产品功能或修复bug,后台接口调用的压力的情况也能通过真实的流量基础反映出来。

与这种方式类似的还有一种方式——AB测试。也是新版本先发布给一半用户,通过观察可以看到哪种方式的数据比较好,然后再定最后的方案。

图片描述

全新WXS脚本语言

做Web前端的小伙伴可能都比较熟悉像PHP、JSP、ASP.net等拥有前端脚本的语言。对于一些简单的操作来说,在前端就可以完成了。

这次微信发布了WXS脚本语言。WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构。之前所有的页面数据需要绑定之后才能显示,现在在页面上就可以直接定义操作。

比如在页面上输出:hello world。

之前是这样的:

/**
  * 页面的初始数据
  */
 data: {
   status:"",
   statusArray: [],
   greeting:""
 }
/**
  * 页面的数据绑定
  */
success: function (res) {
       that.setData({
               statusArray: res.data.resdata
               greeting:res.data.greetiing
})

经过定义、绑定才能在页面上显示,而且代码都只能写js文件中。而现在,既可以写在wxml文件中,还可以写在单独的wxs文件中。

除了数据的定义,还能在页面中定义函数,进行运算操作。

来看看现在的实现方式:

<!--wxml--><wxs module="greeting">var msg = "hello world"; module.exports.message = msg;</wxs><view> {{greeting.message}} </view>
还有一个大师兄很喜欢的模块。这样很多功能就能复用
<!-- 下面的 getMax 函数,接受一个数组,且返回数组中最大的元素的值 -->
<wxs module="findMax">var getMax = function(array) {  var max = undefined;  for (var i = 0; i < array.length; ++i) {    max = max === undefined ?      array[i] :      (max >= array[i] ? max : array[i]);  }  return max; } module.exports.getMax = getMax;</wxs>
<!-- 调用 wxs 里面的 getMax 函数,参数为 page.js 里面的 array --><view> {{findMax.getMax(array)}} </view>

从上面代码可以看出,理论上,编程语言需要涵盖的内容,例如:变量定义、运算符、三大结构(顺序、选择、循环)、函数(模版),以及函数库基本上是引入全套ESS(虽然现在还很弱小)——WXS现在都全了。

图片描述

最后,本次释放的大招比较多,作者也还没有完全消化,后续的文章中,再一一给大家说明。

评论