前端专家叶倍宏谈风口浪尖下的微信小程序

随着正式开放公测,微信小程序再次万众瞩目,越来越多的企业和个人涌入到小程序开发的大军中。有人说,小程序是 H5 应用,也有人说它是原生态应用,也有人说它两者都不是。那么,小程序究竟是什么?如何开发?用来哪些前端技术?小程序的出现对 App 开发带来什么样的冲击?本期,【开源访谈】邀请到了专注于前端技术的叶倍宏老师,与大家分享他是如何看待风口浪尖下的小程序。

【本期嘉宾】叶倍宏。加拿大 UBC 计算机本科。 毕业后在加拿大支付公司 Versapay 任职。 回国多次创业,先在深圳小象网任合伙人 CTO,之后在大理远程自由职业。2016 在广州创立思客教学,专注于前端培训。

【访谈实录】

1)基于什么想法在小程序出来第一时间就做了微信小程序开发?

小程序(内测)一出来刷爆朋友圈时,让我想到了之前 IOS 的 Swift 语言出现时火爆的场景。作为前端技术人员,基于兴趣和尝鲜,觉得这个值得去关注。

刚出来(内测期)除了 200 个内测资格的账号外,其他人看不到任何的技术框架、文档。后面时内测者在测试后将一些内容、文档放到网上。然后我就开始尝试做小程序。

2)开发微信小程序过程中用了哪些前端技术?

微信小程序一出来,大家都在猜测是基于什么技术,是 H5 还是原生。它的框架看起来既像 H5,又像原生。小程序写的是 H5 代码,但是它又不遵从 H5 的标准写法。它很多方面借用了 Web 技术,但很多细节又不一样。

如果你是前端开发者,可以快速开发小程序,因为概念基本相同,如风格、Javascript 是一样的。但具体接口不同,不能 100% 可以直接套用,一些事件的处理小程序有自己的标准。比如点击一个按钮,代码需要去审核、发布请求等。

如果是在浏览器里面,小程序想做一套完全属于自己的标准而不需要去遵从浏览器的标准。于是大家猜测小程序可能是要用 React Native 去实现。仔细研究后,发现它只是模仿了 Web 的架构跟思路,具体实现还需要按照它所在的平台需求去实现。所以概念相同,实际不同

我估计小程序是想用原生的技术去实现框架,后台还是 H5 实现。就目前来说,小程序完全就是 H5。

3)在开发小程序过程当中遇到的最大困难是什么,如何解决的?

小程序的第一个版本应该是在 4 月,那时候很多人不知道是什么。9月底放出 200 个内测账号。到目前为止也就是也就是 6-9 个月的年纪,还非常年轻。目前是处于测试阶段,还有很多不足的地方,比如工具不完善,Bug比较多,无法实现代码复用。从9月内测发布到现在,已经有了非 常大的改进。代码编辑器越来越完整, Bug 也比较少了。

从整体来看,小程序做的很好。它的 MINA 框架把数据风格和动态的东西分离。

我们更应该关注的是小程序的迭代速度,相比之前,它完善了多少。也许两难后你就会对它有对软件的那种完整期待。

4)有评价说微信又一次「改变世界」,不乏言论认为小程序可以取代原生App,对此你是如何看待的?

我觉得“取代”这个词用的不太恰当,也不可能是一对一的取代。我觉得小程序要做的是轻量级的应用。通过在微信里设计一个界面(页面)或添加一个按钮就可以 去满足用户需求。比如微信支付,我只需要在微信里打开对应页面进行操作,简单的一个动作就可以完成。而不是去做一个完整的复杂的应用。小程序只是一个页面 的复杂度,可以用于不同的场景,不同的复杂度。

做一个 App ,需要开发 Android、IOS,成本较高。完成开发后还需要考虑推广。于是现在很多的创业模式是开通一个公众号,利用现在公众号已有的功能,完成一些简单的服务 就够了。如果三年后,小程序会变成创业的一个默认选项,成为一个常态,我觉得说“改变世界”是有可能的。但是从现在到三年后这期间,会发生什么没有人可以 预测。我觉得小程序是会出现新的种类应用,在不同的场景下去使用的。
5)不少开发者认为轻量级“用完即走”小程序将难以满足开放团队的预期,你有过这方面的担忧吗?

有句话叫“软件吃掉世界”,即所有的需求都可以用软件形式去满足。我觉得可以理解为“微信吃掉世界”。当用户所有的需求,做成的各个应用都可以通过某种方式在微信上去实现了,那么就不需要再装一个 APP 应用了。

从开发者角度看,目前先程序的技术框架并没有很大创新,还有很多的细节有待改善。它与公众号的差别并不大,做个 H5 混合应用放在小程序上也是行得通的,这样的话,为何要写小程序呢?

小程序只是给微信添加了一项新的功能。我觉得小程序未来的发展趋势应该是:为满足用户需求,在微信的大背景下,慢慢添加功能用以满足需求。装 APP 应用的主力会越来越少。

6)小程序的出现很大程度将冲击 APP 开发,如何看待两者之间的关系。

现在APP 开发就已经受到冲击了,好像和小程序无关。

开发一个 App 的成本相对较高。需要开发 Android 和 IOS 两个平台,这是技术方面的成本,还有运营方面的成本,如何将产品和平台推广给用户。所以,如果不是已经有了成熟的产品,很多创业者为了降低成本,会考虑一 些跨平台的移动技术,比如 H5 混合性应用,React 原生应用,都可以实现跨平台应用。用简单的方法先将品牌和推广做起来。这也是创业的一种趋势吧。

另外就是现在用户的注意力基本在微信上,打开应用的几率很小。如何借用微信引流到服务里面去,这便是很多创业团队在思考的问题。这时候,他们就会想说做一个 H5 应用、服务号等来实现。所以说,App 开发相对地变成比较成熟的一种需求。

7)是否鼓励大量的程序员参与到小程序的开发学习中来?

1)从技术层面来看,我觉得不要太着急,小程序推出来还不到两个月。等它更完善更成熟,有了更多的示范、教学内容后再进场。如果你已经有了前端技术,那么一周内完成小程序的开发是完全没有问题的。

所以我建议所有程序员都可以学学前端。前端的技术是通用的,React  Native 、小程序、 H5 应用,除了细节上不同,架构、结构、概念都是差不多的。 Web 技术是值得学习的,学了不会吃亏。

2)从产品层面,我觉得可以早点尝试。当作是磨练和经验积累的过程。现在最基本的问题是对还不清楚App、公众号、 小程序的差别是什么,各自适合什么样的场景。刚好可以利用现在的机会去尝试,去体验,学习小程序一系列的模式,比如满足用户的什么需求,产品如何做,如何 去和 App 竞争,怎么去推广等等。到小程序成熟了推出市场,有了上面的积累,比较容易做出好的产品。


关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流