你好。
我发表这篇个人发展文章已经 4 个月了。

我们发布所有文档和源代码! !

太酷了,它还没有发布。对不起,伙计。
日元贬值使 AWS 计费变得困难,大约在我将其私有化的时候,我已经开始开发这个项目并对此充满热情。
首先,这一次,代码是在文章发布的同时发布的。

介绍

我认为个人发展的原因大致可以分为以下两种。

  • 以营利为目的(通过您的开发获得直接收益)
  • 学习用(通过学习并将其作为投资组合来增加您自己的市场价值)

我武断地相信,在奇塔上发文章的人很多。
我个人的发展也是后者。
所以,这次我就不多写“什么样的服务,什么样的背景,你知道什么样的事情”。
另外,为了测试,我没有制作测试书,只是在我的智能手机和PC上查看,并进行了一些小修正,所以我认为出现错误是正常的。打扰一下。

这是我创建的第一个。

这是源代码

我把它写在标题中,好像它是一个自动班次创建服务,但标题有点欺诈。这是一种半自动的。

  1. 输入员工和工作时间信息
  2. 自动生成,最后手动调整创建。
    是流量。

    我在下面拍摄了一系列“转变创作”的截图,但我会尝试以平成初期免费公告板级别的图像质量来传递它。只是感受一下气氛。
    1分钟内完成了9人的轮班。
    即使这个gif也有9MB左右,很抱歉我不能在qiita中放一张高质量的图像。
    【個人開発】シフト自動作成サービス作ってみた。ソースコード同時公開【React/Remix】

    创造这个时间的原因是我母亲正在做像经理一样的事情,她很难创造轮班。
    它是在 Excel 中创建的,当我查看现有格式时,非常失望,所以我创建了一些在 VBA 中按下按钮时会自动填充班次的东西,但我不擅长 VBA,所以不是令人信服。
    所以我想用 Remix + GraphQL 做一些个人开发,所以我来了这个开发。

    使用的技术和服务

    这次的产品图片是这样的。
    【個人開発】シフト自動作成サービス作ってみた。ソースコード同時公開【React/Remix】

    混音

    它是去年 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 张图像,但除了页眉、页脚、标签和颜色之外的大多数项目都在此过程中发生了变化。

    数据库设计

    数据库设计如下所示:
    【個人開発】シフト自動作成サービス作ってみた。ソースコード同時公開【React/Remix】

    工时、员工等综合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

相关文章:

  • 2021-09-24
  • 2022-01-09
  • 2022-01-13
  • 2021-10-30
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-04-03
  • 2022-12-23
  • 2021-06-17
相关资源
相似解决方案