网上有许多介绍微信小程序云开发的文章,都说解决了什么什么问题,怎么怎么方便,怎么怎么牛逼,云云。
但是,根据我最近的经验,我发现微信小程序有很多缺点,例如以下几点:
1 、不支持本地测试环境,本地运行时需要连接线上数据库,要么把正式数据和测试数据混在一个环境里,要么购买两个环境来回切换(在两个环境中来来回回的手动部署,不现实)。
2 、如果你有多个小程序,你会发现共享环境很麻烦。
举个例子:你购买了一个云环境,但你有 A 、B 两个小程序,你把云环境和小程序 A 绑定,然后把环境共享给 B 。此时,你想要为 B 开发一个新功能,你不能在 B 项目中编写代码,你需要切换到 A 项目,在 A 中写代码,然后把写好的代码复制到 B 项目,然后发布小程序 B 。
如果 B 的代码需要修改,你需要在 IDE 中切换到 A 项目,然后修改代码,在 A 小程序中调试,然后复制到 B 项目,再重新发布。
如果你有 10 个小程序共用一个环境,你需要把 10 个小程序的代码都拿到一个小程序的项目中去编写!
3 、每个云函数都是独立的项目,这意味着维护代码很麻烦。
你可能会有 10 个云函数(甚至 100 个)。 但是,微信规定每个云函数都是一个独立的 node.js 项目,如果你有一些 utils 代码需要在多个项目中共用,那版本维护会很麻烦。
4 、云数据各种受限。
前端一次只能读取 20 条数据。权限管理功能过于简单,使用起来又操作繁琐。许多事情在 MySQL 上就是一句话的事情,在云数据库上要研究半天,甚至难以解决。
5 、云函数容易超时。
想写一个类似 crontab 程序,定时处理一些工作,恭喜,云函数支持!但是不好意思,只能运行 60 秒!(有人说是 20 秒)。 写任何云函数,你都需要考虑 “万一超时了,进程被 kill 了,怎么办?”
6 、云存储(图片存储)居然不支持列表查询。
思考一下这个问题:你有一个进程,下载了一些图片放在云存储中,但是你的进程因为超时被 kill 了,没有执行完整,你没有保存下这些云存储文件的 fileID 。
然后你突然想起图片放在云端是要支付费用的,所以你想删除这些图片,自然想到 ls 列出文件列表,删除部分图片。
对不起,不支持!
目前微信云存储只支持“上传一张图片,api 返回一个 fileID” 以及 “提供 fileID ,api 删除图片” 这两个基本功能,其他功能都不支持! 保存了多少张图片?这个文档有多少图片?某个目录下有多少图片?删除某个目录?列出目录下的子目录? 统统不支持!
微信云开发宣传得很好听,实际使用真的很折磨人,相信 V 友中也有不少用过微信云开发的人,一起来总结一下?
让那些想要陷进来的朋友多一些参考,让已经陷进来的朋友多一些帮助。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.