Avalanche egy Python web keretrendszer épül webapp2. & Nbsp; Használja Jinja2 mint alapértelmezett template rendszer, és nem tartalmaz semmilyen perzisztencia réteg.
Avalanche gólt (vagy miért más web keretet?)
Avalanche tervezési hangsúly a tesztelhetőségi és újrahasznosítás.
Természetesen Avalanche nem csinál csodát. Tesztelhetőségi és újrahasznosítás végül az alkalmazástól függ kódot. De a keret nagy szerepe beállításával a helyes utat.
A célok az alábbiakban mutatjuk be, remélhetőleg elolvasása után a tervezés és bemutató lesz egyértelmű, hogy hogyan ezeket a célokat elérni.
Tesztelhetőségi
Avalanche-ben alakították ki, hogy lehetővé teszi (könnyebb), hogy írni jó unit-tesztek a kódot. Hogy nem csak így könnyen levelet tesztek. A unit-tesztet:
- Adott egyértelmű hibaüzenetet, ha nem tud
- Nem csak a funkció vizsgálat alatt van törve, nem minden kód csere
- Gyors lesz
Újrafelhasználhatóság
Többnyire minden keretet azt állítja, hogy újrahasznosítás egyik a tervezési céloknak. Itt "újrahasznosítás": a forrás-kód-újrahasznosítás.
Sok keretek némi mechanizmusok újrafelhasználható / dugaszolható alalkalmazásához de ez nem mindig könnyű, hogy újra használni ezeket az alkalmazásokat forráskód esetén meg kell beállítani / módosítani azt. Dugaszolható alkalmazások is egy nagyon fontos jellemzője de már most Avalanche nem támogatja ezt.
Nem szabad csak úgy lehetséges, hogy írjon újrafelhasználható kód, a kód legyen újra felhasználható az első alkalom, hogy írja meg. Nem kellene hívni írni a kódot egy bizonyos módon, és mint később kell módosítani, hogy annak érdekében, hogy újrahasznosítható. Azaz ellenzi az azt mondja: "A Nézet (kezelő) funkciót". És, mint ... ", ha azt szeretné, hogy véleményüket újrafelhasználható átalakítani, hogy az osztály-alapú nézetek!".
projekt részletei
- Honlap / docs
- Ez egy nyílt forráskódú projekt (MIT licenc) Pythonban.
- Töltsd le PyPi
- Projektmenedzsment (bug tracker, szolgáltatás kérésére és a forráskód) a bitbucket.
- Kérdések és visszajelzés a google-csoport.
Avalanche Tervezés
Figyelmeztetés
Avalanche a fejlesztés korai szakaszában (alfa). Az API változhat a jövőben, és nincs garancia arra, hogy megtartja a kompatibilitást.
túl MVC (Model-View-Controller)
MVC egy szoftver az építészeti megoldás létre azzal a céllal, hogy izolálni "domain logika" a felhasználói felületről. Ez a szétválasztás aggodalomra létrehozását teszi lehetővé jobban alkalmazás kódját. Ez a minta nagyon sikeres volt, sok asztali keretek és így viszonyítási alapként szolgál a létrehozása webes keretrendszerek. A probléma az, hogy ez az architektúra nem lehet közvetlenül hozzárendelhető a módját web-alkalmazások munkát.
Még az úgynevezett MVC kereteket nem igazán MVC. Úgyhogy csak ne az MVC kapujába. Azaz, hogy írjon tiszta, újrafelhasználható és tesztelhető kód.
webes alkalmazások
Lényegében az összes webes alkalmazás tennie, hogy kap egy HTTP kérést, feldolgozza és létrehoz egy HTTP választ.
& Nbsp; + ------------------ +
HTTP Request ------> | webalkalmazás + -----> HTTP Response
& Nbsp; + ------------------ +
Küldése és fogadása HTTP kezeli a web-szerveren. Vessünk egy közelebbi pillantást, amit a webes alkalmazás nem:
& Nbsp; + ------ + + ------- +
HTTP request ----> | router | -----> | handler | ----> HTTP válasz
& Nbsp; + ------ + + ------- +
A router ellenőrzi az URL-t a kérelem és a küldő azt a kérést kezelőt, amely megteremti a választ. Avalanche használja webapp2 router.
kérésre rakodók stílusok
Vannak főleg 3 stílusok kérésére rakodók.
- Egy funkció
- Osztálymetódust
- Egy osztály
Avalanche (és webapp2) használ a harmadik stílust, egy osztály. Egy osztály kérésére handler sokkal jobban megfelel a céljainkat, mert ez biztosítja a nagyobb rugalmasságot, könnyebb módosítani / kiterjesztése és újrafelhasználás részei a felvezető.
kérésre handler feldolgozása
A kérelmet kezelő feldolgozó osztható 3 szakaszból áll:
& Nbsp; + ----------------- + + ----------------- + + --------- - +
kérjen ----> | param átalakító | ---- param tárgyakat ----> | keretében builder | --- összefüggésben -----> | renderelő | ----> válasz
& Nbsp; + ----------------- + + ----------------- + + --------- - +
1. param átalakító - kap paraméterek HTTP request
& Nbsp; http egy szöveges protokoll, az alkalmazás általában kap néhány paraméter a kérést, és konvertálni szöveges adatok a néhány natív adattípusok. Ezeket a paramétereket vett az URI utat, URI query, post-adatok, cookie-k, stb
2. összefüggésben builder - feldolgozás
& Nbsp; Kontextus olyan kifejezés, hogy képviselje az adatokat, amelyeket használni fognak egy renderelő.
& Nbsp; Ez a feldolgozás az alkalmazás logikáját. Gyakran elérheti a perzisztencia réteg (néha Model), de ez teljes egészében az alkalmazás kódját, és a keret nincs szerepe rajta.
& Nbsp; A weboldal gyakran több elemből így néha érdemes osztja meg a munkát a több mint egy "összefüggésben építő".
3. renderelő - kimenetet generál
& Nbsp; A megjelenítő fogja átalakítani az feldolgozásának eredményeként a szöveg a válasz. Ebben a szakaszban lehet kimarad, ha a válasz egy HTTP átirányítás. A renderelő tipikusan azt a sablont rendszer generál HTML kódot, vagy átalakítani az adatokat JSON.
A lavina meg kell írni kódot az 3 szakaszban, a felvezető külön-külön és hagyja, hogy a keret ragaszd össze a különböző részek.
Lépni a bemutató, hogy hogyan is néz ki.
követelmények :
- Python
Hozzászólás nem található