链接:https://www.zhihu.com/question/51682854/answer/127467061
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
小程序的特性(小程序优点)
来一个官方对小程序的定义:
根据张小龙这段文字,提炼几个关键词:
-
触手可及。随时随地扫一扫,或者通过主动搜索打开。
-
用完即走。没有主动骚扰,不希望过度黏住用户。
-
无需安装卸载。不占空间,不费流量,不留垃圾。
字面上拆解一下小程序:
小:
-
1024KB的程序包容量
拥有内测资格的开发者知道,小程序包提交时官方会限制文件尺寸,一个小程序最大只允许1M。
这其实也很好理解,要实现“触手可及”就不能太大,设想在没有wifi的环境下载一个45M的APP是什么体验?
-
10M的本地存储限制
从目前的官方文档上看,开发小程序有一些约束,如本地存储不能超过10M;不能请求超过5个request;页面跳转不能超过5层;等等。这也意味着官方不希望小程序做太复杂太重的事。
程序:
-
C/S架构而非B/S
在小程序发布之前,尽管坊间一直传闻应用号(小程序)会延续公众号的H5+CSS3+JS的B/S架构,但实际上让不少人感觉意料之外。小程序是C/S架构,尽管开发语言、开发模式与前端H5开发非常相似,但它不允许DOM操作,不支持动态渲染,它本质上更像一个APP。
-
本地安装
尽管张小龙说小程序“不需要安装卸载”,但小程序是需要安装的,它只是让你察觉不到它在安装而已。
-
断网也能用
像一般的“程序”一样,小程序可以使用操作系统的硬件能力(磁盘存储,摄像头,GPS,陀螺仪等),同时小程序可以不依赖网络,这让小程序在一些无网或网络不佳的场景下有更多想象空间。
哪些是小程序的需求范围?或者说小程序做不了哪些事(小程序受限)?
-
一个游戏
刀塔传奇、天天酷跑、消消乐,等等。图形处理能力是小程序的劣势,小程序只能做做小游戏(做个贪吃蛇还是可以的)。
-
一个系统工具
迅雷,美图秀秀,腾讯地图,百度云盘,等等。系统工具需要原生操作系统接口、硬件接口的支持,这方面小程序能做的事情很有限。
-
一个社交工具
陌陌、微博。先不考虑功能是否可以实现,在腾讯生态下做社交肯定是找shi。
-
一个OA、ERP、CRM
在企业管理软件领域,OA、ERP、CRM这些都是“大”的代名词,这很小程序的“小”是冲突的。小程序可以做OA中的某一个场景化的流程(例如打卡签到),但无法将一整个完整的企业管理应用搬进小程序。
-----------------------------------------------------------------------------------------------强制分割线以下内容非转载 废柴鑫仔
小程序的一些问题(不足):
- 开发文档
部分开发者刚学微信小程序的话,那个开发文档以我个人观点来言就是:剪不断,理还乱,是离愁,憋死一番滋味在心头搞的蛋疼
- 开发工具
微信小程序开发工具难用在于他的界面风格看着真心是那种不舒服的感觉,以及预览很麻烦
- 功能受限
没有 dom,只能使用小程序自己那套组件,想做点效果都很可能做不了,想想确实挺悲哀的
- 功能测试
无法自动化测试,保证可用性,这个用着是不太舒服,暂时只能靠祈祷了
- 性能问题
如果你有图片过大或者请求响应缓慢等问题,它该卡还是会卡。小程序本身由于采用了多层架构的方式,所以如果你服务层和页面传递过多数据的话,可能会有卡顿的问题
总结
如果你以前是做 web 开发的,你会发现小程序除了一些样式和 js 基础的库可以重用外,基本都是要重写的,而且还不能用 Dom 等接口,开发体验是很蛋疼的。
如果你以前是做 app 开发的,你同样会发现小程序的 API 各种局限,根本无法发挥你那天马行空的创造欲望,基本上能做的只是些无聊的业务逻辑。更为可怕的是,这种独家的技术不可 能对人才有持续的需求,因为它本身必然会被更加标准、开放、灵活的 PWA 等技术所取代。
如果你没做过开发,老实说我不清楚还有没有比小程序更为糟糕的入门编程语言,因为它封装的太多太多,而我们实际能做的太少太少。