Quando são segmentadas quadros melhor do que orientado a eventos quadros?(por exemplo, quando é trilhos melhor do que node.js?)

StackOverflow https://stackoverflow.com//questions/10709938

Pergunta

Eu entendo o que uma thread framework (Rails, Django, Symfony2, ...).E eu entendo que um evento orientado a framework for (Node.js, EventMachine, Torcida, ...) e por isso é ótimo para viver, bate-papo, velocidade, ... além disso, eles não parecem causar problemas para a utilização normal dos casos.Assim:

  • Quais são as desvantagens de event-driven quadros?
  • Quando devo preferir Trilhos Node.js?
  • Por que não são todos os novos servidores web escrito com EventMachine, Trançado, ou Node.js?
  • Vai famosos frameworks como Django ou no Rails, tornar-se orientada a eventos ou morrer?
Foi útil?

Solução

Então, onde estão os inconvenientes de event-driven quadros?

  1. Familiaridade. Porque orientada a eventos de programação para a web é tão diferente, será um tempo antes de programadores está confortável com ela.Quando você estiver trabalhando em um prazo, é mais fácil usar o que você sabe, que funciona.
  2. Biblioteca de suporte. Nó tem um número incrível de módulos, mas tem um longo caminho a percorrer para apanhar com Ruby e Python. Atualização: Nó agora tem publicados mais de módulos disponíveis do que Python ou Ruby.
  3. De implantação. Funcionários de TI são usados para threaded quadros.Para aproveitar orientada a eventos de quadros, você vai querer ser assíncrona de cima para baixo.Agora você pode desenvolver-se em Node.js, mas você vai ser capaz de implementar de forma eficaz, ou você vai ter que administrar seus próprios servidores?
  4. Fundamento preocupações. Coisas que parecem ser problemas, mas não são realmente:
    • Programação orientada a eventos é ruim para CPU aplicativos com uso intensivo de:A razão sendo que uma utilização intensiva da CPU cálculo seria bloquear o servidor.Isto é rigorosamente verdadeiro, mas, na prática, ele é superado pela geração de um outro processo, e tratando-o como I/O, por exemplo, usando o Nó child_process.exec.
    • Programação orientada a eventos é apenas para aplicações que necessitam de alta simultaneidade:O motivo aqui é que a programação orientada a eventos é "mais difícil" do que os tradicionais web app de programação, por isso não vale a pena fazer, a menos que você tenha uma boa razão.Eu, pessoalmente, não acho que esse é o caso—programação orientada a eventos não é mais difícil, mas é muito diferente.Em algum ponto de uma massa crítica de programadores devem estar familiarizados com o evento abordagem orientada e esta preocupação vai desaparecer.
    • Programação orientada a eventos é uma bagunça de aninhados retornos de chamada. Isso pode ser verdadeiro quando você aprendê-la, mas, eventualmente, você vai descobrir como a estrutura de seu código em uma forma legível.
  5. A documentação. A documentação para o Nó e o seu 3º-festa de bibliotecas é terrível, geralmente consistindo em nada mais do que um README.md.Vindo do Python mundo, onde estamos acostumados a excelente documentação, isso é uma grande desvantagem.Este é lentamente ficando melhor (precisamos de mais documentação como este).

Quando devo preferir Trilhos Node.js?

  • Quando você ou sua equipe prefere apenas Ruby através de JavaScript.
  • Quando você ou sua equipe não estão familiarizados com o Nó e o que você precisa para começar o trabalho feito.
  • Quando você precisar usar a funcionalidade que está em Trilhos que o Nó não tem ainda.
  • Quando você precisa para implantar existentes Trilhos de infra-estrutura.
  • Quando você tem de se convencer de gerenciamento que você deve usar Node.js, mas você não quer ser o único a levar a queda se o projeto falhar.

Por todo o novo servidor web não são escritas com EventMachine, Trançado, ou Node.js?

Veja acima.

Vai famoso quadro como Django ou no Rails sua vez orientada a eventos ou morrer?

Django e Rails será em torno de um longo tempo.Existem muitos aplicativos nesses quadros, e não há nenhuma razão para reescrever-los.E existe um grande banco de talentos, que muitas vezes é uma consideração quando do desenvolvimento de um novo aplicativo web.

(Mas ver este Quora resposta a partir do principal desenvolvedor do Django, endossando Nó).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top