Quando são segmentadas quadros melhor do que orientado a eventos quadros?(por exemplo, quando é trilhos melhor do que node.js?)
-
13-12-2019 - |
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?
Solução
Então, onde estão os inconvenientes de event-driven quadros?
- 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.
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.- 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?
- 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.
- 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ó
- 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ó).