2011-02-08 4 views
4

처음 레일즈를 배우기 시작할 때 erb는 나에게 자연스러워 보였습니다. 과거에는 멋지게 다른 템플릿을 사용 했었고 훨씬 더 많은 것을 쓰고있었습니다. erb 많이 좋아).내가 erb에서 haml로 변경해야합니까?

이제 약간의 시간이 지나면 우연히 햄을 들여다 보았습니다. 그리고 첫 번째 견해에 따르면, 저는 아름다움과 단순함에 깊은 인상을 받았습니다. 특히 이전 버전에서는 haml이 더 느리지 만 뷰 렌더링은 실제로 문제가되지 않는다고 들었습니다.

그래서 지금, 나는 erb에서 haml에 이르는 상당히 큰 프로젝트를 변환하려고 진지하게 생각하고 있습니다. 나는 항상 더 나은 코드를 작성하는 방법을 찾고있다.

하지만 어떻게 생각하십니까? 좋은 생각입니까?

답변

11

새 프로젝트를 시작하기에 좋은 선택입니다. 그러나 기존 프로젝트를 ERB에서 Haml로 변환 할 때 가치가 없다고 생각합니다. 특히 재 작성이 필요한 많은 수의 템플릿이있는 경우에 유용합니다. 부러지지 않은 것을 고치지 마십시오.

+0

나의 주된 문제는 erb가 꽤 못 생겼고, 상황이 더 커지면 뷰를 조정하는 것이 어렵다고 생각한다는 것입니다. 나는 정말로 확신하지 못한다. 그러나 나는 당신의 의견을 고맙게 생각한다, 고맙다! – Spyros

+8

나는 정말로 "부서지지 않는 것을 고치지 마라"라는 라인을 싫어한다. 나는 그것을 더 좋게 만들기 위해 지속적으로 추악한 코드를 리펙토링한다. 그렇다면 왜 전망이 좋을까요? 상황이 실제로 깨지기 전에 리팩터링하는 것이 실제로 의미가 있다고 생각합니다. 유지 보수 가능. – nathanvda

+0

아마도 뷰에있는 코드가 추악한 경우 더 많은 도우미를 사용하는 것이 좋습니다. –

1

Haml은 훌륭하며 이후 템플릿 용으로 권장합니다. 그러나 프로젝트에서 erb와 haml을 자유롭게 혼합 할 수 있기 때문에 기존의 erb 코드를 haml로 변경할 필요가 없습니다. 보기가 다루기 힘들 때, 재 작성을 고려해 볼 수는 있지만, 한 번에 모두 바꿀 필요가 없습니다. 그렇게되면 꽤 오랜 시간이 걸릴 것이고 잠재적으로 버그가 생길 것입니다.

+0

두 분 모두에게 고맙습니다. :) – Spyros

3

나는 마이그레이션 할 필요가 없다는 데 동의하고, 간단히 혼합하여 일치시킬 수 있습니다.

하지만 ... 저는 효과적으로 haml로 전환 할 것을 강력히 권합니다. 나는 erb를 haml로 변환하는 노력이 그다지 크지 않다고 느낍니다. 대부분의 경우 당신은 요소를 잘라 버릴 것입니다. 다른 손에 대한 보상은 훌륭합니다.

Haml은 훨씬 더 작고 가장 중요하게는 더 읽기 쉽습니다. 구조가 매우 정교하기 때문에 중첩이 훨씬 명확 해지고보기가 훨씬 유지 관리됩니다.

당신에 대해서는 잘 모르겠지만 완전히 읽을 수없는 erb 템플릿이 있었고, 다른 개발자가 다른 스타일을 가지고 있었고 erb 내부에서 중첩을 어떻게 처리합니까? 중첩 된 코드? 요소 안에 중첩 된 코드? 코드 안에 중첩 된 요소가 있습니까? haml에는 그것에 대해 의문의 여지가 없습니다. 그것은 분명합니다. 네가 둥지를 틀면 모든 것이 들여 쓰기가된다. 취소 할 필요가 없으며 폐점 시간을 잊지 않아도됩니다. </td> 또는 </div>.

또한 파일을 훨씬 작게 만듭니다 (간과하기 쉽습니다).

실제로 성능 문제가있을 수 있지만 실제로 문제가있는 경우 haml과 거의 동일한 slim을 보면서 빠르고 눈부실 정도로 빠르게 해결할 것을 제안합니다.

+5

슬림을 언급하는 +1, 저에게 새로운 것 – zetetic

+0

슬림은 아주 좋습니다. –

관련 문제