折腾了一个月的 2019 年 “为自己写的项目” 基本能用了,分享点踩坑经验

折腾了一个月的2019年「为自己写的项目」基本能用了,是一个基于 Editor.js 的日记/笔记 软件,预计到这个月底基本能写完0.1版本。分享点踩坑经验。

为了可以跨三大桌面操作系统+Web,离线使用+实时同步。架构上采用了基于electron+pouchdb。

但这两个核心组件都有坑的地方。

比如 electron4.x的定位接口是坏的,而且官方不修。用到地理信息的APP不要选这个版本。

启用了electron半透明背景,在Mac上看起来还不错,但有同学反馈说在部分windows系统上对显卡驱动敏感(还没来及测试兼容性)

另外 electron 里边 btoa 1M以上的大图片会崩溃,幸好可以通过 buffer 来绕过。

pouchdb属于看起来很美,用起来很坑的项目。

官方代码弄得不错,但文档比较简略。经常把用户支去读CouchDB的文档。

周边生态又没跟上7.x的升级。

举例而言,全文检索有 pouchdb-quick-search,但这个项目并没有同步升级到7.x,使用的时候会发现缺少函数。

pouchdb-quick-search 这个项目的多语言又依赖 lunr.js 做分词,但lunr.js 的官方库里不支持中文 在网上扒了中文补丁,发现效果差强人意。

relation-pouchdb 就是个半成品,功能太少。

Editor.js 的主程序结构不错,逻辑也清晰。但插件写得太匆忙,细节不够。举例而言,它的表格插件,只能添加行和列,不能删除,不能删除,不能删除

不过 Editor.js 这种 block editor 的扩展性是真好,可以非常自由的定义各种想要的块,终于有希望做到我想象中的手帐级的效果了。