Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GithubX 复盘 #58

Open
riskers opened this issue Jun 1, 2022 · 0 comments
Open

GithubX 复盘 #58

riskers opened this issue Jun 1, 2022 · 0 comments
Labels
FE web 前端

Comments

@riskers
Copy link
Owner

riskers commented Jun 1, 2022

五一过后,就提了离职,加上北京一直让居家办公,我磨洋工般地把 GithubX 迭代了两个版本,0.0.41.0.0

ps. 其他时间在学 rust,感觉之后工作会用到,这次终于入门稍微深入了一点,可能是已经提了离职,心情很放松地去学的缘故。

除了上一篇写的那两点,这次又学到了或者说稍微费了点时间做的:

  1. 为了同时支持 IndexedDB 和 MongoDB API,我抽象了一层 Service,前端调用接口就变成了: action -> Service,Service 会根据用户的选择自己决定是调用 IDB 层还是 API 层。然后用 interface 抽象了 Model 层,这里使用了策略模式,这一部分我觉得我写得算是整个项目里最的。
  2. Top Level Await 的使用,还是在 Service 里,需要在实例化 Serivce 之前得到用户的选项。但是 Chrome 的 API chrome.storage.local 是异步的,如果常规思路,就是把实例化这一步放在 async 里,但是这样就无法 export 了。最后用 Top Level Await 解决,其实也就一行,加个 await 就行了!
  3. CSS Grid 布局,之前没尝试过,这次整个项目就是用它来做的。
  4. 之前总是考虑在 content_page 监听一个 DOM 去搞定用户在点击 star 按钮的时候弹窗,但是这样一旦 Github 的 DOM 改变,我也要变!后来直接换思路,监听 star 时的 API,一旦请求这个 API,就直接弹窗,不用管 DOM 结构了!而且因为是弹窗形式,在整个 Github 网站里都通用!这个想法我自己都觉得挺惊艳的

还衍生出 Github-API 项目:

  1. 没有使用 MySQL 而是 MongoDB 来作为数据库,不得不说,Java 配 MongoDB 真的是难受,难怪大家一直说 Nodejs + MongoDB 才是最佳组合。不过因为是自用,慢就慢了。其中还学会了 Mongo 的 Aggregation,和 MySQL 的 join 类似,在之前还总是好奇 Mongo 是怎么联表的。
  2. 打通了 Github Action 到 Docker Hub : docker.publish.yaml

截至目前,GithubX 一共发布了 4 个版本,有 377 个用户。

总结一下

前两年学的概念太多,有点应接不暇,导致「学而不思则罔」,只学了概念,没有进行反思,没有深入地实践,没有 coding,就会流于表面,没有沉淀。仔细看看,这个项目是三年前我刚入职的时候就建立的,一直拖拖拉拉,到现在离职了才完成。中间经历过很多,但都不足以成为我放弃的理由,尽管中间还是放弃了,这个之后单开一篇来说。


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


Repository owner deleted a comment from codeLiuFang Jun 1, 2022
Repository owner deleted a comment from WWBingBing Jun 1, 2022
@riskers riskers added the FE web 前端 label Jun 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FE web 前端
Projects
None yet
Development

No branches or pull requests

1 participant