tnkzw.sake

HomeSeriesTagsAbout

Rails Tutorialで学べることメモ-第3章-

Series
Railsチュートリアル

Rails Tutorial を改めてしっかりやり直してのメモ第 3 章編

https://railstutorial.jp/chapters/static_pages?version=7.0https://railstutorial.jp/chapters/static_pages?version=7.0

主要コマンド

rails generate controller StaticPages action1 action2

コントローラーファイルが生成され、引数の action とそれに対応した view が生成される。
ヘルパーやテストファイルもできる。

rails destroy

generateで自動生成された変更を打ち消す。
model の場合は細かくアトリビュート指定などせず、rails destroy ModelNameで OK

rails test

minitest で記述された自動テストを実行する。

知識

HTTP(HyperText Transfer Protocol)の基本動作

GETPOSTPATCHDELETEという 4 つの基本動作がある。
ブラウザなどのクライアントと、情報を提供するサーバーは HTTP メソッドであるこの 4 つを用いて基本の意思疎通を行う。

自動テスト

自動テストは実行可能なドキュメントと言える。
主な自動テストのメリットは以下だと述べている。

  • 回帰バグの防止(リグレッションテストにもなる)
  • リファクタリングを安心してできる
  • テストコードはクライアントと見なせるのでインターフェース定義にも使える

実際に実装してみると、上記のメリットを満たせる品質のテストコードは貴重だとわかる。
意識しないと人は簡単にモックやらなんやらでテストを通すためのコードを書いてしまう。

バグが起きた際に、テスト駆動的なアプローチを取るのは有用だと感じる。
正しい動作をテストで記述してバグを再現し、テストをパスするようにコードを修正する。
コミットにこの流れを残せば履歴としては非常に良い。

リファクタリング

アプリケーションの開発を繰り返すうちに、コードのどこからともなく「腐敗臭」が漂い始めます。
『Rails Tutorial 第 7 版』第 3 章 3.3.4 Refactor より

腐ったの基準が人によって違うように(賞味期限切れ以降、どれだけの期間をセーフとするのか?)、コードの腐敗臭も感じる基準が人によって全く違う。

ERB(Embedded RuBy)

埋め込み Ruby の名の通り、Web ページに Ruby コードを埋め込んで動的な値を引き渡せるテンプレートシステム。

  • <% %>
    • ページ上に表示しない Ruby コードを記述する
  • <%= %>
    • ページ上に表示するRuby コードを記述する

この記述は JSP(JavaServer Pages)と同じ。
別の記述方法を採用しているHamlも存在する。

レイアウト

app/views/layouts/application.html.erbに HTML 構造を記述し、body タグ内に<%= yield %>を記述することで、各 view ファイルはコンテンツに集中することができる。

その他細かい項目

  • 簡単な HTML の知識
  • 多数の静的なページが必要になる場合 →thoughtbot のhigh_voltage gem

感想

クラスについて

クラスをメソッドをまとめるために便利な手法と紹介していた。
オブジェクト指向で出るよーとか、設計図的なとか言われるより導入としては混乱なくいいと感じた。

まとめ

destroy コマンドのように Rails 特有の知識から、SEO に絡む title の扱い、TDD など Web 開発者として必要な知識が存分に盛り込まれており、どんどん骨太になってきている。