【現場で使える Ruby on Rails 5速習実践ガイド】の感想・気づき(8~10章)

-2018.12.27 -技術書
-, ,

スポンサーリンク

現場で使える Ruby on Rails 5速習実践ガイドとは?

10月に発売されたRailsの技術書で、
Ruby・Railsの開発支援をされている株式会社万葉の方々が監修している書籍です。

通称現場Railsと呼ばれています。

2018年12月現在の最新のRails技術書ということもあり、Rails5.2に対応しています。

読書対象者としては他言語でのWEBアプリケーション開発や、オブジェクト指向プログラミングについての知識・経験がある方と明記されていたので全くの初学者向けではない書籍にはなっています。

最後まで読み終わったので内容を振り返ってまとめてみました。

8章:RailsとJavaScript

Ajax

  • remote: trueをつけた要素がAjax通信に成功したときにajax:successというイベントを発行
  • このイベントをaddEventListenerで補足させる

という rails-ujs が果たしている役割が明記されていました。

Turbolinks

独自でJSを追加すると何故かうまく動かずわけが分からい経験を何度かしました。
その原因としていつも行き着くのがこの Turbolinks。

  • Turbolinksが何を担っているのか?
  • それをどう実現しているのか?
  • その存在によって起きうる変化は何か?

という大事なことが本書で全て説明されています。

その他、Turbolinksによって得られる恩恵を享受しようとしたとき発生する注意点や無効化方法・無効化の是非についても語られています。

9章:複数人でRailsアプリケーションを開発する

チーム開発の風景(導入編)

GitHubを例に、複数人でソースコードをバージョン管理して開発する手法が取り上げられています。

現在自分も行っているPull Requestとレビューを基本とした開発手法です。
masterブランチとの差分を解消するために

  • 作業ブランチをmasterブランチの最新にrebaseする
  • masterブランチを作業ブランチにmergeする

両者のメリット・デメリットに触れながら、図を用いながら解説されている点は良いです。

新メンバーが加わる際に読んでもらうだけでも効果がありそうです。

チーム開発の風景(コードレビュー編)

  • どんな点を見て何にコメントするか?
  • コーディング規約との付き合い方
  • Lintツールの活用方法

など自社以外どうしているのか、何がベストプラクティスなのか分からないが大事なトピックについても一つの視座を提示してくれているのでありがたい。

マイグレーションに注意する

複数人の開発で後々チームに迷惑をかけないように、rollback・redoを習慣化したり、マイグレーションファイルが多くなって整理したい時の方法については勉強になりました。自分の意識に取り込みたいと思います。

また、マイグレーションファイルの中で複雑なことを書いた経験があまり無いこともありますが、スキーマキャッシュという機構を知らなかったので以降は気をつけたいです。

10章:Railsアプリケーションと長く付き合うために

バージョンアップにどう取り組むか

Rubyは毎年この時期、Railsも数ヶ月ごとにバージョンアップされます。

gemを含めて「化石」と化してしまうと

  • バージョンアップによる機能改善の恩恵を得られない
  • 差分が大きくなりますますバージョンアップできなくなる
  • 利用できるgemが制限される
  • セキュリティリスクが増える

などのデメリットが出るのでずっとバージョンし続ける必要があるというお話です。

しかるべきところにコードを書く

Fat Controllerviewへのビジネスロジックの混在の話。

MVC3つあることは分かるんだけど、これってどこに書くべきものなんだ?という疑問を解消してくれるパートだと感じました。

普段はDraperを用いていますが、これについても、モデルの情報を利用してプレゼンテーションを加工するようなロジックについてはDecoratorパターンを使いましょうというお話があります。

上手に共通化する

  • 共通機能のモジュールを複数クラスにMix-in
  • 基底クラスを追加して共通機能を持たせる
  • Applicationレイヤーに全クラス共通の処理を記述する
  • パーシャルやヘルパーを利用する

というトピック。
普段は基底クラスを敷いていたので他のやり方を知れたことは良かったです。

最後に

以上が現場Railsを写経しながら読んだ感想・気づきです。

技術書は体系化されている分一気に学ぶことが出来るので好きなインプット法です。

しかし、アウトプットあってこそのインプットなので実務や趣味レベルのアプリを作る中で学んだ知識を活かしていきます。

          
    

スポンサーリンク

  
Scroll Up