Kmom02: MVC

By . Latest revision .

Vi tittar på designmönstret Model, View, Controller (MVC) och använder det för att strukturera vår kod i ramverket.

Vi bekantar oss även med begreppet SOLID som är en akronym för designmönster som är aktuella i sammhanget kring ramverk och objektorienterad utveckling.

Med dessa begrepp i ryggen så skriver vi kod i ramverket som vi strukturerar enligt MVC.

Under arbetets gång funderar vi på hur man bäst organiserar sin kod i moduler för att göra dem återanvändbara, testbara och lätta att underhålla och vidareutveckla.

Som exempelkod används en REM-server som är byggd enligt MVC med fokus på delarna Model och Kontroller.

Manualen för REM servern som också visar att REM servern är installerad och fungerar.

Manualen för REM servern som också visar att REM servern är installerad och fungerar.

En REST fråga till REM servern.

En REST fråga till REM servern.

(Detta är instruktionen för kursmomentet och omfattar det som skall göras inom ramen för kursmomentet. Momentet omfattar cirka 20 studietimmar inklusive läsning, arbete med övningar och uppgifter, felsökning, problemlösning, redovisning och eftertanke. Läs igenom hela kursmomentet innan du börjar jobba. Om möjligt – planera och prioritera var du vill lägga tiden.)

#Läsanvisningar

(ca: 4-8 studietimmar)

#Artiklar

Kika igenom följande artiklar.

  1. Läs artikeln “PHP-baserade och MVC-inspirerade ramverk, vad betyder det?”. Den ger dig en insikt i terminologi och kategorisering av PHP-baserade ramverk, tillsammans med en kort introduktion av Model, View, Controller (MVC).

  2. Bekanta dig med begreppet MVC genom att översiktligt titta på Wikipedia. Titta på både den svenska och den engelska varianten.

  3. Bekanta dig med begreppet SOLID genom att översiktligt titta på Wikipedia. Titta på både den svenska och den engelska varianten.

#Videor

Kika på följande videos.

  1. Titta på seminariet “PHP UK Conference 2017 - Gareth Ellis - Introduction to SOLID” som ger dig en introduktion till de designmönster som ligger bakom bokstäverna i SOLID och är en grund i ramverkstänkande. Om du tycker videon är “svår/tung” så kan du själv leta reda på motsvarande innehåll som ger dig en intro till begreppet SOLID. YouTube innehåller många små korta videor på ämnet.

#Övningar & Uppgifter

(ca: 6-10 studietimmar)

#Övningar

Gör följande övningar, de behövs normalt för att klara uppgifterna.

  1. Jobba igenom artikeln “En REM Server som Kontroller och Modell” som ger dig ett exempel hur du skriver kod i form av en kontroller och en modell. REM servern lägger du i kmom02/remserver. När du är klar så placerar du den färdiga koden i me/anax och integrerar i din me-sida.

#Uppgifter

Följande uppgifter skall utföras och resultatet skall redovisas via me-sidan.

  1. Refactoring av din me-sida. Integrera REM servern i din me-sida i me/anax. Gör en “framsida” till din REM server och berätta vilka länkar du har till REM servern. Denna “framsida” skall vara en del av din me-sida. Har du kod som borde vara strukturerad enligt kontroller/modell? Överväg isåfall att skriva om den.

  2. Gör uppgiften “Bygg en prototyp till ett kommentarssystem”. Du kommer igång och skriver ett enkelt kommentarssystem, det blir en prototyp för att lära sig domänen och skapa en kodbas. Spara koden under me/anax.

  3. Pusha och tagga ditt Anax, allt eftersom och sätt en avslutande tagg (2.0.*) när du är klar med alla uppgifter i kursmomentet.

#Resultat & Redovisning

(ca: 2-4 studietimmar)

Läs instruktionen om hur du skall redovisa.

Se till att följande frågor besvaras i texten:

  • Vilka tidigare erfarenheter har du av MVC? Använde du någon speciell källa för att läsa på om MVC? Kan du med egna ord förklara någon fördel med kontroller/modell-begreppet, så som du ser på det?
  • Kom du fram till vad begreppet SOLID innebar och vilka källor använde du? Kan du förklara SOLID på ett par rader med dina egna ord?
  • Gick arbetet med REM servern bra och du lyckades integrera den i din me-sida?
  • Berätta om arbetet med din kommentarsmodul, hur långt har du kommit och hur tänker du?

Har du frågor eller funderingar så ställer du dem i forumet.

#Revision history

  • 2017-09-04: (B, mos) Minskade omfattningen genom att ta bort skrivuppgiften om MVC.
  • 2017-08-08: (A, mos) Första utgåvan.

Document source.