저는 Rails를 배우고 있으며 이러한 템플릿 엔진을 보았습니다. 나는 그들에 대한 경험이 없습니다 (단지 erb).
근데 초심자라서 정말 헷갈려요. 어떤 것을 제안하고 그 이유는 무엇입니까? Erb, Haml 또는 Slim? 다른 것보다 선호하는 이유를 알려주십시오. 다른 권장 사항이 있으면 알려주십시오.
편집 : 나는 여기서 우승자를 찾고 있지 않습니다. 나는 그들, 구문, 실행 속도 등에 대한 귀하의 의견을 듣고 싶습니다.
답변
ERB는 주로 일반 HTML에서 작업 할 웹 디자이너가 있고 햄 또는 슬림을 알지 못하는 경우에 좋습니다. 이런 식으로 그는 HTML을 작성할 수 있고 적절한 태그를 사용하여 루비 로직을 임베드 할 수 있습니다.
HTML과 루비 로직 모두에서 작업하거나 디자이너가 HAML과 같은 새로운 것을 배울 준비가되어 있다면 HAML을 선택하겠습니다. 루비 친화적이고 ERB보다 훨씬 더 읽기 쉽고 문자 수를 줄입니다.
ERB에서보기는 다음과 같습니다.
<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>
HAML에서는 다음과 같이 보입니다.
#profile
.left.column
#date= print_date
#address= current_user.address
.right.column
#email= current_user.email
#bio= current_user.bio
훨씬 더 깨끗해!
HAML과 SLIM의 차이점은 SLIM으로 작업 한 적은 없지만 맛의 문제라고 생각합니다. 두 구문을 모두 살펴보고 어느 것이 더 잘 보이는지 결정하십시오. 이 둘 (HAML / SLIM) 사이에 확실한 승자가 있다고 생각하지 않습니다.
답변
햄보다 슬림을 사용하는 두 가지 큰 장점 :
-
Slim은 현재 haml보다 약 8 배 빠릅니다.
-
Slim은 HTTP 스트리밍을 지원하지만 HAML은 지원하지 않습니다.
-
Slim은 더 자연스러운 구문을 가지고 있습니다.
a href="foo.html"
답변
내 머리 꼭대기에서 이것이 내가 생각 해낸 것입니다.
ERB :
장점
- 기본 제공
- 공백에 의존하지 않음
- Ruby 코드가 뿌려진 HTML로 가장 낮은 진입 장벽 (HTML에서 오는 경우)
- 대부분의 IDE의 렉서는 기본적으로 읽습니다.
- DHH는 그것을 선호합니다
- 레거시 앱은 아마도 여전히 그것을 사용하고있을 것입니다.
단점
- 더 자세한
- 헬퍼 및 뷰의 content_for 태그는 빠르게 벗어날 수 있습니다.
- content_for 태그는 erb가 블록의 마지막 줄만 반환하므로 중첩 태그를 더 어렵게 만듭니다. 따라서 문자열에 추가 한 다음 반환해야합니다.
HAML
장점
- 더 간결합니다. 닫는 태그 없음, 작은 화면에 적합
- 시각적으로 깔끔한 구조
- 헬퍼 메소드에서 haml을 활용하기 위해 헬퍼 (haml_concat, haml_capture)가 내장되어 있습니다.
- 클래스 체인
- # for divs 또는. 클래스 체이닝의 경우, JS 태그의 경우 : javascript
단점
- 공백에 의존하여 때때로 파악하기 어려운 오류가 발생합니다.
- 복잡한 태그는 일반적으로 “해시”형식에 의존해야합니다. (실제로 이것은 누군가에게 유연성을 보여주는 훌륭한 예라고 생각하지만 고통 스러울 수 있습니다.)
- 보석으로 추가됨
- 디자이너가 조정하는 데 어려움이있을 수 있습니다.
- 일반 공백 경고 외에도 … 간단한 공백 오류 예. 들여 쓰기를위한 탭과 공백으로 인해 프로덕션에서 페이지 오류가 발생하여 정상적인 사양 / 테스트에서 포착하지 못할 수 있습니다. 도덕 : 뷰 테스트가 더 많이 필요할 것으로 예상하고 테스트가 뷰의 실제 렌더링을 테스트하고 있다고 확신하지 않는 한 미션 크리티컬 뷰에 haml을 사용하지 마십시오.
- 느립니다 (erb보다)
- 주의 : 이것은 우리가 말하는 루비 코드입니다. 만약 속도가 당신의 어플리케이션에서 블로킹 문제라면 루비에 대한 대안이 있습니다. 예 : haskell
답변
저에게 질문은 %
모든 태그 |
앞에 또는 모든 새 텍스트 블록 앞에 두겠습니까?
날씬한:
tag(attr= "value")
| text
Haml :
%tag{attr: "value"}
text
한 가지 더주의해야 할 사항 : haml은 새 줄 사이에 공백을 가정 하고 (haml에서 공백 제거 ) 슬림은 공백을 가정하지 않습니다 ( 여기 및 여기 에 Slim에 공백 추가 ).
답변
https://github.com/scalp42/hamlerbslim- 성능 측면에서 Slim과 Erb를 승자로 보여주는 독립적 인 벤치 마크입니다 (슬림은 HTML 출력 크기도 줄이는 경향이 있음).
내 개인적인 의견은 전반적으로 Slim과 Haml이 유지 관리 측면에서 시간 (== 돈)을 절약 할 수 있다는 것입니다. Haml / Slim에 정통한 사람들이 귀하의 견해를 돌보는 경우에만 가능합니다.
그런 사람들이 없다면 Erb는 확실히 갈 길입니다. 세계 최고의 의지에도 불구하고 HTML / Erb로 작업 할 수 있지만 Haml / Slim을 완벽하게 찾을 수있는 매우 저렴한 사람들이 많이 있기 때문입니다. 신비.
무엇보다도이 사람들에게 Slim을 사용하도록 훈련 시키거나 최소한 그들에게 노출 시키도록 훈련시키고 “얻는”사람들의 수를 유지하십시오.