Open Seandor opened 4 years ago
今天回顾了一下 graphql 的课程,发现跟着老师后面做项目和自己做项目是完全的两码事。跟着老师做完了,隔了3个月,基本都忘干净了。连基本的 graphql 是什么都回答不出来。
按我现在的理解,graphql 它首先包含一种 query 的语言,graphql 服务端可以用各种语言去编写,但是它们最终都是暴露出一个 http end point,让用户可以通过这个 end point 发送 graphql query 来获取他们想要的数据。所以 graphql 的另一部分就是它的 server 端,负责解析它自己弄的这种语言。官网的标语还是很准确的。
GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.
Server 端还要用到数据库,应该会选择 postgres, 因为它和 prisma 相性好。数据库这一层应该算是这个项目最底下的一层,然后是 prisma ,再然后是 node express server (因为 graphql-yoga 用了express.js)。现在有一个问题,prisma 该放在什么位置,因为之前的 prisma 都是用 docker 去跑的 prisma 的服务。prisma 是切切实实的一个 layer,express server 如果需要访问数据库是通过连接 prisma server 访问的。
Docker 的知识都忘记完了...
Docker 已经复习好了。现在的问题是我需要会搭建本地开发环境,也需要知道怎么部署上 k8s。
我觉得 k8s 还是先算了,有点难搞,先弄上 Docker 。
还是要以前端React 页面作为切入口,因为后端代码已经有现成的了。先把前端部分开个头,然后再集成服务端,再完善前端。先弄好本地开发环境,再考虑部署。
视频教程不用看了,可以开始从 Gatsby 搞起。
Gatsby tutorial 刚看完,学会了怎么转化 Markdown 的博客。还在看 Andrew Mead 的那个 Gatsby 教程。后面可以需要研究下怎么用 Gatsby 连接别的 graphql 服务器。
Andrew Mead 的教程看完了,准备从 gatsby starter blog 开始。
还得多看看 Prisma 的教程。没太搞懂怎么用。我准备做一个 graphql 的服务器。
我原先学的 prisma 又不维护了,现在用的 prisma 2 和以前有不一样了。但是用起来比旧版本的简洁很多,之前还需要用 docker 去启动,弄得我都搞不清这到底是个什么玩意。
现在 prisma 就是用来定义 data model,和数据库连接,使用 @prisma/client 来读写数据库。但是 prisma 团队推荐的 nexus 又不知道是个什么鬼东西,我看了半天没搞懂。我使用原来的 graphql-yoga 一样可以做一个 graphql 服务器。感觉很多包都是个千层饼,一层套一层,还是自己弄明白底层的原理比较好。
前端:React, Redux, webpack 等 后端:Node.js, graphql 部署:k8s