你好。
我发表这篇个人发展文章已经 4 个月了。
我们发布所有文档和源代码! !
太酷了,它还没有发布。对不起,伙计。
日元贬值使 AWS 计费变得困难,大约在我将其私有化的时候,我已经开始开发这个项目并对此充满热情。
首先,这一次,代码是在文章发布的同时发布的。介绍
我认为个人发展的原因大致可以分为以下两种。
- 以营利为目的(通过您的开发获得直接收益)
- 学习用(通过学习并将其作为投资组合来增加您自己的市场价值)
我武断地相信,在奇塔上发文章的人很多。
我个人的发展也是后者。
所以,这次我就不多写“什么样的服务,什么样的背景,你知道什么样的事情”。
另外,为了测试,我没有制作测试书,只是在我的智能手机和PC上查看,并进行了一些小修正,所以我认为出现错误是正常的。打扰一下。这是我创建的第一个。
这是源代码
我把它写在标题中,好像它是一个自动班次创建服务,但标题有点欺诈。这是一种半自动的。
- 输入员工和工作时间信息
- 自动生成,最后手动调整创建。
是流量。我在下面拍摄了一系列“转变创作”的截图,但我会尝试以平成初期免费公告板级别的图像质量来传递它。只是感受一下气氛。
1分钟内完成了9人的轮班。
即使这个gif也有9MB左右,很抱歉我不能在qiita中放一张高质量的图像。创造这个时间的原因是我母亲正在做像经理一样的事情,她很难创造轮班。
它是在 Excel 中创建的,当我查看现有格式时,非常失望,所以我创建了一些在 VBA 中按下按钮时会自动填充班次的东西,但我不擅长 VBA,所以不是令人信服。
所以我想用 Remix + GraphQL 做一些个人开发,所以我来了这个开发。使用的技术和服务
这次的产品图片是这样的。
混音
它是去年 11 月发布的 React 框架。
我选择的原因是我想使用 Nextjs 以外的 React 框架 + 我想用很少的日语信息创建一些新的东西。
我尝试过同时使用 Nextjs 和 Remix 进行开发,但是如果我使用以下任何一种进行开发,这取决于需求,但在很多情况下,我觉得 Nextjs 会是更好的选择。
但是,它们都是很棒的技术,我认为使用 create-react-app 创建和开发项目不再那么普遍了。
使用 create-react-app 创建时,我认为最好使用 Vita 而不是 Webpack,除非有特殊原因。
有关 Remix 的更多信息,请参阅链接中的文档。
韦尔塞尔
用于托管。
选择的原因是在使用 Remix 创建项目时,Vercel 是部署目标的一个选项。
火力基地
用于用户认证。
当应用程序上有用户注册时,实现云功能,并且用户也在 postgres 中创建。
用户只能通过firebase在hasura中创建,不能从没有Admin权限的前端创建用户。
在postgres中,只保存firebase创建的uid和注册日期时间,把用户名、邮箱等所有信息留给firebase。
莲修罗
如果您连接 DB,GraphQL 服务器将自动设置。
- 无需实施解析器
- 可以在 Hasura GUI 上创建表和列
- Docker 镜像分发
- 提供免费层级
- 无需使用 DataLoader 之类的工具来处理 n+1 问题。
它非常易于使用。
对我这个 GraphQL 初学者来说,这是一项非常简单的服务。但是,也有一些缺点。
- 付费版贵99元~
- 免费版不允许区域选择。
- 是不是因为地域的关系,响应大概是300ms~4000ms。
- 默认选择Postgres,与Heroku有很高的亲和力,但是Heroku的free会被取消。 . .
免费版仅用于个人开发和测试环境,这是一个很好的印象。
经六
使用免费的 postgresql。
为了防止进入睡眠模式,我每 10 分钟运行一次 heroku schedule。
当 Heroku 的免费计划宣布时,已经太晚了。它按原样发布,而不是处于可以更改的状态。
作为替代方案,而不是 Hasura + Heroku动物群我想我想用它。
阿波罗
GraphQL 的客户端库。
之所以选择它,是因为我在研究有关 GraphQL 的各种事情时经常会出现它。
单用axios其实也不错,不过有缓存也方便。Apollo Client 是一个全面的 JavaScript 状态管理库,使您能够使用 GraphQL 管理本地和远程数据。使用它来获取、缓存和修改应用程序数据,同时自动更新您的 UI。
----下面的翻译-----
Apollo Client 是一个全面的 JavaScript 状态管理库,可让您使用 GraphQL 管理本地和远程数据。使用它来获取、缓存和修改应用程序数据,同时自动更新 UI。但是,即使有缓存,Query 的时候数据也会被 undefined 一次。
如果Get的时候有缓存,SWR会返回数据,所以习惯了SWR感觉有点不方便。
就本次开发而言,apollo cient 的 bundle 体积比较大,我觉得我做错了,因为我没有充分利用它的多功能性。
设计相关
我们没有提供任何开发文档。
过去我为我的个人开发创建了一个文档,所以我想体验在空白状态下创建它会是什么样子+我想尽快进入开发。
我使用 Figma 创建了 4 或 5 张图像,但除了页眉、页脚、标签和颜色之外的大多数项目都在此过程中发生了变化。数据库设计
数据库设计如下所示:
工时、员工等综合PK
开发之初,在[employee <> workingTime]和[shiftEmployee <> shiftWorkingTime]之间插入了一张中间表,但是会对Heroku 10000条记录的免费配额造成压力,所以取消了中间表,增加了int4列我在开发过程中准备并更改了它。命名真的完成了。通过发展
你从这个发展中学到了什么,你有什么想法?
学习
- 通过 Remix 加深对 SSR 和 SSG 的理解
- 关于 GraphQL
- 关于 Hasura、Fauna、Heroku、firebase 等服务
印象
- 如果命名太贴切,真的会让人迷惑
- 如果几乎没有设计,即使在个人开发中也经常发生返工
- 个人发展仍是一门学问
GraphQL 过去只做了与 GraphQL 和 Dynamo 的聊天功能部分,但这是第一次正确使用它。
我对使用 GraphQL 的想法是Hasura 的 REST 与 GraphQL 比较文档如 中所述,我有一个强烈的印象,因为可以减少为 API 设置服务器的工作,可以进行高速开发,并且我认为订阅功能很方便。
毕竟,你需要习惯它,而你是否再次使用它取决于当时的要求。
我也觉得代码很容易变得复杂,因为后端处理的部分,比如数据格式化和计算,在一定程度上需要在前端实现。 (我说的是正确使用 Nextjs 和 Remix 中的 api 路由)
做完之后,感觉像mongoDB这样的面向文档的DB比较适合这种开发。 (不知何故除了firebase之外,我第一次用的时候花了很多时间才弄明白,遇到了5亿次左右的错误。
但是,除非我自己实现它,否则我无法继续,所以如果我不能做到,我将调查各种事情并重复试验和错误。
这是我第三次发表个人发展(2020年11月,2022年5月,这次),我觉得他们都在朝着职业转变和加薪的良好方向努力。 (我就是这么觉得。
大家,请尽量做个人发展,,,!*由于这是个人开发,只是一种爱好,如果您能记住任何关于源代码的错误或评论,我将不胜感激。
顺便说一句,我的第一个孩子出生于 8 月 28 日?
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308627116.html