查看原文
其他

微信留给 App 开发者们的时间不多了!

唐小引 CSDN 2018-07-22

作者 | 唐小引

2017 年 1 月 9 日,小程序诞生之时,张小龙还在「苦口婆心」地帮助大家更好地理解究竟什么是小程序。

2018 年 7 月 11 日,在打着「发现更好的小程序」Slogan 的 2018 微信公开课第七季·小程序专场的现场,微信团队首度披露了小程序核心数据 —— 已发布 100 万+ 的小程序,已有逾 150 万开发者和 5000 个第三方开发平台,小程序日均打开次数为 4,54% 的次数为用户主动打开。

现在,微信再也不需要讲解小程序是什么,小程序做什么用。

用户已经形成了主动使用小程序的习惯。

而微信也「势如破竹」地开启了下一城,据微信团队介绍,除却已有能力与不断开放的新功能之外,微信当前正在对小程序云、可视化编程、全面升级自动化测试、全力打造开发者社区以及走向国际化进行规划。

过去半年,微信小程序的开发团队都做了什么?


一、让小程序更容易开发,一大波新技术能力正在到来!

  • 自定义组件 2.0

据负责小程序组件接口开发的微信公开课讲师黄思程介绍,小程序开发团队在做一项决策时,很大程度上以「是否可以帮助开发者,让开发者更容易开发小程序?」为依据,直白来讲,就是是否能够做到让开发者「直接拿来用」。

黄思程在微信公开课上

在微信小程序所有的基础能力建设中,小程序开发团队将「自定义组件」视为最基础的能力,黄思程表示,「这个自定义组件,实际上就是把一些比较通用的能力封装起来。我们可能会看到一些小程序的几个页面间,存在相同或类似的区域,此时即可将这些区域逻辑封装成一个自定义组件,由此实现代码重用。或者说,有一块逻辑相对独立,也可以将其封装为一个自定义组件,使得代码架构更加清晰。」

用自定义组件有什么好处?黄思程这样说道:「代码复用是其中一个,做到代码复用后,代码量也会相应减少,这意味着小程序包体积也会减少(CSDN 编者注:毕竟因为包大小这个问题,小程序提出了分包加载方案)。在开发小程序时,可以多用组件化的思想,如此在开发完后,就会发现代码的组织架构变得很清晰,模块解耦、依赖关系也很清晰,对于后期维护相当利好,可以更快更精准地定位问题。此外,使用自定义组件,小程序的渲染性能会更上一层楼。」

而在近期,小程序开发团队正在规划为自定义组件提供一些更高级的特性,让开发者更容易地去开发。黄思程表示,当自定义组件多时,会比较繁琐,因此微信计划提供一个全局的定义,只要在全局定义后,在所有的小程序页面均可使用。

同时,开发者封装了一堆自定义组件,但都放在同一个目录下,使用起来需要一项一项的配置里定义,由此微信考虑提供一种通配符的定义,可以进行批量定义。

除此之外,微信也计划提供类似 Computed 和 Watch 的能力,它可以使代码逻辑变得更加清晰,开发者可以更好地组织代码。另外还计划支持一个 Component 构造器的插件,就是在实例化一个自定义组件时,允许开发者在构造器阶段,加入一些逻辑,方便进行一些扩展,甚至是可以扩展成 Vue 的语法。

  • npm 包管理能力

黄思程表示,当自定义组件开发完成后,许多开发者会选择将其开源,但是这时别人使用相应组件会比较麻烦,需要将代码手动复制到项目中,而当项目更新时仍然需要手动执行,过程相当地繁琐。由此,微信小程序开发团队计划提供 npm 包管理能力,将会于近期开放,此后,开发者想要引入开源项目就相当简单了,只需在项目中声明,随即进行简单的命令安装即可使用。

  • 微信官方自定义组件

同时,小程序开发团队还在思考由微信官方推出一些自定义组件。

为什么不内置到基础库里呢?这个内置组件一定是开发者难以实现或无法实现的能力。

由此,小程序开发团队开始了在自定义组件上的摸索,想要基于这些内置组件里,封装一些比较常见、交互逻辑比较复杂的组件开放给开发者使用,让开发者更容易开发。比如弹幕组件,开发者不用关注弹幕怎么飘,可以大幅节省开发成本。

同时,微信还将为开发者提供规范和模板,帮助大家设计出更好用的自定义组件,更好地使用。

二、光有能力还不够,如何让小程序的体验更优雅便捷?

  • 小程序体验评分

黄思程在现场讲道,「我们在使用小程序时,经常会遇到图片加载很慢,或者请求服务器太慢,一直在 loading,load 太久可能用户就直接离开小程序了」。

而于开发者而言,遇到这些问题很有可能涉及产品需求太多、不知如何定位问题、无法找出性能问题、不知如何解决优化等各种状况。为此,微信官方团队即将推出体验评分功能,可以动态分析进行检查,该功能会提供一份详细的分析报告,指出小程序所存在的体验问题,具体指明发生地方,同时给出优化指引建议。

  • 支持无障碍,是小程序不应该缺失的部分

信息无障碍是我们普通人在日常的生活与工作中很少接触到的存在,但事实上,仅中国就有超过一亿人的庞大障碍群体。优秀的工程师们,除了工程技术,也在关注这些人性温暖的一面。CSDN 博客专家青润曾经说过,「我们帮助他们,也是在帮助我们的亲人或者未来的我们,我们不可能保证我们这辈子就不会遇到车祸,不会有行为障碍的亲人出现,所以,我们应该做出这样的努力,来为他们提供更好的支撑。」

