GithubX:|GithubX: 一个 Github 体验增强插件

最近开发了一款增强 Github 体验的 Chrome 插件 - GithubX
【GithubX:|GithubX: 一个 Github 体验增强插件】代码也开源了: https://github.com/riskers/gi...
痛点 解决了我个人的一个痛点:Github 原生对 stars 和 gists 无法分组和打标签,这样让我每次在查一些不常用库的时候,总是会花很长时间查找。
看看效果 可以在后台在 star 分组和打标签了:
GithubX:|GithubX: 一个 Github 体验增强插件
文章图片

然后在 github 页面展示出来:
GithubX:|GithubX: 一个 Github 体验增强插件
文章图片

上面是对已经 star 过的项目,如果你有新的 star,会自动弹窗让你操作:
GithubX:|GithubX: 一个 Github 体验增强插件
文章图片

自我总结 这个项目其实应该 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会更清楚。
说了这么多,如果你感兴趣,不妨试试吧。下载地址
  • BUG 提交 -> https://github.com/riskers/gi...
  • 讨论需求 -> https://github.com/riskers/gi...
向我捐助 | 关于我 | 工作机会

    推荐阅读