ein neuer Ansatz für Web-Entwicklung: Anfrage für Tools und Komponenten Empfehlungen

8

Ich bin auf der Suche nach der besten Möglichkeit, Web-Anwendungen zu schreiben, die schwer mit JavaScript sind. Daher möchte ich Ihnen meine Ideen vorstellen und Sie bitten, Ihre Meinungen und Alternativen dazu zu lesen:)

Vor 1 Jahr habe ich angefangen, nach Möglichkeiten für Web-Entwicklung neben PHP zu suchen. Ich habe JSP und Django gefunden. Ich beschloss, mit Django zu gehen. Nachdem ich einige Projekte mit Django gestartet habe, kam ich zu dem Schluss, dass Django für mich keine Möglichkeit für eine einfache Webentwicklung bietet. Ich muss mir Sorgen um zu viele Funktionen und vor allem die Notwendigkeit, Client-und Server-Code in Balance halten.

Also begann ich wieder zu suchen und fand CouchDB, die eine Art cooles Back-End für Ajax-Anwendungen bietet. Meine Idee war, CouchDB als Datenbankserver zu verwenden, der nur Datenvalidierung & amp; Speicher und hielt alles andere zum Client. Was anscheinend keine neue Idee ist, aber ich habe noch kein gutes Beispiel dafür gefunden. Kennst du etwas?

Ich hätte gerne eine Architektur mit folgenden Komponenten:

  • Datenspeicher & amp; Validierung (CouchDB)
  • Webserver: welcher Dateien und WebSockets oder Polling (Tornado oder Eventlet)
  • behandelt
  • clientseitiges JavaScript, um alles andere zu behandeln (fav: selbst geschriebene MooTools)
  • clientseitige Templating-Sprache (kennen Sie irgendwelche cool?)

Haben Sie Vorschläge für verschiedene Software für diese Punkte?

Für Anfragen wie die folgenden:

Die erste Anfrage sendet JavaScript-Dateien und einfaches HTML (nur <body> und <head> -Tags) an den Client. Die geladenen JavaScript-Funktionen erstellen den HTML-Code und fügen ihn in das <body> -Tag ein. Von nun an fordert die gesamte Navigation auf der Website nur JSON an, das über den Websocket bereitgestellt und vom clientseitigen JavaScript verarbeitet wird.

Pros:

  • Der gesamte Code ist in JavaScript auf der Client-Seite
  • geschrieben
  • Animation auf Updates kann sehr einfach implementiert werden
  • Die Logik der Seite wäre sehr leicht und transparent
  • Wahrscheinlich keine Skalierungsprobleme auf der Serverseite
  • Sehr schnelle Anwendungsleistung durch hervorragende clientseitige Caching-Möglichkeiten. Zum Beispiel mit Webstorage

Nachteile:

  • Die Template-Verarbeitung kann auf niedrigen Hardware-Rechnern sehr langsam sein?!
  • Der Anwendungscode ist öffentlich für alle

Fragen

  • Kennen Sie eine verfügbare Lösung für diese Art von Web-Entwicklung?
  • Glauben Sie, dass das Schreiben von Web-Anwendungen auf diese Weise kurbelig wäre?

Sehen Sie sich auch Antwort 2

    
nenTi 18.07.2010, 23:30
quelle

3 Antworten

6
  

Kennen Sie eine verfügbare Lösung für diese Art von Web-Entwicklung?

Sehen Sie sich couchapps an. Es ist von den Jungs hinter cochedb geschrieben. Es basiert auf jQuery, aber es wäre nicht so schwer es mit motools zu konvertieren. Es gibt auch eine nette JavaScript-Vorlagen-Engine namens Schnurrbart . Die Template Engine funktioniert auf beiden Seiten, Browser und Couchdb.

  

Würde das Schreiben von Web-Anwendungen auf diese Weise kurbeln?

Nein. Dies ist die Art und Weise, wie die meisten Google Apps (Mail, Docs, Tabellenkalkulation) funktionieren, es gibt auch eine Reihe von Frameworks wie Sproutcore oder Cappuccino.

  