而今天,在微信小程序的主场,我们看到了微信将支持无障碍作为一项非常重要的能力在小程序上突出。「现在如 iOS、Android 等智能手机对于有障碍的人士均提供了很多友好的辅助功能,小程序也不应该缺失,让这些有障碍的人士在使用时能够收获更好的体验,比如手机在使用读屏功能时,点击图片应该能够读出这是一张图片,同时开发者对该图片加以说明。如果点击的是文本区域,那么应该能够读出文本内容,这样盲人就可以明了如何操作了。」

微信小程序的下一城:低门槛、连接一切的生态体系

  • 可视化编程能力

在与微信小程序团队的交谈过程中,反复听到的是微信对于人人均可开发小程序的愿景,很多人说,微信小程序对于技术、流量上的支持似乎并不如前不久刚发布的百度智能小程序,但相比于入口,微信更想做的似乎是让一个不懂开发的小朋友都可以制作一款小程序,随时分享给父母亲朋,于拖拽间一切皆可完成。

负责微信小程序开发生态后台支持的微信公开课讲师彭宇洋在演讲中与我们详细分享了小程序开发的生态体系,以及小程序的未来规划。

其中尤其重要的就是这个可视化编程能力。

据彭宇洋介绍,「可视化编程是一种全新的开发模式,通过简单的拖拽就可以搭建自己的小程序。对于没有界面编程经验的开发者来说,这种帮助无疑是革命性的。未来我们相信那些没有前端开发经验的开发者,甚至没有编程经验的普通人,都可以构建出一个非常漂亮的小程序。

  • 小程序云

在降低了前端开发门槛后,微信小程序团队同时还在思考,是不是可以让开发者们不用关心复杂的后台架构,只需要编写一些核心的逻辑代码就可以拥有自己的后端服务。

过去,微信与腾讯云合作提供了一些云解决方案,这些方案在一定程度上为开发者带来了帮助,但客观上使用比较复杂,且云能力不足。

为此,微信小程序与腾讯云团队进行了更进一步的合作,在原有方案上做全面优化,将云作为小程序的一项基本能力,推出了全新的小程序云。

小程序云不需要服务器搭建,也无需域名配置,其本身就是小程序基础能力的一部分。直接通过简单的 API 调用,即可获得数据库、文件存储等云端能力支持。同时,微信小程序团队为开发者在开发工具中设计了一个云控制台,所有云能力均可通过可视化工具进行管理。

  • 全面升级自动化测试

说完前后台,再看测试。微信小程序全面升级了自动化测试引擎,开发者可以自定义测试语言,并且可以在工具上录制测试脚本,并生成更权威、更系统的自动化测试报告。

  • 开发者社区与走向国际化

而在微信小程序实现了 150W+ 的开发者之后,微信小程序将「全力打造开发者社区」和「走向国际化」提上了日程。未来,小程序不仅将部署更多海外服务节点,还将提供测试号帮助海外开发者体验完整开发流程,实现文档、教程的多语言支持,开发者工具的多语言支持,不仅是国内开发者,更有更多海外开发者的相互交流。

小程序并不是站在 App 的对立面


从小程序从诞生到现在,提供的新能力越来越多,它毋庸置疑地在一定程度上蚕食冲击着客户端开发者,包括微信小程序、百度智能小程序,国内 Android 手机厂商们联合推出快应用等所带来的影响是不可避免的,并且很多企业相应地组建了小程序开发团队,开发者会有这样一个疑问。

不过,从微信小程序团队视角中所传递的却并没有极其强烈的信号。甚至于微信公开课讲师臧静在演讲中直言:

我们并不是站在 App 的对立面,如果开发企业或个人有很好的用户基础,并且有一定的服务场景,是可以通过小程序帮助做一些服务的应用和延伸。

而在我们的采访中,微信小程序零售行业负责人于洪潇也传递了这一点,「我们最终的目标是让用户能够在微信的生态里,不仅是微信的生态,或者是整个生活中能够有更多、更好的服务体验。」

甚至于在微信内部,张小龙都没有为小程序设定明确的 KPI,「这是一个自然选择的过程」,微信小程序产品负责人陈浩如是讲道。

这让我不禁想起了张小龙的产品哲学。张小龙曾在接受吴晓波的访谈时说过,「一个产品的流行要看用户口碑,看用户口碑自发增长的分界线,如果没有达到这个界限,如果没有体现出自生长能力,推广就没有意义。」

这就是腾讯的「企鹅意识」,「在动手做任何事之前,先想想自己做的事情解决了用户的什么问题,是否创造了有益的用户价值。」



征稿啦

CSDN 公众号秉持着「与千万技术人共成长」理念,不仅以「极客头条」、「畅言」栏目在第一时间以技术人的独特视角描述技术人关心的行业焦点事件,更有「技术头条」专栏,深度解读行业内的热门技术与场景应用,让所有的开发者紧跟技术潮流,保持警醒的技术嗅觉,对行业趋势、技术有更为全面的认知。

如果你有优质的文章,或是行业热点事件、技术趋势的真知灼见,或是深度的应用实践、场景方案等的新见解,欢迎联系 CSDN 投稿,联系方式:微信(guorui_1118,请备注投稿+姓名+公司职位),邮箱(guorui@csdn.net)。


————— 推荐阅读 —————


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存