Quando você vai estruturar um novo site, é comum nos depararmos com os mais diversos template engines. Muitos deles, entretanto, não tem suporte a diversas linguagens, ou quando tem possuem enormes diferenças de sintaxe. Além disso, muitos template engines possuem tantos recursos que fica dificil não separar o layout da lógica, e assim acabamos por ter dois layouts distintos que não podem usar-se das mesmas variáveis e acabam apenas por gerar muita confusão durante a manutenção de um site. Por isso, hoje vou apresentar o Mustache, um template engine fácil de usar e o melhor: universal.
Templates no geral devem ter alguns requisitos básicos para possuirem boa manutentabilidade:
- Serem fáceis de usar
- Ter sintaxe simples
- Não possuírem lógica avançada embutida, como snippets de código server-side.
- E, mais recentemente, serem universais (rodarem tanto no servidor quanto no browser, e terem um bom suporte à variadas linguagens)
Tais requisitos muitas vezes são esquecidos em frente a template engines mais populares como o Twig e o _.template do UnderscoreJS, por exemplo, e graças a isso é muito fácil a manutenção se perder. Imagine, por exemplo, que o site tem um grande número de visitas e graças à isso você se vê forçado a mudar de linguagem server-side? Usando tais template engines, você simplesmente tem que migrar todo o template feito para o seu layout junto com o resto do site. E o pior: Graças ao suporte avançado à lógica embutida, muitas vezes as possibilidades são limitadas.
Suporte do Mustache à diferentes linguagens
O Mustache é um dos template engines mais simples e mais conhecidos por cumprir bem estes requisitos. Com um só template, você tem suporte às seguintes linguagens:
- Ruby
- JavaScript
- Python
- Erlang
- PHP
- Perl
- Objective-C
- Java
- .NET
- Android
- C++
- Go
- Lua
- ooc
- ActionScript
- ColdFusion
- Scala
- Clojure
- Fantom
- CoffeeScript
- D
- E para node.js.
Essa lista foi capturada diretamente do site oficial do Mustache em 12 de junho de 2013. E mais: Você pode implementar o seu próprio parser para os templates Mustache com facilidade, visto que todo as regras para suporte aos templates estão especificadas publicamente.
Mas aí você deve estar se perguntando:
Ok, e os editores com suporte para o Mustache?
Bom, atualmente o Mustache tem suporte aos seguintes editores:
Legal, né?
Outra coisa muito legal do Mustache é que o próprio template engine é definido como logic-less. O que isso quer dizer? Quer dizer que o suporte à lógica nos templates é a mínima possível. A prova está no manual.
Acho que, frente à essa longa lista de posts, não é necessário falar mais nenhuma vantagem do Mustache, né? E, dado o fato de que é um template engine universal, acho que também não é necessário publicar nenhuma exemplo de código..Pois tais exemplos seriam limitados demais visto a grande variedade de linguagens que o Mustache suporta.
Deixe um comentário