✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Ett objektorienterat sätt att arbeta med modeller och webbapplikationer

4

När vi pratar om konceptet Modeller i objektorienterad programmering syftar vi vanligtvis på en klass som är en representation av data som lagras i databasen.

Det vill säga när information lagras i rader och kolumner fyller vi i en klass, dess attribut och så vidare med den informationen så att vi kan skicka den runt i applikationen, manipulera den efter behov och sedan eventuellt serialisera data tillbaka till databasen.

Men i en webbapplikation är det rimligt att anta att modellen kan behöva vara möjlig till front-end för att användas. Det vill säga, föreställ dig att en front-end-begäran ringer servern, begär en modell (eller en samling modeller) och sedan renderar dem på front-end.

Även om det här inlägget inte är kodorienterat, tycker jag ändå att det är värt att tänka igenom processen att översätta en modell från servern och sedan rendera den på webbapplikationens front-end.

Arbeta med modeller och webbapplikationer

Föreställ dig för ett ögonblick att din ansökan har en anställd modell. Den här modellen kan innehålla en mängd olika attribut, men det är säkert att anta att alla anställda skulle ha:

  • ett förnamn,
  • ett efternamn,
  • ett anställds-ID,
  • och en e-postadress

Hur denna information lagras i databasen är inte helt irrelevant, men det är inte så viktigt för den här diskussionen.

Till exempel kanske det finns en enda post som innehåller all denna information lagrad i en JSON-sträng. Å andra sidan kanske det finns en anställdstabell där varje rad representerar en anställd, och sedan representerar varje kolumn ett attribut.

Detaljerna hur informationen översätts från databasen (eller, mer allmänt, datalagret) till klassen är inte lika viktigt.

Vanligtvis kommer vi dock att se något sånt här:

  1. Det finns en klass som begär informationen,
  2. Informationen skickas till en enkel fabrik ,
  3. The Simple Factory instansierar modellen ,
  4. Modellen skickas sedan till den tredje parts klass som begärde den.

Ur bildsynpunkt kan du se det så här:

Från denna punkt passerar modellen genom hela applikationen. Men det är här den första poängen med det här inlägget kommer in i bilden: Hur skickar vi en instans av modellen (eller en samling modeller) till applikationens front-end?

Webbapplikationens flöde

För att hålla det enkelt, låt oss anta att vi kommer att använda en enda modell och sedan, om jag återvänder till detta koncept från en kodsynpunkt, kan vi dyka in lite mer.

Det allmänna flödet för en webbapplikation kommer dock att vara ungefär så här:

  1. En användare utlöser en åtgärd som begär en instans av modellen,
  2. Front-end ringer till en slutpunkt på servern,
  3. Servern läser förfrågningarna och verifierar att den är giltig,
  4. Skickar sedan en representation av modellen till front-end.

Andra utvecklare kanske inte håller med (vilket alltid är välkommet och värt att diskutera, enligt min mening), men jag har funnit att serialisering av modellens instans till JSON gör det mycket lättare att arbeta med i front-end på grund av JavaScript-funktionalitet eftersom det relaterar till, ahem, JSON.

Ett objektorienterat sätt att arbeta med modeller och webbapplikationer

Med andra ord:

  1. vi tar modellen,
  2. serialisera den till JSON,
  3. skicka den över tråden,
  4. avserialisera det sedan på front-end till en JavaScript-representation av sig själv.

Detta tillåter oss att manipulera det på samma sätt som vi skulle göra på serversidan; vi har dock att göra med ett JavaScript-objekt. Dessutom tillåter det oss att även göra vissa ändringar och skicka tillbaka informationen till servern i ett annat tillstånd från vilket den skickades.

I slutändan tillåter detta oss att spara data tillbaka till databasen.

Ett perspektiv på hög nivå

Och det är livscykeln på hög nivå för att överföra information från en databas till en modell till front-end och tillbaka igen.

Ofta hjälper det dock att se detta i kod, så kanske i ett framtida inlägg kommer jag att ge en serie artiklar som kan gå igenom hur man gör detta.

Under tiden bör det dock inte vara svårt att översätta dina implementeringar till arbetsflödet Model-Serialization-Request-Send som beskrivs i det här inlägget.

Inspelningskälla: tommcfarlin.com

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer