急遽PLとして、Railsアプリの開発案件に参画することになり、差し迫ってRails開発のノウハウが必要になった訳だが、直接自分でRailsアプリを開発する訳ではないし、正直どこまで理解すべきか悩ましい。
とはいえ知識0では何かと苦労しそうなので、本投稿は参考書を一読して簡易的なWebアプリを作ったり、自分が過去経験した言語(Java/PHP/C#)での開発と比べてどう違うのか、確認した時のメモ書きです。
全体網羅された参考書の一読
今回はAmazonレビューでも評価上々のこちらで学習を進めみた(今回は★部分を重点的に学習)
本書ではRubyの言語仕様からRails開発手順など、実際に求められる知識が網羅的に説明されている。
■ Chapter 1 - RailsのためのRuby入門 ★
■ Chapter 2 - Railsアプリケーションをのぞいてみよう ★
■ Chapter 3 - タスク管理アプリケーションを作ろう ★
■ Chapter 4 - 現実の複雑さに対応する ★
■ Chapter 5 - テストをはじめよう
■ Chapter 6 - Railsの全体像を理解する ★
■ Chapter 7 - 機能を追加してみよう
■ Chapter 8 RailsとJavaScript
■ Chapter 9 複数人でRailsアプリケーションを開発する
■ Chapter 10 Railsアプリケーションと長く付きあうために
Chapter1 〜 Chapter2でRuby言語仕様やRails開発環境構築を解説。
ちなみに本書ではローカルPC上での環境構築手順が説明されているが、昨今のシステム開発ではDockerを利用するのが当たり前になっているので こちらの記事で Rails + Docker環境を構築して学習。
本書で解説されている Ruby + Rails + PostgreDB の環境構築手順も こちらで紹介。
また多少内容は被るが、Udemyの こちらの動画コンテンツでもざっと学習。
(ハンズオン) タスク管理アプリケーション開発
Chapter3 〜 Chapter4で解説されている タスク管理アプリケーションのハンズオン。
gemを活用しながら機能を実装するので、ハンズオン実施でRails開発の全体像はざっくり把握できると思う。
■ Railsの仕組み( ルーティング / CRUD操作 / テンプレート化 )
■ gem導入と使い方( slim / html2slim / bootstrap / bcrypt )
■ Rails標準であるジェネレータの使い方( コントローラ / モデル作成 )
■ モデルクラスでのバリデーション( 標準機能 / 独自実装 )
■ モデルクラスでのデータ操作( 関連 / 絞り込み / ソート )
■ DBマイグレーション( 主なコマンド / バージョン管理 / テーブル定義の制約制御 )
■ ログイン機能実装( Railsでのセッション管理 / Cookie )
記事を執筆しながらの実装で1日くらい要したが、開発だけであれば2〜3時間で完了すると思う。
■ Ruby on RailsでCRUD操作が出来るタスク管理アプリケーション構築 Part1
■ Ruby on RailsでCRUD操作が出来るタスク管理アプリケーション構築 Part2
■ Ruby on RailsでCRUD操作が出来るタスク管理アプリケーション構築 Part3
■ Ruby on RailsでCRUD操作が出来るタスク管理アプリケーション構築 Part4
■ Ruby on RailsでCRUD操作が出来るタスク管理アプリケーション構築 Part5
CakePHPやLaravelを触り慣れている人はスムーズに入っていける印象。
RSpecでの自動テスト
Chapter5ではRSpec導入からテスト実装までを解説されている。
個人的に今回は手を動かせていないが、モダンな開発環境であれば必須領域。
Rails界隈で有名な伊藤淳一さんが綺麗に整理されているので、こちらを一読して実践すれば大丈夫そう。
■ 使えるRSpec入門・その1「RSpecの基本的な構文や便利な機能を理解する」
■ 使えるRSpec入門・その2「使用頻度の高いマッチャを使いこなす」
■ 使えるRSpec入門・その3「ゼロからわかるモック(mock)を使ったテストの書き方」
■ 使えるRSpec入門・その4「どんなブラウザ操作も自由自在!逆引きCapybara大辞典」
RailsとJavaScript
Chapter8ではAjaxでRailsサーバとの通信について説明されている。
小規模システムであればRailsモノリスで問題ないだろうけど、最近はAPIファーストでフロントエンドとバックエンドを切り離した構成が多くなっているので、参考レベルに読めば良い内容かな。
■ Reactチュートリアル
■ 基礎から学ぶVue.js - チュートリアル
■ Nuxt.js公式ホームページ
■ Next.js公式ホームページ
Rails採用企業
■ クックパッド開発者ブログ
■ Gunosy開発者ブログ
■ クラウドワークス開発者ブログ
■ Hulu開発者ブログ
■ freee開発者ブログ
■ Wantedly開発者ブログ
その他参考記事
■ Railsは終わったと言われる理由
■ マイクロサービス時代に捧ぐ、Railsでの中規模APIサーバ開発のための技術構成
■ 100万行オーバーのモノリシックRailsアプリをマイクロサービス化したクックパッドの手順