目前小程序正在被炒作,无数行业内外人士都对其抱有雄心,希望抓住机遇,一统天下,子孙后代。这再次证明,微信想流行什么,就能流行什么。这样的能力,估计国内任何人都无法比拟……
好了,废话够多了,咱们进入正题吧。作为一个想成为成功人士的人,我趁着国庆节研究了微信小程序,发现网上很多评论对微信小程序都有一定的误解。在接下来的内容中,我假设您已经对微信小程序有了初步的了解。如果你还不明白,请移步到开发文档,然后再回来阅读本文。
1. 小程序是一个
关于这一点,网络上引起的争议其实还是蛮大的。一开始大家的认知是微信小程序只是为了开发。然后当小程序真正出来的时候,大家发现原来的小程序和小程序比较相似,但是在具体的规则和编写方法上有一些区别,比如:
小程序代码目录
上图是一个小程序的代码目录。后缀名为wxml、wxss和js。不过,微信对wxml的完整定义并不是xml,而是非常霸气,有一种自成体系的感觉。当然wxss也是一样,同样希望给人一种牛逼的感觉。
以下是一个 wxml 示例。与早期的xml相比,扩展了大括号模板的写法。
wxml 示例
这个阶段,一些简单的同学开始乱了,于是另一种观点就出现了,那就是微信小程序不是。好吧,我必须承认,我为此挣扎了一段时间。你看,这恰恰证明了我是多么简单。但经过更深入的分析和研究,我想表达一个观点,
同时,通过分析小程序的运行原理,微信小程序的本质在于,在小程序的开发过程中会用到大量的相关技术,但并不是全部都开发出来。对于有经验的前端工程师来说,学习微信小程序的开发会相对容易一些。微信小程序的运行不需要完全支持功能的标准浏览器内核,但也可以添加一些辅助设施,让小程序可以在完全支持标准的浏览器上运行。
关于让小程序运行在完全支持标准的浏览器上,有兴趣的同学可以参考让你的微信小程序运行在浏览器上。
那么既然微信小程序的本质就是,为什么微信还要费这么大的力气把它封装成我们现在看到的样子呢?作为一名产品经理,我的职业病瞬间爆发,而且是绝症,无法治愈。据我个人粗浅的推断,原因可能有两个:
第一个原因是借用网上很多产品人的一个观点,那就是微信需要通过这种方式来转化开发者,而这些开发者未来会逐渐演化为“微信OS平台”的忠实开发者。事实上,开发者通常患有“斯德哥尔摩综合症”。一旦他们投入智力资源在某个平台上学习,他们就会开始下意识地维护这个平台(比如看不到平台的缺点,而只看到平台的优点)。 。如果作为一种开发方式,那么现在聚集的小程序开发者都是为了流量而来,没有投入额外的学习成本,对平台的忠诚度不够。当然,这个推论是否正确还无法评价。只能说是见仁见智的问题。
第二个原因是从技术优化的角度推断的。众所周知,短期内相比本地应用仍然存在着不可忽视的性能缺陷。因此,也有可能微信完全重构了一个内置的解析器(大概是类似的东西),在优化提升性能的基础上,去掉了对性能影响较大且不需要的部分,而结果是一个全面的性解决方案。如果真是这样的话,那么我们自然就无法再引导很多开发者直接使用原生技术来实现小程序的开发了。与其事后陷入对不支持的 Html 属性和功能的抱怨中,不如从一刀切的方法开始,这样可以避免麻烦并满足新产品的定位和需求。当然,这一切仅代表我个人的意见。
第三个原因是一些技术专家从技术突破的角度推断的。例如,也许小程序根本就不是B/S结构,而是C/S结构。很多人不明白为什么c/s应用不需要安装就可以立即使用。事实上,这并不是微信的首创。第一个是一种叫做流式应用的技术(详情请百度)。只要是动态语言,有合适的算法,就可以先下载部分程序并运行,然后边使用边下载,类似于流媒体。我个人认为这不太可能,因为我很好奇,如果是这样的话,微信将如何管理小程序占用的空间?
好了,分析到这里就结束了。主要原因是我吃药了,产品王的职业病得到了有效遏制。回顾我们一开始提出的问题,根据我们目前所能掌握的情况,我们可以清楚地得出一个结论:
微信小程序本质上是优化的。
至于微信之所以这么做,相信随着微信小程序测试号的进一步开放,我们也将能够了解到越来越多的信息。有机会的话我会继续给大家做一些粗浅的分析。
2、手机网站可直接改造成小程序
其实,我们之所以保留这样的认识,主要是因为过去微信公众号的二次开发经历,在很大程度上给了我们很多人先入为主的观念。
但通过我们上面分析的第一个问题,我们可以知道,微信小程序虽然本质上是,但实际上是经过优化的。这意味着绝大多数的移动网站可能直接转型为小程序是非常困难的,因为有大量的内容需要重写。比如:页面的JS脚本逻辑运行在没有对象的环境中,所以不能在脚本中使用,也不能在脚本中操作组件,也就是说这些框架都不能使用。
我认为在大量情况下,之前写过的页面是无法通过自动转换工具变成合法的小程序页面的。相反,工程师需要根据页面的功能来使用微信小程序框架。做一次。
老板们可能认为简单修改一下手机网站或者以前的公众号就可以访问小程序了,然后对工程师报出的工期感到难以理解。这时候工程师可以把这篇文章转发给老板,小程序就相当于重做了项目。搭建一个App后,开发、设计、测试、运维、升级都是单独一套的。哦,还得加上学习成本和风险。这样的新事物能不能一下子就成功实施还很难说。毕竟小程序本身还处于测试阶段……
3、开发小程序的学习成本
关于这一点,正如我之前提到的,有经验的前端工程师学习微信小程序的开发相对容易一些。在做一个小案例的时候,我可以明显感觉到小程序Page的整体设计有明显的“响应式”编程风格。相信有vue.js、.js开发经验的同学都能很快上手。当然,由于我们没有内测资质,所以无法在手机上测试性能。不知道这个小程序框架有没有反应式编程常见的性能问题。公测结束后我们先定一个小目标。比如我们写一个有几十万条数据的列表,如果滚动流程不流畅我们就会知道。
考虑到微信官方的例子确实极其简单,除了帮助大家了解基本的项目结构之外,其他的意义并不大,所以我在这里做了一个简单的例子,供大家初步参考。因为太简单了,所以我没有把git放进去,直接以网盘的形式下载给大家。下载链接
小程序示例
4. 结论
最后说一下文章的标题。好吧,我知道这是一个非常蹩脚的标题。在微信小程序完全开放之前,我可能同样昏迷不醒,最后可能会被狠狠地打一巴掌。这些天,我真是辜负了那句话,一切皆有可能……
但无论怎样,作为一名技术爱好者和产品爱好者,我依然会在这条技术与产品之间的不归路上越走越远。如果大家有时间并且能够支持我的话,我会在下一篇文章中给大家介绍一下微信小程序开发过程中需要特别注意的几个关键点。
好吧,这次水文就记录到这里了,顺便打个广告。如果你觉得这篇文章能给你带来一点帮助,那么我也想请你帮我一个小忙。点击链接,然后进入平台注册账号(手机、邮箱或第三方登录均可)。以后如果有时间,可以体验一下我们的产品。如果您能给我一些宝贵的意见,我将更加感激。速客网是一个专注于移动教学课件建设的平台。已至天使轮,诚邀各位技术高手、运营专家加盟。