Uczę się Railsów i widziałem te silniki szablonów. Nie mam z nimi doświadczenia (tylko erb).
Ale ponieważ jestem początkującym, jestem naprawdę zdezorientowany. Który proponujesz i dlaczego? Erb, Haml czy Slim? Podaj powód, dla którego preferujesz jeden z nich. Jeśli masz inne zalecenia, daj nam znać.
EDYCJA: NIE szukam tutaj zwycięzcy. Chcę tylko usłyszeć twoje opinie na ich temat, ich składnię, szybkość wykonywania i tak dalej.
ruby-on-rails
haml
erb
slim-lang
Omid Kamangar
źródło
źródło
Odpowiedzi:
ERB jest dobry głównie, jeśli masz projektanta stron internetowych, który będzie pracował na zwykłym HTML i nie zna ani haml, ani slim. W ten sposób może pisać HTML i możesz osadzić logikę ruby z odpowiednimi tagami.
Jeśli pracujesz zarówno nad logiką HTML, jak i ruby, lub twój projektant jest gotowy nauczyć się czegoś nowego (np. HAML), wybrałbym HAML. Jest o wiele bardziej przyjazny dla rubinów, znacznie zmniejsza liczbę znaków i jest o wiele bardziej czytelny niż ERB.
Na przykład (pobrane z oficjalnej strony HAML ):
W ERB twój widok będzie wyglądał następująco:
Będąc w HAML będzie to wyglądać tak:
Dużo czystsze!
A jeśli chodzi o różnicę między HAML i SLIM - nigdy tak naprawdę nie pracowałem z SLIM-em, ale myślę, że to kwestia gustu - spójrz na obie składnie i zdecyduj, która wygląda lepiej w twoich oczach. Nie sądzę, aby między tymi dwoma był zdecydowany zwycięzca (HAML / SLIM).
źródło
a href="foo"
.Dwie duże zalety używania slim over haml:
Slim jest obecnie około ośmiokrotnie szybszy niż haml.
Slim obsługuje strumieniowanie HTTP, podczas gdy HAML nie.
Slim ma bardziej naturalną składnię:
a href="foo.html"
źródło
To jest to, co wymyśliłem
ERB :
Plusy
Cons
HAML
Plusy
Cons
źródło
Pytanie dla mnie sprowadza się do tego, czy wolisz umieścić
%
przed każdym tagiem, czy|
przed każdym nowym blokiem tekstu?Szczupły:
Haml:
Jeszcze jedna rzecz, na którą należy zwrócić uwagę: haml zakłada spację między nowymi wierszami ( usuń spacje w haml ), podczas gdy slim zakłada brak spacji (dodaj spacje w Slim tutaj i tutaj )
źródło
|
dla każdego bloku tekstu%
dla każdego tagu. Znaczników jest znacznie więcej niż bloków tekstu dosłownego. Mała, ale semantyczna korzyść dla mnie ze slimem polega na tym, że każdy surowy, dosłowny html z<>
zastosowanymi tagami jest poprzedzony wyraźnym|
. Wolę „wszystko jest szczupłe, chyba że wyraźnie uczynisz to dosłownie z|
„ ponad ”, wszystko jest dosłowne, dopóki nie zrobisz tego za pomocą a%
.attr="value"
), podczas gdy Haml wygląda bardziej jak Ruby ({key: "value"}
jak Hash).https://github.com/scalp42/hamlerbslim - to niezależny test porównawczy, który pokazuje Slim i Erb jako zwycięzców, jeśli chodzi o wydajność (slim ma tendencję do zmniejszania rozmiaru wyjściowego HTML).
Osobiście uważam, że ogólnie Slim i Haml zaoszczędzą Twój czas (== pieniądze) w zakresie konserwacji, pod warunkiem, że masz doświadczonych ludzi Haml / Slim, którzy dbają o Twoje poglądy.
Jeśli nie masz tych ludzi, Erb jest zdecydowanie najlepszym rozwiązaniem, ponieważ pomimo najlepszej woli na świecie jest dostępnych wiele bardzo niedrogich osób, które mogą pracować z HTML / Erb, ale uważają Haml / Slim za kompletny zagadka.
Najlepszy ze wszystkich przypadków, wyszkol tych ludzi, aby używali Slim lub przynajmniej narażaj ich na to, i zachowaj liczbę tych, którzy „to rozumieją”.
źródło