LoginSignup
5
6

More than 5 years have passed since last update.

Railsアンチパターン<ビュー編>②Markup騒乱

Posted at

前回のアンチパターン何が違うの、というとまあビューからロジックを抜き出すことには成功したとして、Railsからデフォルトで生成されるHTMLが果たしてちゃんと意味的に(HTMLの本義的に)mark upされてますかって言われるとちょっと怪しいですよね、って話。

HTMLのsemantisは以下の三点から成立している

  • 全ての要素はその中身を表すid,class属性を持っている
  • 正しいtagがついている
  • 見かけの部分はCSSの領域でHTMLは感知しない

たとえばそれ自体が情報をもたない<div></div>などはよく見られる光景だと思うが、あまり好ましいものではない。それらを防ぎながら、かつ綺麗に書くにはどうするか。

ソリューション:rails helperを使う

大体の必要な機能はRailsに初めからある。div_forやcontent_tag_forなどが例としてあげられていた。これにより煩雑なid,class付けが不要になり、なおかつちゃんとmark upできる。

結論:div_forcontent_tag_forを使ってちゃんと意味付けしよう

ソリューション:hamlを使う

そもそもerbの記述自体が煩雑といえば煩雑ですよね、という話。Railsには他にも便利なテンプレートエンジンの候補がある。

比較エントリ
slimの簡単なチュートリアル
Hamlの簡単なチュートリアル

また、最近Hamlの記法を維持しながらパフォーマンスを向上させたfaml, hamlitというテンプレートエンジンもあるよう。
パフォーマンス比較エントリ

最近ではこのレベルのビューの話はフロントエンドエンジニアとの分業になっていることも多いかもしれないけど、個人でちょっとしたものを作る際のためにこのあたりのことも愛んでおくといいと思う。一度slilm,hamlあたりに慣れるとちょっとerbには戻れなさそうですね……

結論:テンプレートエンジンはいいやつを使おう

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6