最近我开始自己写Extension,分享一些遇到的问题和小心得。
我现在有几个比较明显的感受:
1、不要一上来就写大而全的 Extension
Pi 写 Extension 的门槛其实很低,一个 .ts 文件就能开始。
我建议可以先从一个小问题去开始写,比如增加一个命令,或者是拦截一个危险操作,甚至是改你下面的状态栏。
不要一开始就把东西写的大而全,因为你自己都可能不知道你的真实需求。
2、Global 和 Project 一定要分开
通用的 UI、通知、Context 这些可以放全局。
但项目自己的部署、数据库操作、特殊规则,我现在更愿意丢在项目目录里。
不然用久以后最麻烦的不是功能少,而是每打开一个 Pi,都背着一堆根本用不到的东西。
3、Tool 也不是越多越好
这个是我自己比较在意的地方。
Extension 写着写着,很容易就变成了一个大满贯,但是真正你需要用到或加载的东西很少,如果写的过多的话,很容易影响pi的上下文和调用判断。
所以好的设计尽量精简,需要再加入,甚至是可以加入渐进式披露,这里的设计其实和 Pi 本身极简的设计挺像。
4、状态和 reload 比想象中更容易踩坑
开发的时候 /reload 非常爽,改完马上就能试。
但只要 Extension 开始存状态,就不能单纯相信内存里的变量。尤其后面如果要跑 Web、RPC、SSH 这些场景,很多写法都得提前考虑。
这个也是我开始自己写以后,才慢慢意识到的。
现在回头看,我觉得 Pi 最有意思的地方可能本来就不是有多少 Extension。
我是官方给你开放的入口,你哪里不舒服,或者哪里觉得不好用,直接马上改就可以了。
刚开始我也会到处找插件,后面开始删重复的,再到现在自己补一些真正缺的功能。
这个过程挺慢,但每次只解决一个真实问题,最后留下来的东西反而越来越像自己的。