avalanche

Screenshot der Software:
avalanche
Softwarebeschreibung:
Version: 0.3.0
Upload-Datum: 14 Apr 15
Lizenz: Frei
Popularität: 1

Rating: nan/5 (Total Votes: 0)

Lawine ist ein Python-Web-Framework über webapp2 & nbsp gebaut;. Es verwendet Jinja2 als Standard-Template-System und nicht gehören alle Persistenz-Schicht.
Avalanche Ziele (oder warum ein anderer Web-Framework?)
Avalanche Design Fokus auf Testbarkeit und Wiederverwendbarkeit.
Natürlich Avalanche keine Wunder vollbringen. Testbarkeit und Wiederverwendbarkeit wird letztlich abhängig von der Anwendungscode. Aber die Rahmenbedingungen haben eine große Rolle bei der Einrichtung des richtigen Weg.
Die Ziele werden im Folgenden hoffentlich nach dem Lesen der Design präsentiert, und Übung wird es Ihnen klar sein, wie diese Ziele erreicht werden.
Testbarkeit
Avalanche wurde in einer Weise, dass sie es ermöglicht, (einfacher für Sie), um gute Komponententests für Ihren Code schreiben, konzipiert. Das ist nicht nur macht es einfach, Tests zu schreiben. Ein Unit-Test sollten:
- Eine klare Fehlermeldung, wenn es scheitert
- Nicht nur, wenn die Funktion test gebrochen ist, nicht auf jeder Codeänderung
- Schnell sein
Wiederverwendbarkeit
Meist jeden Rahmen behauptet, dass die Wiederverwendbarkeit ist eine ihrer Design-Ziele. Hier "Wiederverwendbarkeit" ist die Sourcecode-Wiederverwendbarkeit.
Viele Frameworks bieten einige Mechanismen für wiederverwendbare / steckbaren Sub-Anwendungen ist es jedoch nicht immer leicht, wieder verwenden diese Anwendungen Quellcode für den Fall, das Sie konfigurieren / ändern sie benötigen. Steckbare Anwendungen ist auch eine sehr wichtige Fähigkeit, aber ab jetzt Avalanche hat keine Unterstützung dafür.
Es sollte nicht nur möglich sein, wiederverwendbaren Code zu schreiben, der Code wiederverwendbaren auf dem ersten Mal, wenn Sie schreiben. Sie sollten nicht angehalten werden, den Code in einer Weise zu schreiben, und als später haben, ihn zu ändern sie wiederverwendbar zu machen. Das heißt es zu sagen: "Mit Blick (Handler) Funktionen" entgegengesetzt ist. Und als ... ", wenn Sie möchten, dass Ihre Ansichten zu wiederverwendbar sein wandeln sie in klassenbasierten Aussicht!".
Projektdetails
- Website / docs
- Dies ist ein Open Source-Projekt (MIT Lizenz) in Python geschrieben.
- Download von PyPI
- Projektmanagement (Bug-Tracker, Feature Requests und Quellcode) auf bitbucket.
- Fragen und Feedback zu Google-Gruppe.
Avalanche Entwurf
Warnung
Avalanche ist am frühen Phasen der Entwicklung (alpha). Die API kann sich künftig ändern und es gibt keine Garantie, es wird die Kompatibilität zu halten.
über MVC (Model-View-Controller)
MVC ist ein Softwarearchitekturmuster, mit dem Ziel von der Benutzerschnittstelle zu isolieren "Domänenlogik" erstellt. Diese Trennung von Anliegen ermöglicht die Erstellung von besseren Anwendungscode. Dieses Muster war sehr erfolgreich für viele Desktop-Frameworks und so diente als Hinweis auf die Erstellung von Web-Frameworks. Das Problem besteht darin, dass diese Architektur nicht direkt auf dem Weg Webanwendungen Arbeiten zugeordnet werden.
Selbst die so genannten MVC-Frameworks sind nicht wirklich MVC. Also lasst uns einfach die MVC Mannschaft. Das ist zu sauber, wiederverwendbar und überprüfbare Code zu schreiben.
Web-Anwendungen
Im wesentlichen alle eine Web-Anwendung zu tun ist, um eine HTTP-Anforderung zu empfangen, zu verarbeiten und erzeugen eine HTTP-Antwort.
& Nbsp; + ------------------ +
HTTP Request ------> | Web-Anwendung + -----> HTTP-Response-
& Nbsp; + ------------------ +
Senden und Empfangen von HTTP durch ein Web-Server behandelt. Werfen wir einen genaueren Blick in das, was die Web-Anwendung funktioniert:
& Nbsp; + ------ + + ------- +
HTTP-Anforderung ----> | Router | -----> | Handler | ----> HTTP-Antwort
& Nbsp; + ------ + + ------- +
Der Router wird die URL der Anfrage prüfen und versenden sie an einen Request-Handler, der die Antwort zu erstellen wird. Avalanche verwendet die webapp2 Router.
Request-Handler Stile
Es gibt hauptsächlich 3 Arten von Request-Handler.
- Eine einzige Funktion
- Eine Klassenmethode
- Eine klasse
Avalanche (und webapp2) verwendet die dritte Art, eine Klasse. Mit einem Klasse-Request-Handler passt besser unsere Ziele, da sie eine größere Flexibilität, einfacher zu ändern / erweitern und Wiederverwendung Teile der Handler.
Request-Handler Verarbeitung
Die Request-Handler Verarbeitung kann in 3 Stufen unterteilt werden:
& Nbsp; + ----------------- + ----------------- + + + --------- - +
fordern ----> | param Konverter | ---- param Objekte ----> | Rahmen Bauer | --- Kontext -----> | Renderer | ----> Antwort
& Nbsp; + ----------------- + ----------------- + + + --------- - +
1. param-Konverter - kriegen Parameter von HTTP-Request
& Nbsp; HTTP ist ein Text-Protokoll, wird die Anwendung der Regel bekommen einige Parameter aus der Anfrage und String-Werte konvertieren in einige nativen Datentypen. Diese Parameter werden von dem URI-Pfad, URI-Abfrage, post-Daten, Cookies, usw. getroffen
2. Kontext Bauer - Verarbeitung
& Nbsp; Kontext ist ein Begriff verwendet, um die Daten, die von einem Renderer verwendet wird dar.
& Nbsp; Diese Verarbeitung ist die Anwendungslogik. Es wird oft Zugriff auf eine Persistenz-Schicht (manchmal auch als Modell), aber das ist ganz bei der Anwendungscode und der Rahmen keine Rolle, dass auf.
& Nbsp; Eine Webseite wird oft aus mehreren Elementen zusammengesetzt, manchmal ist es sinnvoll, die Arbeit in mehr als ein "Rahmen Bauer" zu teilen.
3. Renderer - erzeugen Ausgangs
& Nbsp; Der Renderer wird das Ergebnis der Verarbeitung zu Text für die HTTP-Antwort zu konvertieren. Diese Phase kann übersprungen werden, wenn die Antwort ist eine HTTP-Umleitung. Der Renderer wird in der Regel mit einem Template-System, um HTML-Code zu generieren oder die Daten in JSON zu konvertieren.
Auf Lawine sollten Sie Code für die 3 Phasen des Handler separat zu schreiben und lassen Sie den Rahmen die verschiedenen Teile zusammenkleben.
. Fahren Sie mit dem Tutorial zu sehen, wie es aussieht,

Anforderungen :

  • Python

Andere Software von Entwickler Eduardo Naufel Schettino

Doit
Doit

1 Mar 15

pytest-incremental
pytest-incremental

12 May 15

hoe.js
hoe.js

13 Apr 15

Kommentare zu avalanche

Kommentare nicht gefunden
Kommentar hinzufügen
Schalten Sie auf die Bilder!