erb、haml、slim:どれを提案しますか?なぜ?
Erb Haml Slim Which One Do You Suggest
解決:
スリムをhamlよりも使用することの2つの大きな利点:
Slimは現在hamlより約8倍高速です。
SlimはHTTPストリーミングをサポートしていますが、HAMLはサポートしていません。
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