web-dev-qa-db-fra.com

erb, haml ou slim: lequel proposez-vous? Et pourquoi?

J'apprends Rails et j'ai vu ces moteurs de templates. Je n'ai aucune expérience avec eux (seulement erb).

Mais comme je suis débutant, je suis vraiment confus. Lequel suggérez-vous et pourquoi? Erb, Haml ou Slim? S'il vous plaît dites votre raison de préférer un sur les autres. Et si vous avez d'autres recommandations, veuillez nous en informer.

EDIT: Je ne cherche pas un gagnant ici. Je veux juste connaître votre opinion à leur sujet, leur syntaxe, leur rapidité d'exécution, etc.

97
Omid Kamangar

ERB est utile surtout si vous avez un concepteur de sites Web qui travaillera en HTML simple et ne connaît ni haml ni slim. De cette façon, il peut écrire du HTML et vous pouvez intégrer la logique Ruby avec les balises appropriées.

Si vous travaillez à la fois sur HTML et sur la logique Ruby, ou si votre concepteur est prêt à apprendre quelque chose de nouveau (comme HAML), je choisirais HAML. Il est beaucoup plus convivial avec Ruby, réduit le nombre de caractères de manière beaucoup plus lisible que ERB.

Par exemple (tiré du site officiel site HAML ):

Dans ERB, votre vue ressemblera à ceci:

<div id="profile">
  <div class="left column">
    <div id="date"><%= print_date %></div>
    <div id="address"><%= current_user.address %></div>
  </div>
  <div class="right column">
    <div id="email"><%= current_user.email %></div>
    <div id="bio"><%= current_user.bio %></div>
  </div>
</div>

En HAML, cela ressemblera à ceci:

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

Beaucoup plus propre!

En ce qui concerne la différence entre HAML et SLIM - je n’ai jamais vraiment travaillé avec SLIM, mais j’imagine que c’est une question de goût - examinez les deux syntaxes et choisissez celle qui vous va le mieux. Je ne pense pas qu'il y ait un vainqueur défini entre ces deux (HAML/SLIM).

62
Erez Rabih

Deux gros avantages de l'utilisation de slim over haml:

  1. Slim est actuellement environ huit fois plus rapide que haml.

  2. Slim prend en charge le streaming HTTP, contrairement à HAML.

  3. Slim a une syntaxe plus naturelle: a href="foo.html"

82
Bart ten Brinke

C’est ce que j’ai trouvé par cœur

ERB :

Pros

  • par défaut hors de la boîte
  • ne dépend pas de l'espace blanc
  • plus petite barrière d’entrée (si elle provient de HTML) que son HTML avec Ruby saupoudré dans
  • la plupart des lexers de l'IDE le lisent par défaut
  • DHP le préfère
  • les applications existantes l'utilisent probablement encore

Inconvénients

  • plus verbeux
  • les tags content_for dans les assistants et les vues peuvent rapidement dégénérer
  • les balises content_for rendent plus difficiles l'imbrication des balises, car erb ne renvoie que la dernière ligne du bloc. vous devez donc ajouter une chaîne, puis la renvoyer.

HAML

Pros

  • plus concis. pas de balises de fermeture, tient dans des écrans plus petits
  • structure visuellement plus propre
  • a construit dans les assistants (haml_concat, haml_capture) pour utiliser haml dans les méthodes d'assistance
  • chaînage de classe
  • beaucoup de sucre syntaxique utile comme # pour divs ou. pour le chaînage des classes, ou: javascript pour les tags JS

Inconvénients

  • espace blanc dépendant qui fait pour certaines erreurs difficiles à comprendre parfois
  • les balises complexes doivent généralement recourir au format "hash". (Même si j’estime qu’il s’agit d’un excellent exemple de flexibilité pour les débutants, cela pourrait être pénible.)
  • ajouté comme un joyau (encore probablement un étirement pour mettre cela comme un con)
  • les concepteurs pourraient avoir du mal à ajuster
  • en plus de l'avertissement général d'espaces blancs ... par exemple, des erreurs d'espaces simples. Les tabulations et les espaces pour l'indentation peuvent entraîner des erreurs de production dans les pages que les spécifications/tests normaux ne peuvent pas intercepter. Morale: attendez-vous à un plus grand besoin de tests de vue et n'utilisez peut-être pas haml pour les vues critiques, sauf si vous êtes sûr que vos tests testent le rendu réel de la vue.
  • est plus lent (que erb)
    • mise en garde: c'est Ruby le code dont nous parlons si la vitesse est un problème de blocage dans votre application, il existe des alternatives à Ruby, par exemple haskell
32
engineerDave

La question que je me pose est de savoir si vous préférez mettre % avant chaque tag ou | avant chaque nouveau bloc de texte?

Svelte:

 tag(attr= "value")
  | text

Haml:

 %tag{attr: "value"}
   text

Une dernière chose à surveiller: haml suppose qu'il y a un espace blanc entre les nouvelles lignes ( enlever les espaces blancs dans haml ) tandis que slim ne prend aucun espace (Ajouter des espaces blancs dans Slim ici et ici )

18
montrealmike

https://github.com/scalp42/hamlerbslim - est une référence indépendante qui présente Slim et Erb comme gagnants, en termes de performances (slim tend également à réduire la taille de la sortie HTML.)

Mon opinion personnelle est que, dans l’ensemble, Slim et Haml vous feront économiser du temps (== argent) en termes de maintenance, à condition que vous disposiez de personnes averties en Haml/Slim pour s’occuper de votre point de vue.

Si vous n’avez pas ces personnes, Erb est définitivement la voie à suivre car, malgré la meilleure volonté du monde, de nombreuses personnes très peu chères sont disponibles pour travailler avec HTML/Erb, mais trouvez Haml/Slim complet. mystère.

Le meilleur de tous les cas, formez ces personnes à utiliser Slim ou au moins exposez-les à celles-ci, et conservez le nombre de celles qui "l'obtiennent".

16
ocodo