1

最近开发了一款增强 Github 体验的 Chrome 插件 - GithubX

代码也开源了: https://github.com/riskers/gi...

痛点

解决了我个人的一个痛点:Github 原生对 stars 和 gists 无法分组和打标签,这样让我每次在查一些不常用库的时候,总是会花很长时间查找。

看看效果

可以在后台在 star 分组和打标签了:

然后在 github 页面展示出来:

上面是对已经 star 过的项目,如果你有新的 star,会自动弹窗让你操作:

自我总结

这个项目其实应该 2 年前就做完了,一直拖到现在,也主要是自己的拖验症比较严重。

这次迭代了 3 个版本,差不多 2 周一个版本,主要用业务时间来做这件事情。

学到了什么

  • React Hooks 这次是比较深入使用了,不再像之前一样泛泛而过了
  • Chrome Extension 开发,沉淀了一个脚手架,以后做插件会很方便:https://github.com/riskers/re...

复盘

这次技术选型的思考:一开始想得太多,导致进度很慢。

  1. 存储选型

    最开始本地数据是存在 localStorage 里的,不过后面分组的时候,要做到类似 One To Many 的关系查询,会很麻烦,我勉强克服了。直到要打标签的时候,我绝望了,因为这是 Many To Many 关系,用 localStorage 太麻烦了。于是,使用 indexedDB 解决这种问题。

  2. 状态管理选型

    一开始我认为这只是一个小项目,没打算上 redux。所有的状态管理都放在 context 里,结果,因为数据管理太复杂,使用 context 反而让状态越来越复杂,得不偿失,于是用 redux 替换。查看这个 commit会更清楚。

说了这么多,如果你感兴趣,不妨试试吧。下载地址


向我捐助 | 关于我 | 工作机会


一波不是一波
1.7k 声望91 粉丝