Kursen ramverk1 (v2)

By . Latest revision .

Kursen Webbaserade ramverk 1, a.k.a. ramverk1, lär ut programmering och objektorienterade kodstrukturer med designmönster och modultänkande kring återanvändbara moduler i webbaserade ramverk samt tekniker för automatiserad testning, byggsystem och flöde för kontinuerlig integration av programvaran.

#Förkunskaper

Det formella förkunskapskravet är:

För tillträde till kursen krävs avklarade kurser eller moment från kurser i programmering och webbteknologier omfattande totalt 22,5 hp. Därutöver krävs genomgången kurs Objektorienterade webbteknologier, 7,5 hp.

#Innehåll

Kursen omfattar följande områden:

  • Webbaserad programmering i ramverk med designmönster implementerade i programmeringsspråket PHP.
  • Objektorienterade konstruktioner.
  • Utveckling av webbapplikation i ramverk.
  • Återanvändbara moduler, paketering och distribution.
  • Designmönster för ramverk.
  • Testdriven utveckling och tekniker för enhetstestning.
  • Automatiserad testning och byggning.
  • Relaterade verktyg och tekniker.

#Mål

Följande är kursens mål, indelat i undergrupper.

#Kunskap och förståelse

Efter genomförd kurs skall studenten:

  • ingående redogöra för webbutveckling baserat på de tekniker som omfattas genom att skriftligen beskriva och sammanfatta erfarenheter och observationer från övningar och projekt.
  • kunna visa goda kunskaper i att använda valda tekniker genom att tillämpa dessa tekniker i praktiska övningar och projekt.

#Färdighet och förmåga

Efter genomförd kurs skall studenten:

  • självständigt utifrån en specifikation kunna utveckla, dokumentera och presentera ett projekt baserat på ramverksbaserad kodning och återanvändning av moduler.
  • ha god praktisk förmåga att hantera de verktyg och utvecklingsmiljöer som används vid utveckling och felsökning vid ramverksprogrammering.

#Värderingsförmåga och förhållningssätt

Efter genomförd kurs skall studenten:

  • via redovisningstexter kunna visa god förmåga att reflektera och argumentera över kodstruktur i ramverk med sammanhang i designmönster och återanvändbara moduler.

#Kursmoment

Kursen är uppdelad i kursmoment där varje kursmoment uppskattas till 20h studerande i form av programmering, undersökning, läsande, övningar, uppgifter, redovisning och eftertanke. Alla kursmoment skall redovisas och du samlar alla redovisningar i din me-sida.

#Kmom01: Ramverk

Vi tar en mjukstart för att komma in i ramverkstänkande och läser på om bra-att-ha kunskaper inom PHP och ramverk. Det handlar om nödvändiga verktyg och att nyttja den infrastruktur som finns kring PHP och att börja anamma ett modultänkande kring PHP och ramverk.

Instruktion till kursmoment 01.

#Kmom02: MVC

Vi tittar på designmönstret Model, View, Controller (MVC) och använder det för att strukturera vår kod i ramverket. Vi har tidigare sett både vyer (V) och kontroller (C) så nu är det dags att väva in M:et som står för model, modell-klasser och/eller modell-lagret.

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

Instruktion till kursmoment 02.

#Kmom03: DI

Vi skall titta på tekniker som kan sammafattas med Dependency Injection (DI). Dessa tekniker används för att skapa en grundläggande struktur i ramverket avseende hur man lägger till “tjänster” i ramverket. Det handlar om $di.

Vi skall titta på begreppet Dependency Injection och några begrepp som är närliggande, begrepp såsom service locator, service container och lazy loading. Det handlar om designmönster och vanliga sätt att strukturera sin kod enligt det som kan betraktas som god programmeringssed.

Instruktion till kursmoment 03.

#Kmom04: Modul

Du skall skapa en fristående modul av ditt kommentarssystem och placera det i ett eget repo på GitHub. Du skall alltså lyfta bort koden från din me-sida och placera allt som modulen behöver i ett eget repo.

Du skall sedan publicera repot som en PHP modul på Packagist. När det är klart kan du åter installera modulen i din me-sida med hjälp av kommandot composer.

Du börjar införa enhetstestning på din modul.

Instruktion till kursmoment 04.

#Kmom05: CI

Tanken är att ge en bild av hur automatiserad testning och continuous integration (CI) kan fungera med en PHP modul som ligger publicerad på GitHub och Packagist.

Vi fortsätter jobba med modulen vi publicerade på GitHub och Packagist i föregående kursmoment. Vi låter externa verktyg checka ut vår kod från GitHub och köra testsuiten via make install test. De externa verktygen kan samtidigt analysera koden ur olika kvalitetsaspekter.

Vi bekantar oss med ett antal olika externa verktyg och försöker förstå vad de kan tillföra till en utvecklares vardag.

Instruktion till kursmoment 05.

#Kmom06: Databasdrivna modeller

Vi skall titta på klasser i modelllagret och utöka vår ramverksstruktur med formulärhantering via klasser och metoder samt databasdrivna modellklasser där vi använder oss av designmänstret Active Record.

Vi skall använda en extern modul för htmlformulär och vi skall använda en extern modul för databashanteringen.

Instruktion till kursmoment 06.

#Kmom07/10: Projekt och examination

Avslutningsvis gör du ett projekt enligt en specifikation. Projektet är det sista som du gör och tillsammans med alla redovisningar som finns på din me-sida så används detta som underlag för att examinera dig från kursen.

Instruktion till kursmoment 10.

#Kurslitteratur

#Kurslitteratur

