Estou tentando entender o cenário de diferentes abordagens e práticas recomendadas em torno do desenvolvimento de JavaScript complexo do lado do cliente.
Não sei o que rotular esta classe de aplicativo, talvez pesado AJAX ou RIA (mas não plugins como Flash / Silverlight). Estou me referindo a aplicativos da web com essas características:
- Emular UX de desktop rico / nativo em JavaScript
- Contenha a maioria / todo o comportamento em JS do lado do cliente, usando o servidor como uma API de dados (JSON / Html-Templates).
Isso contrasta com o uso do servidor da Web para renderização da interface do usuário, produzindo todo o HTML em um modelo de atualização de página.
Alguns exemplos são:
- Google Docs / Gmail
- Mindmeister
- Pivotal Tracker
À medida que avançamos para o HTML5, vejo esse estilo de desenvolvimento de RIA, com JavaScript pesado, se tornando cada vez mais comum e necessário para competir.
PERGUNTA: Então, quais são as abordagens comuns que surgem em torno do gerenciamento desses tipos de desenvolvimentos pesados de JS?
O código do lado do cliente, à medida que um aplicativo cresce em recursos, é incrivelmente complicado. Há problemas para dimensionar um esforço de desenvolvimento em várias equipes com JS bruto (ou pelo que ouvi dizer e posso acreditar).
O Google abordou o problema criando GWT que compila de uma linguagem de nível superior (Java) para JS, apoiando-se na infraestrutura de desenvolvimento existente que a linguagem de nível superior possui (ferramentas Eclipse, digitação forte, refatoração), além de abstrair a compatibilidade do navegador e outros problemas fora do desenvolvedor.
Existem outras ferramentas, como o Script # para C #, que fazem algo semelhante. Tudo isso coloca JS mais no papel de uma IL (Linguagem Intermediária). ie "Você nunca mais escreve nessa 'linguagem de baixo nível'".
Mas essa 'compilação para JS' não é a única abordagem. Não é aparente que o GWT seja a abordagem dominante ... ou realmente se tornará.
O que as pessoas estão fazendo com JavaScript de cliente avançado? Algumas questões orientadoras:
- A maioria das lojas está criando JS manualmente (em cima de bibliotecas como jQuery et al)?
- Ou existem muitas abordagens diferentes, sem as melhores práticas claras emergentes?
- A maioria das lojas está evitando o desenvolvimento da escala de RIA em favor do modelo mais simples de desenvolver do lado do servidor / redesenho de página? Se sim, isso vai durar?
- A compilação para JS talvez seja uma tendência futura emergente? Ou isso é apenas errado?
- Como eles gerenciam a complexidade e a refatoração do JS do cliente?
- Modularização e distribuição do trabalho entre equipes?
- A aplicação, aplicação e teste de padrões do lado do cliente, como MVC / MVP etc.
Então, quais são as tendências emergentes neste futuro pesado de JavaScript e HTML5?
Obrigado!