template engine benchmark 프로그램을 만들고 있습니다. 처음에는 렌더링 된 결과 (문자열)를 반환하여 템플릿 엔진을 테스트하도록 설계되었습니다. 그러나 일부 템플릿 작성자는 템플릿 엔진이 문자열을 결과로 반환해서는 안되며 대신 출력 스트림 또는 작성기 인스턴스를 매개 변수로 받아서 렌더링 결과를 병합해야한다고 우려합니다. 그들은 그 케이스가 템플릿 엔진이 사용되는 실제 환경을 대표한다고 주장한다.템플릿 엔진을 출력 스트림으로 렌더링하거나 문자열을 반환해야합니까?
ASAIK,이 진술은 100 퍼센트 올바르지 않습니다. Play! Framework (적어도 1.x 이상)에서는 템플릿 엔진이 String을 반환 한 다음 출력 스트림에 삽입해야합니다. 그리고 이런 식으로 정리하는 것이 합리적이라고 생각합니다. 어떤 논리 오류로 인해 템플릿 렌더링 프로세스가 실패하면 템플릿 엔진이 직접 응답을 출력하면 오류를 복구 할 수 없을지 생각하십시오. Play에서 반쯤 엉망인 데이터를 브라우저로 보내지 않고 우아한 시스템 오류 페이지로 응답 할 수 있습니다.
출력으로 직접 렌더링하는 쪽은 성능과 리소스 소비에 명백한 이점이 있습니다. 나는 템플릿 엔진 디자이너를 위해 더 좋은 방법이되어야하는지 궁금하다.
스트림 추상화 (예 : [Appendable] (http://docs.oracle.com/javase/7/docs/api/java/lang/Appendable.html))는보다 유연 해지고 엔진이 결과를 생성 할 수 있습니다. RAM 또는 String 유형의 제한으로 인해 제한되지 않습니다. – McDowell