Ruby on Railsを始めて一ヶ月で学んだこと | Dev Driven 開発・デザインチーム Ruby on Railsを始めて一ヶ月で学んだこと | 働くひとと組織の健康を創る iCARE

BLOG

Ruby on Railsを始めて一ヶ月で学んだこと

2021/12/11

こんばんは!サーバーサイドエンジニアの遠藤です。
この記事は、iCARE Dev Advent Calendarの11日目です。

私は、今年の11月にiCAREにジョインしました。iCAREではサーバサイドでRuby on Railsを用いています。私はこれまで他の言語で開発をやっておりRuby on Railsの経験が全くなかったので、ジョインしてからこの一ヶ月ほどRubyやRuby on Railsの基礎を学んできました。

この記事では、この世のどこかに多くいるであろう他言語からRuby on Railsを学ぶ人たちに向けて、この一ヶ月でどんなことを学んだかを列挙していきたいと思います。

学んだこと

Rubyの基礎的な文法(これ今も身についているか怪しい)

まずはRubyの基礎的な文法を学びました。とはいえ、文法といっても奥深く、全てを学んだとは到底いえないですが、、、
主に学んだのは、
現場で使える Ruby on Rails 5速習実践ガイド 単行本(ソフトカバー)
https://www.amazon.co.jp/dp/4839962227/ref=cm_sw_r_apan_glt_i_YK6N8JR1657QXZN89SJF

MVCの役割について

これまでMVCフレームワークを使った事がなかったので、基本的な概念から習得していく必要がありました。あとはオブジェクト指向とかもそこまで手慣れた概念ではなかったのでその辺りの概念的なことを学びました。
これも手段としては上で挙げた現場Railsで学びました。

scaffoldを用いた簡単なCRUD操作のアプリ作成

こちらも現場Railsで学びましたね。いわゆるRailsのチュートリアル的なもので、基本的な日記アプリを作るというのをやりました。
フレームワークを最初に触る時って、どこのフォルダに何をするファイルが置いてあるのか、というところから始まりますよね。

DBのマイグレーションの基礎

そもそもDBのマイグレーションとは??というところから始まりました。DBのスキーマのバージョン管理をいい感じにしてくれる仕組みは便利だなあと思っていました。

ActiveRecordの基礎

こちらもそもそもO/Rマッパーとは?というところから始まりました。
ここら辺は今も鋭意勉強中という感じです。調査とかでもコンソールでガンガンActiveRecord書いたりするので。
現場Railsももちろんですが、最近はRuby on Rails ガイドhttps://railsguides.jp/
を流し読んだりもしています。綺麗なActiveRecordのクエリを書けるようになりたい。。。

Railsのルーティングについて

簡単なアプリだとルーティングってほぼ気にしなくてすみますが、実際業務でアプリを触ると、ルーティングって結構複雑で難しいですよね。調査の際に最初ルーティングから調査に入ることも多いですし。Railsのルーティングはデフォルトで設定してくれる項目が多い分、カスタマイズされた要素と合わさって初心者には難解さが増しているような気がします。

rspecの基礎

テストを書くのは大事ですね。機能の開発とテストは切っても切り離せないです。
テストフレームワークのRspecですが、これもさまざまな便利機能があるので勉強する必要があります。豊富な機能があるのはいいのですが、既存のテストに手を加えようと思うと、それらがどのように動いているのかを知る必要があり、学ぶべき事が多いなと思っています。

graphql-rubyについて

Carelyではフロントとの繋ぎ込みにGraphQLを用いています。こちらも馴染みがない技術なので、GraphQLそのものについて、またそれをRuby on Railsで受けるためのgraphql-rubyについて、基本的な使い方やその利点について学ぶ必要がありました。
GraphQLの利点については、初心者の意見なので異論は山ほどあるかと思いますが、公式ドキュメントにある以下の文に詰まっているかなと思っています。

​​ You can see immediately that the query has exactly the same shape as the result. This is essential to GraphQL, because you always get back what you expect, and the server knows exactly what fields the client is asking for.

APIの問い合わせを、この形で出して欲しいよというそのままの形で、まるで通常のオブジェクトを扱うようにできるのが利点なのかなと思っています。

まとめ

Ruby on Railsを業務でバリバリ使い始めて一ヶ月ほど、まだまだ「Rails全然分からん!」の気持ちが日々強くなるばかりですが、少しずつ先輩方に学んでいかなければいけないなという気持ちです。
また、今後も私のように他言語を経験しRailsに新たに参入する、という形でジョインされる方もいると思うので、そういうような方向けのサポート体制も充実させる事ができたらいいなと思っています。

これで記事は以上です!ありがとうございました!