Wann sind Gewinderahmen besser als ereignisgesteuerte Rahmenbedingungen?(d. H. Wann ist Schienen besser als node.js?)

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

Frage

Ich verstehe, was ein Gewinderahmen ist (Schienen, Django, Symfony2, ...).Und ich verstehe, was ein ereignisgesteuertes Framework ist (Node.js, Eventmachine, verdreht, ...) und warum es ideal für Live, Chat, Geschwindigkeit ist, ... Außerdem scheinen sie nicht zu Problemen für normale Anwendungsfälle zu führen.Also:

  • Was sind die Nachteile von ereignisgesteuerten Rahmenbedingungen?
  • Wann sollte ich Schienen zu Node.js bevorzugen?
  • Warum sind nicht alle neuen Webserver mit Eventmachine, Twisted oder Node.js?
  • werden berühmte Rahmenbedingungen wie Django oder Rails ereignisgesteuert oder sterben?
War es hilfreich?

Lösung

wo sind die Nachteile der ereignisgesteuerten Frameworks?

    .
  1. Vertrautheit. Da die ereignisgesteuerte Webprogrammierung so unterschiedlich ist, wird es eine Weile sein, bevor die Programmierer damit angenehm sind. Wenn Sie an einer Frist arbeiten, ist es einfacher, das zu verwenden, was Sie wissen, das funktioniert.
  2. Bibliotheksunterstützung. NODE hat eine erstaunliche Anzahl von Modulen, hat jedoch einen langen Weg, um mit Rubin und Python update: NODE hat jetzt mehr veröffentlichte Module verfügbar als Python oder Ruby .
  3. Bereitstellung. IT-Mitarbeiter werden verwendet, um Rahmenbedingungen zu gewinnen. Um ereignisgesteuerte Frameworks zu nutzen, möchten Sie asynchron auf dem Boden bis unten sein. Im Moment können Sie sich in Node.js entwickeln, können Sie es jedoch effektiv bereitstellen, oder müssen Sie Ihre eigenen Server verwalten?
  4. unbegründete Bedenken. Dinge, die wie Probleme erscheinen, sind aber nicht wirklich:
      .
    • Event-Driven-Programmierung ist schlecht für CPU-intensive Apps : der Grund, dass eine CPU-intensive Berechnung den Server blockieren würde. Dies ist streng wahr, aber praktisch wird es überwunden, indem er einen anderen Prozess lag, um ihn als E / A zu behandeln, beispielsweise mit dem generellen Node-child_process.exec.
    • Ereignisgetriebene Programmierung ist nur für Apps, die eine hohe Parallelität benötigen : Der Grund hier ist, dass die ereignisgesteuerte Programmierung "härter" ist als die traditionelle Web-App-Programmierung, sodass es sich nicht lohnt, wenn Sie es nicht haben ein guter Grund zu. Ich persönlich glaube nicht, dass dies die Fall-Event-Event-angetriebene Programmierung ist nicht schwieriger, aber es ist sehr anders. Irgendwann kann eine kritische Masse von Programmierern mit dem ereignisgesteuerten Ansatz vertraut sein, und diese Sorge wird verschwinden.
    • Ereignisgetriebene Programmierung ist ein Durcheinander verschachtelter Rückrufe. Dies ist möglicherweise true, wenn Sie es zuerst erfahren, aber schließlich erfahren Sie, wie Sie Ihren Code auf lesbare Weise strukturieren können. .
  5. Dokumentation. Die Dokumentation für den Knoten und seine 3RD-Partei-Bibliotheken sind schrecklich, normalerweise bestehend aus nichts mehr als einem generationspflichtigen. Aus der Python-Welt kommend, wo wir zur hervorragenden Dokumentation eingesetzt werden, ist dies ein großer Nachteil. Dies wird langsam besser (wir brauchen mehr Dokumentation wie dieses ). .

    Wann sollte ich Rails zu Node.js bevorzugen?

      .
    • Wenn Sie oder Ihr Team nur Ruby über JavaScript bevorzugen.
    • Wenn Sie oder Ihr Team mit Knoten nicht vertraut sind und Sie den Job erledigen müssen.
    • Wenn Sie die Funktionalität verwenden müssen, die in den Schienen in den Schienen ist, hat der Knoten noch nicht.
    • Wenn Sie auf vorhandene Rails-basierte Infrastruktur bereitstellen müssen.
    • Wenn Sie das Management davon überzeugen müssen, dass Sie node.js verwenden sollten, aber Sie möchten nicht derjenige sein, der den Fall annehmen soll, wenn das Projekt fehlschlägt.

    Warum alle neuen Webserver nicht mit EventMachine, Twisted oder Node.js geschrieben werden?

    siehe oben.

    berühmter Rahmen als Django oder Rails drehen ereignisgesteuert oder sterben?

    Django und Rails werden um lange Zeit sein. In diesen Rahmen gibt es viele Apps, und es gibt keinen Grund, sie neu zu schreiben. Und es gibt einen großen Talentpool, der bei der Entwicklung einer neuen Web-App häufig eine Gegenleistung ist.

    (aber siehe Diese Quora antwortet aus dem Lead-Entwickler von Django, den Knoten des Endorts).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top