← Område 3 Inlämning 3 · Komponentbibliotek Vanliga misstag

Webbserverprogrammering 1 · område 3

Inlämning 3 – Komponentbibliotek

Bygg om din applikation så att sidorna består av komponenter i stället för av markup, och koppla ihop en listsida med en detaljsida genom adressen. Data ligger fortfarande i en hårdkodad lista – det är komponentstrukturen som bedöms.

1. Uppdraget

Du börjar inte om. Projektet från område 2 är utgångsläget och växer – så kommer det att vara resten av kursen.

Du får med dig fem saker:

Facit till övningarna delas ut efter övningspasset, inte före.

Din domän, inte guidens

Guiden bygger Filmarkivet med komplett kod. Din applikation ska ha samma struktur och annat innehåll. Eftersom dina entiteter heter något annat och har andra fält går det inte att kopiera – bara att förstå och översätta. Översättningen är examinationen.

Fyll i högerkolumnen i guidens översättningstabell innan du börjar koda.

2. Steg 0 – välj din domän

Valet ska vara gjort på lektion 16 och godkänt av mig innan du börjar bygga. Kriterierna, åtta färdiga förslag och det som brukar fälla ett val står på egen sida.

Det här är sista gången bytet är gratis

Här finns bara en hårdkodad lista att skriva om. I område 5 finns en databas, migrationer och formulär som hänger på entiteten. Domänen ska bära dig till och med område 8 – lägg femton minuter på valet nu.

Domänen får inte vara filmer.

Kryssen nedan sparas i din webbläsare, så du kan bocka av allteftersom.

3. Ska-krav — nivå E

Skillnaden mot C är inte fler komponenter. Den är att komponenterna är avgränsade: var och en gör en sak, och det går att säga vilken.

4. Bör-krav — nivå C, utöver E

5. Utmaning — nivå A, utöver C

6. Så bedöms den

Uppgiften prövar två av kursens betygskriterier särskilt.

KriteriumVad det betyder här
Att skilja presentationslagret från övrig logik På E ska det vara skilt "i någon utsträckning", på C "tydligt". Det är precis vad komponenterna handlar om: en komponent som visar ska inte samtidigt bestämma vad den visar. En lista som själv går och hämtar sin data är fel byggd – den ska få listan.
Att koda enligt vedertagen praxis för vald teknik Namngivning, mappstruktur, en komponent per fil, parametrar som är public. Kodningsstandard är eget centralt innehåll i kursen, inte en artighet.

Jag läser koden och kör projektet. Tre saker väger tyngst:

7. Inlämning

  1. Kontrollera att projektet startar och att alla sidor svarar.
  2. Kontrollera de tre adresserna: en post som finns, ett id som inte finns, ett id som inte är ett tal. Titta i nätverksfliken, inte på texten.
  3. Skriv domänvalet i projektets README.md om det inte redan står där.
  4. Gå igenom kravlistan för den nivå du siktar på.
  5. git add ., git commit -m "…", git push
  6. Öppna ditt repo på github.com och se att filerna finns där.
  7. Klistra in repots adress i inlämningsrutan i itslearning.

Deadline är måndag 9 november kl 23:59. Provet är tisdag 10 november och prövar samma innehåll – att göra klart uppgiften är den bästa provförberedelsen som finns.

8. Vanliga misstag

Det här är det som gör att uppgiften underkänns i onödan.

MisstagVad som händerUndvik det så här
Fyra kopior av samma komponentRäknas som en. Kravet är fyra som gör olika sakerBryt ut det som faktiskt upprepas
Komponenten hämtar sin egen dataGår inte att återanvända, och sänker på CSkicka in listan som parameter
Komponenten används bara en gångDå är den en sida, inte en komponentAnvänd minst en på två sidor
{id} utan :intSidan kraschar på /filmer/abcSkriv {id:int}
Detaljsidan nås bara genom att skriva adressenRäknas inte som koppladeLänka från kortet
Ett id som inte finns ger tom sida med status 200Sidan ljuger om att allt gick braNavigationManager.NotFound(), med return efter
[Parameter] glömdKörfel, inte kompileringsfel. Sidan bygger och krascharLäs felmeddelandet – det säger exakt detta
RenderFragment som heter något annat än ChildContentKörfel när sidan öppnasAntingen döp om, eller skriv ut taggnamnet vid användning
Detaljsidan visar samma sak som kortetIngen anledning att klicka. Sänker betygetLägg beskrivningsfältet bara på detaljsidan
Domänen vald på känslaFaller isär i område 6 när kategorin ska inBocka av mot de sju kraven
Allt committat sista kvällenHistoriken visar inte arbetetCommitta efter varje pass