avalanche

Software screenshot:
avalanche
Software detaljer:
Version: 0.3.0
Upload dato: 14 Apr 15
Licens: Gratis
Popularitet: 1

Rating: nan/5 (Total Votes: 0)

lavine er en Python web ramme bygget oven på webapp2. & Nbsp; Det bruger Jinja2 som en standardskabelon, og ikke indeholder nogen vedholdenhed lag.
Avalanche mål (eller hvorfor en anden web ramme?)
Avalanche design fokus på testability og genanvendelighed.
Selvfølgelig Avalanche ikke gør mirakler. Testbarhed og genanvendelighed i sidste ende vil afhænger af programmet kode. Men rammen har en stor rolle på oprettelse rette vej.
Målene er angivet nedenfor, forhåbentlig efter at have læst design og tutorial vil det være klart for dig, hvordan disse mål nås.
Testbarhed
Avalanche er designet på en måde, at det gør det muligt (nemmere for dig) at skrive gode unit-test for din kode. Det er ikke kun gør det nemt at skrive tests. En enhed-test bør:
- Give et klart fejlmeddelelse, når det mislykkes
- Mislykkes kun, når funktionen under test er brudt, ikke på hver kodeskift
- Være hurtig
Genbrugelighed
Overvejende hver ramme hævder, at genbrugelighed er et af deres design mål. Here "genbrugelighed": kildekode genanvendelighed.
Mange rammer giver nogle mekanismer for genanvendelige / tilkoblelig sub-applikationer, men det er ikke altid let at genbruge disse programmer kildekode, hvis du har brug for at konfigurere / ændre det. Tilkoblelig applikationer er også en meget vigtig funktion, men allerede nu Avalanche har ingen støtte til det.
Det bør ikke kun være muligt at skrive genanvendelige kode, koden skal kunne genbruges på den første gang du skriver det. Du bør ikke rådes til at skrive koden på én måde, og end senere nødt til at ændre den, så den kan genbruges. Dvs. den modsætter sig at sige "Brug visning (handling) funktioner". Og end ... ", hvis du vil have dine synspunkter kan genbruges konvertere dem til klasse-baserede synspunkter!".
Projekt Detaljer
- Website / docs
- Det er en open-source-projekt (MIT licens) skrevet i python.
- Download fra PyPi
- Projektledelse (bug tracker, feature anmodninger og kildekode) på bitbucket.
- Spørgsmål og feedback på Google-gruppe.
Avalanche Design
Advarsel
Avalanche er på tidlige udviklingsstadier (alfa). API kan ændre sig i fremtiden, og der er ingen garanti for, det vil holde kompatibilitet.
over MVC (model-view-controller)
MVC er en software arkitektonisk mønster skabt med det mål at isolere "domæne logik" fra brugergrænsefladen. Denne adskillelse af bekymring muliggør skabelsen af ​​bedre anvendelse kode. Dette mønster var en stor succes for mange stationære rammer og så fungerede som en henvisning til oprettelsen af ​​web-rammer. Problemet er, at denne arkitektur ikke kan konverteres direkte til den måde, web-applikationer arbejde.
Selv de såkaldte MVC rammer er ikke rigtig MVC. Så lad os bare holde MVC mål. Det er at skrive ren, genbruges og testbare kode.
webapplikationer
Stort set alle en web-applikation, er at modtage en HTTP-anmodning, behandler dem og generere en HTTP-svar.
& Nbsp; + ------------------ +
HTTP Request ------> | webapplikation + -----> HTTP-svar
& Nbsp; + ------------------ +
Afsendelse og modtagelse af HTTP varetages af en web-server. Lad os tage et nærmere kig ind i, hvad webapplikationen gør:
& Nbsp; + ------ + + ------- +
HTTP-anmodning ----> | router | -----> | handleren | ----> HTTP-svar
& Nbsp; + ------ + + ------- +
Routeren kontrollerer webadressen på anmodningen og sende den til en sagsbehandler, der vil skabe svaret. Avalanche bruger webapp2 router.
sagsbehandlere stilarter
Der er primært 3 stilarter af sagsbehandlere.
- En enkelt funktion
- En klasse metode
- En klasse
Avalanche (og webapp2) anvender den tredje stil, en klasse. Ved hjælp af en klasse som sagsbehandler passer bedre vores mål, fordi det giver en større fleksibilitet, lettere at ændre / udvide og genbruge dele af handleren.
sagsbehandler behandling
Anmodningen handleren behandling kan opdeles i 3 faser:
& Nbsp; + ----------------- + + ----------------- + + --------- - +
anmode ----> | param konverter | ---- param objekter ----> | kontekst builder | --- sammenhæng -----> | renderer | ----> svar
& Nbsp; + ----------------- + + ----------------- + + --------- - +
1. param omformer - få parametre fra HTTP-anmodning
& Nbsp; HTTP er en tekst-protokol, vil programmet typisk få nogle parametre fra anmodningen og konvertere strengværdier ind i nogle indfødte datatyper. Disse parametre er taget fra URI vej, URI forespørgsel, post-data, cookies mm
2. sammenhæng builder - behandling
& Nbsp; Kontekst er et begreb bruges til at repræsentere data, der vil blive brugt af en renderer.
& Nbsp; Denne behandling er anvendelsen logik. Det vil ofte adgang til en vedholdenhed lag (undertiden kaldet Model), men dette er helt op til ansøgningen kode og rammen har nogen rolle på det.
& Nbsp; En webside er ofte sammensat af flere elementer, så nogle gange giver det mening at opdele arbejdet i mere end en "kontekst builder".
3. renderer - generere output
& Nbsp; Den renderer konverterer resultatet af behandlingen til tekst til HTTP respons. Denne fase kan springes over, hvis svaret er en HTTP-omdirigering. Den renderer vil typisk bruge en skabelon system til at generere HTML-kode eller konvertere data til JSON.
På lavine bør du skrive koden for de 3 faser af handleren separat og lade rammen lim de forskellige dele sammen.
. Gå videre til tutorial til at se, hvordan det ser ud

Krav :

  • Python

Andre software developer Eduardo Naufel Schettino

pytest-incremental
pytest-incremental

12 May 15

hoe.js
hoe.js

13 Apr 15

Doit
Doit

1 Mar 15

Kommentarer til avalanche

Kommentarer ikke fundet
Tilføj kommentar
Tænd billeder!