Kurslitteraturen består av egenskrivna och länkade online-resurser såsom artiklar och guider.

Det finns läsanvisningar i samband med varje kursmoment.

#Referenslitteratur

Referensdokumentationen är främst olika online-resurser i form av manualer.

#Övrig litteratur

Det finns närliggande litteratur som är intressant för den som vill fördjupa sig i ämnet eller den som vill skaffa sig förkunskaper innan kursen.

  • PHP Objects, Patterns, Practice – Matt Zandstra
    En bok för den som kan sin PHP-programmering och vill mer med designpatterns, ramverk och mer avancerade tekniker som är nödvändiga för den professionella webbprogrammeraren.

  • Pro PHP: Patterns, Frameworks, Testing and More – Kevin McArthur
    En bok för den som kan sin PHP-programmering och vill lära sig mer avancerade tekniker vilka är vardagsmat för den professionella webbprogrammeraren.

  • Code Complete – Steve McConnell
    En bok för den som vill förädla sitt kunnande i konsten att programmera, skriva bra kod och göra rätt saker i programutvecklingsprojekt.

#Planering och studieplaner

Eftersom kursen ges kombinerat på campus och distans så är kursens planering fördelad på ett antal olika dokument. Bekanta dig med dem så att du har koll på hur kursens upplägg fungerar och vilket som är en normaltakt för kursen.

Kursen har en rekommenderad studieplan som visar en översikt, vecka för vecka, vilket kursmoment som är aktuellt att jobba med. Där finns även rättningsfönster som visar när saker rättas. Följer du denna planeringen så är du i fas med kursens normaltakt.

På Canvas finns datum för inlämningsuppgifter. Ett rättningsfönster pågår normalt sett 15 arbetsdagar efter inlämningsdatum på uppgiften. Inlämningsdatumen på Canvas är ett par dagar senare än vad som visas i den rekommenderade studieplanen, det är för att ge dig lite slack/utrymme för att själv planera dina studier.

Kursen har en lektionsplan som visar när det är lärarledda tillfällen för undervisning/handledning på campus/distans.

Kursen har bokade tillfällen i BTHs schemabokningsprogram, “schemat”, som säger när en fysisk sal är bokad på campus. Det finns en länk till det aktuella schemar, via lektionsplanen.

#Läromaterial och resurser

Via läromaterial kan du se en översikt av hur kurstillfället har valt att strukturera läromaterialet och vilka resurser och verktyg som används i undervisningen.

Här finner du även länkar till aktuella video streams och spellistor samt chatter och forum för handledning.

#Lärarteam och intressenter

Du kan hitta detaljer om ett kurstillfälle och se lärarteamet som utför kurstillfället, deras roller och kontaktuppgifter tillsammans med de som “äger” kursen och kurstillfället och vilka studentgrupper som läser kursen samt övriga intressenter till kurstillfället.

#Betygsättning

Det finns ett särskilt dokument som beskriver hur bedömning och betygsättning sker.

#Ladok

Enligt kursplanen finns ett antal ladokmoment och de är kopplade till kursens kursmoment enligt följande.

Kursens moment Ladok moment enligt kursplan Betyg
Kmom01 + kmom02 Inlämningsuppgift 1 á 2.5hp G-U
Kmom03 + kmom04 Inlämningsuppgift 2 á 2.5hp G-U
Kmom05 - kmom10 Inlämningsuppgift 3 á 2.5hp A-F

Den sista inlämningen bestämmer kursens slutbetyg vilket utfärdas när samtliga moment godkänts.

Läs mer om rapportering av resultat.

#Kursutvärdering och kursutveckling

Det finns ett särskilt dokument som beskriver hur arbetet med kursutvärderingar och kursutveckling sker. Det är oerhört viktigt att du säger till vad du tycker om kurs och kursmaterial, du kan alltid hojta till i både forum, chatt eller mail.

Läs om hur vi jobbar med kursutvärdering och kursutveckling.

#Kursplan

Kursplanen är kursens formella dokument som fastställts av högskolan. När kursen utvärderas görs det mot kursplanen. I kursplanen kan du läsa om kursens klassificering, syfte, innehåll, mål, generella förmågor, lärande och undervisning, bedömning och examination, litteratur, mm.

Från och med hösten 2019 är kursens namn “Webbaserade ramverk och designmönster” med kurskod DV1610 (se kursplanen).

Tidigare var kursens namn “Webbaserade ramverk 1” med kurskod PA1441 (se kursplan).

Kursen är en fristående vidarutveckling av kursen DV1486 “Databasdrivna webbapplikationer med PHP och MVC-ramverk”, aka phpmvc (se kursplan).

#Versioner av kursen

Om du påbörjat den äldre version av kursen så skall du också slutföra denna versionen av kursen (eller göra om den nya kursen från start). Alternativt rådgör du med den som är kursansvarig.

För tillfällen från höstterminen 2018 så finns kursmaterialet till ramverk1 (v2) här.

För tillfället under höstterminen 2017, så finns kursmaterialet till den kursen ramverk1 (v1).

Tidigare utgåvor av närbesläktade kurser, innan hösten 2017, finns under kursen phpmvc.

#Revision history

  • 2019-02-04: (E, mos) Uppdaterad med information från kursplan dv1610.
  • 2018-12-10: (D, mos) Uppdaterad till ramverk1 v2.
  • 2017-10-02: (C, mos) Info om samtliga kmom.
  • 2017-08-03: (B, mos) JavaScript flyttas till ramverk2.
  • 2017-06-07: (A, mos) Första revisionen inför kursstart HT2017, bygger på phpmvc-kursen.

Document source.