记录一下昨天做 RN 富文本编辑器的过程。
因为不想用在 RN 里套浏览器(webview)降低性能,魔改了一个 4 年前的、没用 react-native-webview 的开源库。开源库是 JS 写的,而且比现在的 Expo 落后了 20 个大版本,基本是把整个库重写了一遍。
难绷的是改到一半发现它用的是一个更古老的 webview 库(expo-pixi)😭,但还是硬着头皮做完了。
做完算下来代码的时间也就半天不到,效率比想象的还是高上不少的。但坏消息是现在对一些 corner case 的处理还是有 bug... 所以可能明天还是要拿一个更主流的库魔改。
复盘一下,这次的时间浪费主要原因是思考上的懒惰:
在昨晚已经确定了技术路线的基础上,看到一个“思路之外”的实现方式,以为是自己想漏了,过了一遍源代码后直接就上手改代码。因此没有发现这个方案的实现方式本质上是另一种 webview(不熟悉老版本被坑了 🤡)
另外这次学到的另一个教训是:在大部分的情况下,冷门且古老的库都应该仅仅作为参考使用。重新理解、重构并向前兼容的成本实在太高。但是在一些特殊情境下,实在没有更好的选择,也可以拿这些库作为模版。这种情况下,个人的感觉是理清思路、自己重写一遍会比重构老项目快很多。