6
0

More than 1 year has passed since last update.

Railsのテンプレートエンジンをslimからerbに戻した理由

Posted at

はじめに

Railsで開発をする際にslimを使っていましたが、元のerbに戻すことにしました。本記事ではslimのメリットとデメリットを比較し、slimからerbに戻した理由について説明します。

slimとは?

slimはRailsで使うテンプレートエンジンの1つです。slimを導入することで、通常のhtmlよりも記述量を減らすことができます。
例えば、次のように< >と閉じタグは省略されます。

html
<div>
  <h1>メニュー</h1>
  <ul>
    <li>Ruby</li>
    <li>on</li>
    <li>Rails</li>
  </ul>
</div>
slim
div
  h1 メニュー
  ul
    li Ruby
    li on
    li Rails

詳細な文法は↓にリンクを貼っておきます。

slimのメリット

slimを導入すると以下のメリットがあります。

・書きやすく読みやすい最小限のテンプレート
・デフォルトでHTMLエスケープを行い、セキュア

要するにコードを短く書けるようになるということです。

slimのデメリット

上ではslimのメリットについて記述しましたが、一方で以下のデメリットがあります。

・デフォルトでない
・細かいところは都度調べる必要がある

簡単に書けて記述量を減らせるのがslimのメリットでしたが、基本的な文法から外れるなどの細かい書き方をする場合、その度に調べる必要がありました。その調べる時間を考慮すると、記述量を減らせることによる時間短縮を上回りました。また、時間だけでなく、何度も詰まり調べなくてはならないことにより、大きく開発体験が損なわれることも体感しました。

リーダブルコードの1.2「読みやすさの基本定理」には以下のように書かれています。

コードは他の人が最短時間で理解できるように書かなければいけない。

ここでいう「他人」には自分も含まれています。書いているときにはslimの文法を覚えていても少し時間が経てば、完全に覚えているということはないでしょう。少なくとも僕はその自信がありません。そうなると、長期的な目線ではデフォルトのhtmlで書くほうが可読性が高いでしょう。自分だけでなく他人も開発に参加する場合、その都度slimの文法を学んでもらう必要があります。この点においても、可読性が下がっていることがわかります。

また、1.3「小さなことは絶対にいいこと?」では、コードはただ短ければ良いことなのかということに疑問提起をしています。ただ短いだけのコードより、長くなったとしても読みやすいコードのほうが良いとしています。重要なのは「理解するまでにかかる時間」を短くすると結論づけています。これは先程の議論と同様にslimの場合に対してもあてはまります。

おわりに

以上の理由により、slimからerbに戻しました。slimのメリット、デメリットを比較するにあたり、コードの読みやすさ、開発体験などを改めて考えることができました。

参考

6
0
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
6
0