Webserver: welcher Dateien und   WebSockets oder Polling (Tornado oder   Eventlet)

Ich denke, dass couchdb auch damit umgehen wird

    
Andreas Köberle 19.07.2010, 08:32
quelle
0

Obwohl eskimoblood die meisten Fragen beantwortet hat, gibt es immer noch ein großes Problem bei "meinem" beschriebenen Ansatz der Entwicklung von Webanwendungen: Die Vorlagensprache

Wie oben erwähnt, gibt es viele, die auf der Client-Seite mit Javascript arbeiten. Aber meiner Meinung nach fehlt ein großes Feature für alle Template-Sprachen, die ich bisher entdeckt habe: Die Update-Funktion

Ich meine nicht, die gesamte Vorlage beim Aktualisieren neu zu rendern, aber ich würde gerne eine Template-Sprache sehen, die nur meine geänderten Variablen aktualisiert.

Anwendungsbeispiel:

Stellen Sie sich vor, ich lese gerade ein Blog, das 25 JSON-Variablen und eine große Vorlage zum Rendern enthält. Plötzlich gibt ein mutiger Mann irgendwo auf der anderen Seite des Planeten einen coolen Kommentar ab. Nun gibt es verschiedene Möglichkeiten, den aktuellen Lesern ein "Live-Update" zu präsentieren:

  • Worst-Case: Die gesamte Seite wird zurückgesetzt. 26 Json-Variablen und die gesamte Template-Verarbeitung müssen neu erstellt werden.
  • Bad-Case: Der gesamte Blog-Teil der aktuellen Seite wird aktualisiert. 15 Json-Variablen und ein großer Teil der Template-Verarbeitung müssen neu erstellt werden.
  • Besserer Fall: Nur der Kommentarteil der aktuellen Seite wird aktualisiert. 5 Json-Variablen und eine kleine Template-Verarbeitung müssen neu erstellt werden.
  • Best Practice: Der neue Kommentar wird oberhalb der Kommentarliste eingefügt. 1 Json-Variable und eine sehr kleine Template-Verarbeitung muss neu erstellt werden.

Nun denken Sie vielleicht, das ist kein Problem mit ein wenig Java-Scripting. Aber ich möchte eine Template-Sprache, die das automatisch macht. Eine Vorlagensprache, die ihren aktuellen Status kennt und nur den Header aktualisiert, wenn der Header geändert wird. Oder vom alten zum neuen Teaserbild.

Auf diese Weise konnten wir viele benutzerdefinierte Update-Skripts speichern. Ich müsste mich nicht um Animationen kümmern, wenn ich die Struktur der Seite ändere, und wir könnten den Netzwerkverkehr optimieren, da wir nur die Updates und nicht den bereits bekannten Teil der aktuellen Dokumentdaten liefern.

Fragen:

  1. Was halten Sie von einem solchen Vorlagensprachenansatz?
  2. Kennen Sie eine Vorlagensprache, die eine ähnliche Verarbeitung bietet?
  3. Ist es möglich, dies ohne große Leistungseinbußen zu erreichen?
nenTi 19.07.2010 12:02
quelle
0

Ich habe Trimpath Javascript-Vorlagen für die letzten paar großen Projekte verwendet und bin sehr zufrieden mit es.

Ein paar andere Teile meines Workflows, ohne die ich nicht leben könnte:

  • ein Build-Prozess für javascript und CSS. Es ist soooooo viel besser, meine js und css Dateien organisieren zu können wie ich will, sie in kleine Stücke zu zerlegen und sie automatisch zu einer großen Datei zusammenrollen zu lassen

  • LessCSS - eine Verbesserung gegenüber der normalen CSS-Syntax. Sie schreiben Ihre Stylesheets mit dem LessCSS-Syntax, der wie CSS ist, aber Sie können Dinge wie Variablen, Mathematik, Mixins, verschachtelte Klassen verwenden. Die LessCSS-Engine kompiliert sie dann in reguläres CSS.

morgancodes 19.07.2010 16:41
quelle