😃

Rails(GraphQL)+Next+Fargateでタスク管理アプリを作った振り返り

2024/10/06に公開

はじめに

自分はrailsを中心としたフロントエンドとバックエンドばかり触ってきたので、技術研修では経験の浅いAPIモードとしてのRails、フロントエンドはNextでタスク管理アプリを作成し、それをFargateにデプロイするといった内容の研修を行いました。その振り返りです。

使った技術

  • Ruby on Rails 前職でも使ったことあり
  • GraphQL 初学
  • graphql_devise もちろん初学
  • PostgreDB posgre自体は初学だったが今回はほぼ関係なかった
  • Sidekiq 使ったことはあったが設定をしたことはなかった
  • Next.js Reactは使ったことがあるがnextはなし
  • TypeScript なんとなくの経験はあり
  • AWS Fargate 座学程度、、
  • Docker 本格的に設定をいじったことなどはなし

大変だったこと

Fargateへのデプロイがとんでもなく詰まりまくりました。
主にターゲットグループやセキュリティーグループなどのport周りの設定などがぐちゃぐちゃになっておりどこに何を設定すれば良いかがわかっていませんでした。基礎の部分ですね。
何度サービスを起動してもヘルスチェックすら通らない状態が延々と続いていました。
もちろん最終的には動作をする様にはなったのですが、もう一度初めから設定をやれと言われても
1発で完璧にデプロイまでできます!とはなりませんでした。
いろんな記事を読み漁りはしたのですがうまくいかず後半はchatGPTにもかなり頼ったのもあまり良くなかったですね。
他にはgraphql_deviseでもそこそ躓きました。
設定に関する記事をあまり見つけられず公式ドキュメントを頑張って読んではいたのですが、個人的には若干不親切なドキュメントだと感じることもしばしばありました。
GraphQLにもあまり慣れていない中での作業ではあったので割と頓珍漢な実装もしていました。
終わった後にはだいぶGraphQLに慣れたなと実感できるくらいには悩みました。

もう1ヶ月あったらやりたいこと

今回の研修ではあまりにもインフラ周りで時間をかけすぎてしまったので後半の機能実装の時間が若干足りず、本当に研修のための最低限の機能実装になっていました。
ユーザーの登録、ログイン認証などを実装したのにタスクの作成にログインの制限を掛けただけで、ユーザーとタスクの紐付けがされていなかったり、タスクの期限通知機能をsidekiqで実装したものの、タスクの期限を過ぎてもなんの問題もなかったり。
まずは実装したものがしっかりと機能する様にはしたいです。
あと、デザインを一切整えられていません。画像がないのはそのためです。
TailwindCSSなどのCSSフレームワークももっと勉強したかったです。

感想

わからないことがあったら質問しましょう。コレに尽きます。
インフラ周りやgraphql_deviseで時間がかかり過ぎた物も、尋ねればすぐに適切な答えが返ってきました。変にエラーが少しづつ変わっていくのでまだこのエラーには躓いていないと自分でどうにかしようとし過ぎました。
最終的にはギリギリやるべきことを詰め込めたかどうかくらいにはなったのですが、もっと質問の回数を増やせばもっといろんなことを学べたのかなとは思います。
それでも、GraphQLやFargate周りは研修前と比べてかなり知識は増えたかなとは思います。
まだまだ基礎の基礎を覚えた程度ではあるのですが、コレからの実践で何をするか、どうすれば良いかは少しだけわかった気がしました。
研修でこれだけ学べる機会を用意してもらえたのはすごくありがたかったです。
定着はまだまだしていないので、社内で行われている勉強会や勉強時間の制度などをじゃんじゃん利用して成長していけたらと思います。

Discussion