avalanche

Software screenshot:
avalanche
Podrobnosti Software:
Verze: 0.3.0
Datum uploadu: 14 Apr 15
Licence: Volný
Popularita: 1

Rating: nan/5 (Total Votes: 0)

lavina je web rámec Python postaven na vrcholu webapp2. & Nbsp; Používá Jinja2 jako systém výchozí šablony a nemá zahrnuje veškeré persistence vrstvy.
Lavinové cíle (nebo proč jiný web rámec?)
Avalanche návrh zaměření na testovatelnosti a opětovnou.
Samozřejmě Avalanche nedělá zázraky. Testovatelnost a znovupoužitelnost bude nakonec závisí na aplikačním kódu. Ale rámec mají velkou roli na zřízení správnou cestu.
Tyto cíle jsou uvedeny níže, doufejme, že po přečtení návrhu a výuka bude vám jasné, jak jsou tyto cíle dosaženo.
Testovatelnost
Avalanche byl navržen tak, aby to umožňuje (pro vás jednodušší) a psát dobré unit testy pro váš kód. To není jen dělat to snadné psát testy. Jednotka-test by měl:
- Dát jasnou chybová zpráva při selže
- Selhání pouze tehdy, když je funkce testovaného rozbité, ne na každé změně kódu
- Být rychlý
Znovupoužitelnost
Většinou každý rámec, tvrdí, že možnost opětovného je jedním z jejich cílů návrhu. Tady "opětnou použitelností" source-kodování.
Mnoho rámce poskytují některé mechanismy k opakovanému použití / plugable dílčích aplikací však není vždy snadné znovu použít tyto zdrojový kód aplikace v případě, že potřebujete nastavit / upravit ji. Plugable aplikace je také velmi důležitá vlastnost, ale již nyní Avalanche nemá žádnou podporu pro to.
Nemělo by být možné pouze psát opakovaně použitelný kód, kód by měl být na jedno použití na poprvé to psát. Neměli byste být poučeni, že psát kód v jednom směru, a než později muset upravit, aby se to na jedno použití. Tj. je proti říká "Použít pohled (psovod), funkce". A než ... ", pokud chcete, aby vaše názory, aby se znovu použitelné převést na názory založenými na třídě!".
Detaily projektu
- Webové stránky / docs
- Jedná se o projekt, open-source (licence MIT), napsaný v Pythonu.
- Ke stažení z PyPi
- Projektové řízení (bug tracker, požadavky na nové funkce a zdrojový kód) na Bitbucket.
- Otázky a zpětná vazba na stránce věnované skupině.
Avalanche design
Varování
Avalanche se nachází na raných fázích vývoje (alfa). API může v budoucnu změnit, a není žádná záruka, že bude udržovat kompatibilitu.
za MVC (Model-View-Controller)
MVC je software architektonický vzor vytvořený s cílem izolovat "logiku domény" z uživatelského rozhraní. Toto rozdělení koncernu umožňuje vytvářet lepší kód aplikace. Tento model byl velmi úspěšný pro mnoho stolních rámců, a tak sloužil jako odkaz na tvorbu webových rámců. Problém je v tom, že tato architektura nemohou být mapována přímo na cestě www aplikací práci.
Dokonce i tzv MVC rámce nejsou opravdu MVC. Tak ať to jen držet MVC branku. To je psát čistý, znovu použitelné a testovatelný kód.
webové aplikace
V podstatě všechny webové aplikace udělat, je přijmout požadavek HTTP, proces je a generovat odpověď HTTP.
& Nbsp; + ------------------ +
HTTP Request ------> | web aplikace + -----> HTTP Response
& Nbsp; + ------------------ +
Odesílání a přijímání HTTP je zpracována na webové serveru. Pojďme se blíže podívat na to, co dělá webové aplikace:
& Nbsp; + ------ + + ------- +
Požadavek HTTP ----> | router | -----> | handler | ----> odpověď HTTP
& Nbsp; + ------ + + ------- +
Router bude kontrolovat URL žádosti a odeslat ji na požádání psovod, který vytvoří odpověď. Avalanche používá webapp2 router.
Poptávka manipulátory styly
K dispozici jsou převážně 3 styly požadavku manipulátory.
- Jediná funkce
- Metoda třída
- Třída
Avalanche (a webapp2) používá třetí styl, třídu. Použití třídy as Implementace vyhovuje lépe, naše cíle, protože poskytuje větší flexibilitu, jednodušší změnit / rozšířit a opětovné použití části psovoda.
Požadavek na zpracování handler
Zpracování Implementace může být rozdělena do 3 stupních:
& Nbsp; + ----------------- + + ----------------- + + --------- - +
požádat ----> | param Konvertor | ---- param objekty ----> | kontext stavitel | --- souvislosti -----> | renderer | ----> odpověď
& Nbsp; + ----------------- + + ----------------- + + --------- - +
1. param převodník - získat parametry od HTTP požadavku
& Nbsp; HTTP je textový protokol, bude aplikace obvykle získat nějaké parametry od žádosti a převést řetězec hodnoty na některých nativních datových typů. Tyto parametry jsou převzaty z cesty URI, URI dotazu, post-data, sušenky, atd.
2. kontext stavitel - zpracování
& Nbsp; Kontext je termín používaný k reprezentaci dat, která bude použita prostřednictvím renderer.
& Nbsp; Toto zpracování je logika aplikace. To často přístup persistence vrstvy (někdy nazývaný Model), ale to je zcela na kódu aplikace a rámec nemá žádnou roli na to.
& Nbsp; webová stránka je často skládá z několika prvků, takže někdy to dává smysl rozdělit práci do více než jednoho "místní stavitel".
3. renderer - generovat výstup
& Nbsp; Vykreslování převede výsledek zpracování do textu pro odpovědi HTTP. Tato etapa by mohla být přeskočit, pokud je odpověď HTTP přesměrování. Renderer obvykle používají systém šablony pro generování HTML kódu nebo převést data do formátu JSON.
Na lavina byste měli psát kód pro 3 fázích psovoda samostatně a nechat rámec přilepte jednotlivé části dohromady.
, Přejděte k tutoriálu vidět, jak to vypadá, že

Požadavky na :

  • Python

Ostatní software developer Eduardo Naufel Schettino

Doit
Doit

1 Mar 15

pytest-incremental
pytest-incremental

12 May 15

hoe.js
hoe.js

13 Apr 15

Komentáře k avalanche

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!