最近开发了一款增强 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...
复盘
这次技术选型的思考:一开始想得太多,导致进度很慢。
存储选型
最开始本地数据是存在 localStorage 里的,不过后面分组的时候,要做到类似 One To Many 的关系查询,会很麻烦,我勉强克服了。直到要打标签的时候,我绝望了,因为这是 Many To Many 关系,用 localStorage 太麻烦了。于是,使用 indexedDB 解决这种问题。
状态管理选型
一开始我认为这只是一个小项目,没打算上 redux。所有的状态管理都放在 context 里,结果,因为数据管理太复杂,使用 context 反而让状态越来越复杂,得不偿失,于是用 redux 替换。查看这个 commit会更清楚。
说了这么多,如果你感兴趣,不妨试试吧。下载地址
- BUG 提交 -> https://github.com/riskers/gi...
- 讨论需求 -> https://github.com/riskers/gi...
向我捐助 | 关于我 | 工作机会
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。