A manutenção de aplicativos Web fortemente baseados em Ajax é mais difícil?

8

Talvez eu esteja fazendo errado, mas, na minha experiência, desenvolver e manter aplicativos da Web fortemente baseados em Ajax é muito mais difícil do que um aplicativo da Web "mais padrão".

Não estou falando de um aplicativo que usa ajax para carregar alguns dados aqui e ali, mas o estilo em que a página que o servidor envia é apenas um quadro e todos os dados são preenchidos no momento do carregamento.

Eu adoraria ouvir pessoas com experiência no desenvolvimento desses tipos de aplicativos. Minha experiência pessoal é que eles levam mais horas para construir e manter.

Erik
fonte
Como você define um aplicativo Web mais padrão?
Chris
alguém que não usa ajax para tudo? Por exemplo, 37signals webapps são decididamente não-ajax, apesar do fato de que eles usam uma pitada aqui e ali
Erik
1
Mais difícil do que o que? Do que algo que usa tecnologias não padronizadas, hackeadas, para obter os mesmos resultados? Se você tornar seu aplicativo mais complexo (por exemplo, adicionando interatividade entre páginas), é razoável esperar um aumento no custo para mantê-lo.
precisa
Especificamente, você está perguntando se os tipos de sites em que o Ajax é usado tendem a ser mais difíceis do que os tipos de sites que não o utilizam, ou está perguntando se os sites da Ajax são mais difíceis do que os sites que não são do Ajax para a mesma funcionalidade?
David Thornley

Respostas:

6

Eu proponho que tanto o desenvolvimento quanto a manutenção de um aplicativo que usa JavaScript é uma tarefa mais complexa e mais desafiadora do que o desenvolvimento de aplicativos Web "clássicos".

A razão disso reside no simples fato de que quanto mais heterogênea a pilha de tecnologia você usar, mais difícil será o trabalho.

Nesse caso, com o JavsScript, basicamente o que temos é programar em uma saída automatizada do servidor, o que por si só é uma idéia estranha. As páginas de aplicativos Web dinâmicos são geradas no servidor usando alguma linguagem de programação. No lado do servidor, você obtém todos os benefícios, como verificação de sintaxe, verificação de tipo, todos os tipos de ferramentas automatizadas de análise e refatoração à sua disposição.

O JavaScript funciona do outro lado da cerca, onde não há informações sobre as grandes coisas que acontecem no servidor. O JavaScript funciona com uma marcação gerada automaticamente, que é bastante volátil e está sujeita a alterações. É por isso que um desenvolvedor deve prestar atenção para manter os dois em sincronia. Quanto maior o aplicativo, maior a dificuldade da tarefa. E essa tarefa normalmente é um trabalho manual que não pode ser automatizado o suficiente para ser dimensionado de maneira uniforme com seu aplicativo.

Portanto, sim, os aplicativos ricos em JavaScript são mais difíceis de manter.


fonte
6

Acho que, a longo prazo, meus aplicativos ajax (todos da intranet) são mais fáceis de manter, porque me parecem muito mais modulares. Por exemplo, se eu tiver uma página que carregue outro conteúdo em contêineres, esse mesmo conteúdo poderá ser facilmente reutilizado e renderizado em outro lugar. O código fonte de cada peça está em arquivos diferentes para as visualizações e métodos no controlador, tornando a depuração / aprimoramento uma tarefa mais fácil. Isso realmente depende de como você está usando o AJAX e de como está configurando seus aplicativos.

Ominus
fonte
1

A dificuldade é principalmente uma questão de experiência. Se você não tem experiência em manter aplicativos da Web fortemente baseados em AJAX, sim: é mais difícil.

No entanto, parece haver mais complexidade em um modelo de interface do usuário com capacidade de renderização do que em um com uma única renderização, como uma página da web tradicional servida por uma única solicitação. Isso é verdade por vários motivos:

  • O código de renderização é dividido entre o código do lado do servidor que executa a renderização inicial e o código JavaScript que executa a renderização do lado do cliente. Isso pode ser facilitado, por exemplo, usando JavaScript no servidor e no cliente.
  • Em geral, muito do seu código pode precisar ser duplicado (por exemplo, validação) no cliente e no servidor.
  • Em vez de renderizar dados diretamente em HTML com código do lado do servidor, você precisa de um manipulador AJAX que formate dados em JSON e, em seguida, mais código para formatar o JSON em HTML. Estruturas podem facilitar isso.
Matthew Rodatus
fonte