erb、haml、slim:どれを提案しますか?なぜ?



Erb Haml Slim Which One Do You Suggest



解決:

スリムをhamlよりも使用することの2つの大きな利点:

  1. Slimは現在hamlより約8倍高速です。



  2. SlimはHTTPストリーミングをサポートしていますが、HAMLはサポートしていません。

  3. Slimの構文はより自然です。a href = 'foo.html'




ERBは主に、プレーンHTMLで作業し、hamlまたはslimのどちらも知らないWebデザイナーがいる場合に適しています。このようにして、彼はHTMLを記述でき、適切なタグを使用してルビーロジックを埋め込むことができます。

HTMLとrubyロジックの両方に取り組んでいる場合、またはデザイナーが新しいこと(HAMLなど)を学ぶ準備ができている場合は、HAMLを選択します。それははるかにルビーにやさしく、文字数をはるかに減らし、ERBよりもはるかに読みやすくなっています。

例(公式HAMLサイトから取得):



ERBでは、ビューは次のようになります。

  

HAMLでは、次のようになります。

#profile .left.column#date = print_date#address = current_user.address .right.column#email = current_user.email#bio = current_user.bio

ずっときれい!

HAMLとSLIMの違いについては、私はSLIMを実際に使用したことはありませんが、好みの問題だと思います。両方の構文を見て、どちらが見栄えがよいかを判断してください。これら2つ(HAML / SLIM)の間に明確な勝者はいないと思います。


頭のてっぺんからこれが私が思いついたものです

ERB

長所

  • 箱から出してデフォルト
  • 空白に依存しない
  • Rubyコードを含むHTMLが散在しているため、参入障壁が最も低くなります(HTMLからの場合)。
  • ほとんどのIDEのレクサーはデフォルトでそれを読み取ります
  • DHHはそれを好む
  • レガシーアプリはおそらくまだそれを使用しています

短所

  • より冗長
  • ヘルパーとビューのcontent_forタグは、すぐに手に負えなくなる可能性があります
  • content_forタグは、erbがブロックの最後の行のみを返すため、タグのネストを困難にします。したがって、文字列に追加してからそれを返す必要があります。

HAML

長所

  • より簡潔に。終了タグなし、小さい画面に収まります
  • 視覚的にきれいな構造
  • ヘルパーメソッドでhamlを利用するためのヘルパー(haml_concat、haml_capture)が組み込まれています
  • クラスチェーン
  • divや。の#のような便利なシンタックスシュガーがたくさん。クラスチェーンの場合、またはJSタグの場合は:javascript

短所

  • 空白に依存するため、いくつかの難しいエラーが発生することがあります
  • 複雑なタグは通常、「ハッシュ」形式に頼る必要があります。 (私は実際、これは誰かが始めたときの柔軟性の良い例だと思いますが、それは苦痛かもしれません。)
  • 宝石として追加されました(これもおそらくこれを短所として置くためのストレッチです)
  • デザイナーは調整に問題があるかもしれません
  • 一般的な空白の警告に加えて...単純な空白のエラー。インデント用のタブとスペースにより、通常の仕様/テストでは検出されない本番環境でのページのエラーが発生する可能性があります。道徳:テストがビューの実際のレンダリングをテストしていることが確実でない限り、ビューテストの必要性が高まることを期待し、ミッションクリティカルなビューにhamlを使用しないでください。
  • (erbより)遅い
    • 警告: これは、速度がアプリケーションのブロッキングの問題である場合に話しているルビーコードです。たとえば、ルビーに代わるものがあります。 haskell