Atualmente, tenho uma página http://proctors.org/tv que é direcionada por várias visualizações e anexos com toneladas de jQuery e espaguete JavaScript cortado juntos, e eu gostaria de limpá-la. Entendo que as estruturas Javascript "MVC" mais recentes usam modelos e não armazenam estritamente todos os dados no DOM, como você faria com o jQuery.
Eu acredito que você usaria algo como Serviços e / ou Visualizações como back-end, com o Backbone na frente.
Existe um projeto Do para o Backbone , e eu lembro que havia um BoF ou uma sessão na DrupalCon Denver sobre isso ...
Espero descobrir se vale a pena tentar reescrever isso em uma nova estrutura ou apenas limpar o que tenho aqui.
javascript
Ryan Price
fonte
fonte
Respostas:
Eu usei o Ember e o Backbone junto com o Drupal - mas não da maneira que você pensaria.
O Ember e o Backbone são excelentes ferramentas para criar um aplicativo da Web - mas o Drupal não é realmente uma boa ferramenta a ser usada junto com eles. O que você deseja ao criar um aplicativo Web é algo leve e rápido. Você quer que seja rápido para dar a seus usuários a sensação de tempo de resposta imediato. Você quer que seja leve para melhorar sua escala. O Drupal não é rápido - a inicialização completa do Drupal leva muito tempo (em comparação com muitas outras opções) se tudo o que você quer fazer é fornecer uma API REST para seu aplicativo da web. Drupal é PHP, o que também deixa bastante memória RAM limitando o número de usuários simultâneos.
Então, se o Drupal é tão ruim para isso, por que usá-lo?
Você realmente deve usar o Drupal para obter o que o Drupal se destaca em - um CMS. O que eu fiz no passado com projetos que precisavam de um aplicativo Web é usar o Drupal para criar o CMS em torno do aplicativo Web. Para criar coisas como blogs, listas de conteúdo e curtidas. Também criei módulos para definir algumas coisas de back-end - como definições de esquema e outras onde fazia sentido usar o Drupal - porque isso tornava meu desenvolvimento muito mais fácil.
Em vez de usar o Drupal para criar a API REST que o aplicativo da web precisava - usei o Node.js para criar a API REST real e outras verificações que o Aapp solicita que o aplicativo da web faça. O Node.js é excelente em fazer exatamente isso. É rápido demais (tempos de resposta tão baixos quanto 30ms para uma lista de objetos). Também é muito leve, já que o JavaScript no servidor usa ações assíncronas, um servidor Node.js. geralmente pode lidar com milhares de usuários simultâneos, onde o PHP pode lidar com talvez 100. Além disso, como o Node.js. é JavaScript, você pode reutilizar muito do servidor de código e do lado do cliente. Você pode literalmente escrever o mesmo código de validação, em vez de precisar implementar o lado do cliente em JavaScript e o lado do servidor em PHP. Se você estiver indo para o Drupal con em Munique em algumas semanas - considere assistir à apresentação do node.js..
Portanto, se você é um desenvolvedor, recomendo fortemente que faça uma configuração semelhante e use apenas o Drupal para o que é realmente bom. Se você deseja criar um aplicativo da web simples e não espera muito usuário, usar o Drupal como back-end pode ser uma opção, se ajudar no seu tempo de desenvolvimento.
Atualizar Drupal 8
Portanto, com o lançamento do Drupal 8, algumas das opções acima ainda são verdadeiras, mas não da mesma forma que antes. O Drupal 8 é como o Drupal 7 não é uma ferramenta leve, como Node.js, Rails, Django etc. Como os aplicativos JavaScript consomem principalmente vários serviços, você ainda deve considerar se o Drupal é a melhor ferramenta para isso.
Com o Drupal 8, muitas coisas foram aprimoradas. Services é muito mais nativo, com o Symphony direcionando a solicitação / resposta. O Drupal 8 tem muitas possibilidades interessantes com o cache avançado e todos os ótimos recursos. Mas mesmo com toda a grandeza do Drupal 8, ele ainda é muito mais pesado que as aplicações leves. É difícil dizer o quão bem-sucedido o Drupal 8 pode ser usado como um provedor rápido de serviços da web.
Ainda assim, com tudo dito e feito, minha recomendação geral permanece a mesma. Sendo um desenvolvedor do Drupal, é fácil usar o Drupal para tudo, pois estamos familiarizados com ele. Parece seguro e o Drupal pode ser usado para praticamente qualquer coisa. Lembre-se, embora seja possível usar o Drupal para qualquer coisa, isso não significa que é a melhor ferramenta para tudo. Fazer uma análise sólida e entender os pontos fortes e fracos das ferramentas que você deseja usar em um projeto de TI sempre será uma grande ajuda e poderá evitar que você termine em uma posição de impasse com um resultado que não atenda às suas expectativas. .
fonte
Recentemente, comecei a desenvolver meu primeiro aplicativo de backbone + drupal e estou gostando muito. Usando o módulo Backbone junto com Serviços, Exibições de Serviços e as bibliotecas necessárias. O projeto é bastante simples: criar um carrossel gerenciável de conteúdo de 6 páginas que exibe vários dados, juntamente com um controle deslizante de Notícias adicional que exibe conteúdo diferente. Essa página fica em várias telas sem a interação do usuário; portanto, é necessário atualizar o conteúdo do front-end sem atualizar o navegador. Eu pensei que isso se encaixava perfeitamente em um aplicativo Drupal + Backbone, com o Drupal gerenciando o conteúdo e controlando e sincronizando o backbone com o db. Eu integrei no jquery.cycle 2, que tem uma API incrível e se encaixa bem no estilo de codificação MVC.
Eu posso ver por que as pessoas podem se interessar em usar o Drupal como estrutura de back-end, mas para um aplicativo pequeno como este, o Drupal é leve e rápido . Consegui isso iniciando com uma instalação mínima e escolhendo cuidadosamente os módulos contrib e core. Agora estou em cerca de 50 módulos com pouco menos de 150 linhas de código JS personalizado para o material de backbone e estou praticamente pronto.
Eventualmente, tentarei confirmar isso de volta como um exemplo para o módulo de backbone, pois atualmente não há exemplo que mostre como usar o Views como coleções etc.
Em conclusão:
Vale a pena analisar isso se o seu projeto corresponder bem. Na minha opinião, os problemas de desempenho derivados do peso do Drupal podem ser facilmente combatidos usando mecanismos de cache como o Varnish, ou até mesmo o cache de impulsionamento ou de página principal. A flexibilidade e a velocidade do desenvolvimento do uso do Drupal superam completamente os negativos para mim.
fonte
A resposta básica é sim, algumas pessoas estão usando. Eu não o usei (ainda não encontrei uma boa correspondência de projeto), mas atualmente existe um grupo Drupal para ele, e ele também se encaixaria na Iniciativa Central de Contexto e Serviços da Web, que é uma das Iniciativas do Drupal 8. . Há também uma sessão no DrupalCon Munich 2012, Backbone.js no Frontend .
Ainda não sei se ele está pronto para o horário nobre, mas, na minha opinião, vale a pena criar uma prova de conceito, pois se você tiver algo que possa se beneficiar dele e possa projetar o lado JS em uma interface e não em uma implementação . Isso ajudaria a isolar as alterações de back-end, caso você decida aplicar o Drupal, por qualquer motivo.
fonte
Você pode achar isso útil: mostra um exemplo de conversão de um script baseado em JQuery em um script de backbone. Obviamente, você precisará acessar o backbone.js, como uma biblioteca usando drupal_add_js ou usando o módulo
https://github.com/kjbekkelund/writings/blob/master/published/understanding-backbone.md/
fonte