我,一个自诩牛逼上天的 Node.js 和小程序开发者,今天就教「快应用」好好做人
当你看到这句话的时候,你应该已经点进来看了,行了,这个标题已经完成一半的作用——前半句话只是我吹牛用的。不过,来都来了,你也先别走,至少听我把槽吐完了再走不是。
事情是这样的,这两天不是好几家厂商一起推出了一个名为「快应用」的妖蛾子么。发布会上可是把这个快应用吹上天,什么系统深度集成,什么丰富入口,又什么点击即用、无需下载……
对于开发者来说,这些都是吹牛用的,重点还是得看开发环境好不好使,否则一切白搭。作为知晓程序的编辑,为了给你们写点开发教程,不得身先士卒,自己试用一番。
不试不知道,这一试可是把老子两天里共计两三个小时的青春给搭进去了——就为了搭一个开发环境,调试一个 demo。
大哥,8102 年了,GUI 调试工具了解一下?
既然快应用是这么厉害应用开发平台,除了有厉害使用场景和入口,不得还有厉害的开发工具?按照这个思路,我想象中的快应用开发调试工具,至少类似这样。
或者这样。
再不济,一个可以在电脑上监测代码、实时预览、直接排错的 GUI 工具,写起来也不难。不要求能在工具里直接写代码,反正很多小程序开发者都会用类似 Sublime Text、Brackets 或者其他什么工具来写。
所以,当天真的我打开快应用的开发文档(doc.quickapp.cn),第一件事就是找这样的 GUI 开发工具。然而,翻遍整个文档我都找不到这个所谓的工具。最后,我终于在文档第一页 getting started 的教程,看到了这些:
我去?为什么还要安装 Node.js?
后来仔细一看,原来快应用把所有编译、调试等等操作,全部放到这个 npm 包中。也就是说,在微信小程序里,改个代码直接在电脑预览效果的时代,在快应用上暂时还做不到。
这些就算了,配置一个 Node.js 环境,已经足以劝退许多开发者了:下载解压、安装、配置环境变量…… 如果下错成源码包,编译时间可有够好受的。
所以,大佬们,GUI 开发工具了解一下?
这时候好希望有个 Node.js 版本管理工具……
作为一个横跨 Node.js 和小程序两个平台的开发者(看,标题我没说谎吧),只能庆幸快应用的编译环境就是我熟悉的 Node.js。那还等啥?直接编译快应用自动生成 demo 的,搓个手手,回个车……
咦?编译失败?不对啊,换个模式再试试?
然后,我就在「编译出错 – 调整 – 重试 – 编译出错」的死循环中无法自拔。最后,文档里的这句话,让我意识到自己有多么「图样图森破」:
不要使用(Node.js)8.0.* 版本.这个版本内部 ZipStream 实现与 node-archive 包不兼容,会引起报错。
果不其然……
得,我还是把 Ubuntu 虚拟机搬出来装个旧版本的 Node.js 吧,直接降级搞不好又出什么妖蛾子。
这时候就超羡慕 Python 开发者有没有啊!👇
总之,绕了这么一大圈花了一个多小时,就为了配置一个开发环境。这要是放在微信或者支付宝小程序上,安装个开发者工具一切好办,直接上手写代码,完爆快应用。
还是那句话,快应用赶紧出 GUI 集成开发环境吧,要不然萌新真的都会被吓跑的!
为什么生成的项目文件里还要再装包?
如果说环境配置是我自己庸人自扰,那行,这个问题我就真的有点看不懂了:在 Ubuntu 的安装一切顺利,直到我开始试图编译项目包,问题又出现了。这次的问题,出在臭名昭著的 node_modules 文件夹。
做过 Node.js 开发都知道,Node.js 的灵魂就是丰富的模块功能,想要啥功能,直接一个模块就能用。只是,开发到后期,node_modules 文件夹就会越来越臃肿,以至于将模块文件夹清空重装,等一两个小时可能都是家常便饭。
感觉身体被掏空?那就删掉 node_modules 再重新安装,就可以找借口摸鱼了
然后,快应用的工程项目本身其实是一个 Node.js 工程。这就算了,它居然也声明自己需要安装 Node.js 的一堆模块…… 这就很刺激了,具体表现就是,我临下班还有差不多一个小时的时候开始执行安装模块的操作,下班的时候,进度条只走到 30% 左右……
也就是说,别人装包摸鱼,我装包加班。
而且,其实这个工程文件夹里,真正起作用的只有 src(所有快应用代码)和 sign(包签名文件),就真的想问一句快应用:让用户装那么多(大概是莫须有的)模块,你的良心真的不会痛吗?
行了,关于快应用开发的吐槽我也只想写这么多——往下再吐槽还有不同语言混写的代码标准,还有略显奇葩的 RPK 包统一提交方式,不过应该也能说明快应用这个平台上线是有多么仓促。只希望快应用可以针对这些槽点,给加把劲,至少在应用质量和开发者服务方面下点功夫。
最后利益声明:这文章写得那么像黑稿,请微信小程序的人给我打钱,谢谢(滑稽)。
关注「知晓程序」公众号 ,在微信后台回复「快应用」,获取快应用完整开发文档。