GithubX:|GithubX: 一个 Github 体验增强插件
最近开发了一款增强 Github 体验的 Chrome 插件 - GithubX
【GithubX:|GithubX: 一个 Github 体验增强插件】代码也开源了: 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...
向我捐助 | 关于我 | 工作机会
推荐阅读
- 微信如何拉黑一个人
- Android studio 导入githubproject
- Python 中有 3 个不可思议的返回功能
- 投稿|交出最差业绩后,TapTap会是下一个B站吗?
- 手机软件怎么传到另一个手机上
- 日产Rogue VS Murano(你应该买哪一个())
- 同一个wifi一个手机能用一个不能用
- 第一个没有IDE的Hibernate示例
- 苹果怎么传输照片到另一个苹果手机
- 什么是Sqoop