1/27
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
Wat zijn de 6 stappen van de Software Engineering (SE) Loop
1. Processen & Requirements
2. Klassen & Methoden (Design)
3. Gedocumenteerd Codeskelet
4. Unit Testen (Red)
5. Implementatie (Green)
6. Refacto
Wat betekent SRP (Single Responsibility Principle)?
Een klasse mag maar één verantwoordelijkheid hebben (één reden om te veranderen). Scheid altijd UI (Console) van Logica (Berekeningen).
In welke klasse mag Console.WriteLine staan?
Alleen in Program.cs (of een specifieke UI-klasse). Nooit in domeinklassen zoals Garage, Student of BankAccount.
Wat is TDD en wat zijn de 3 fasen?
Test Driven Development.
1. Red: Schrijf een test die faalt.
2. Green: Schrijf minimale code om de test te laten slagen.
3. Refactor: Schoon de code op zonder functionaliteit te breken
Wat is het verschil tussen een Klasse en een Object?
Een Klasse is het recept (de definitie).
Een Object is de taart (de instantie in het geheugen, gemaakt met new).
Wat is "Technical Debt" (Technische Schuld)?
De "prijs" die je later betaalt omdat je nu voor een snelle, slordige oplossing kiest in plaats van een goede. Het maakt aanpassingen in de toekomst duurder en trager.
Wanneer voer je Refactoring uit?
In de derde fase van TDD (Blue/Refactor), nadat je test groen is. Je verandert de structuur van de code zonder de werking te veranderen.
Noem 3 kenmerken van "Clean Code".
1. Leesbaar (goede namen).
2. Klein (korte methodes).
3. Getest (Unit tests).
4. Zonder duplicatie (DRY).
Wat is een "Code Smell"?
Een signaal in de code dat er iets mis is met het ontwerp (bijv. een klasse die te veel doet, of code die gekopieerd is)
Waarom zijn Unit Tests belangrijk voor de toekomst?
Ze dienen als regressietesten. Ze zorgen ervoor dat nieuwe wijzigingen de oude code niet per ongeluk kapot maken.
Hoe lees je een getal in (Schoolmethode)?
int getal = Convert.ToInt32(Console.ReadLine());
Hoe gooi je een foutmelding als een waarde negatief is?
throw new ArgumentException("Mag niet negatief zijn");
Hoe ziet een lege Constructor eruit die een variabele initialiseert?
public Garage(int cap) { this.capacity = cap; }
Wat is de code om te checken of een lijst leeg is (Property)?
public bool IsEmpty() { return occupancy == 0; }
Waarvoor staat AAA in testen?
Arrange (klaarzetten), Act (uitvoeren), Assert (controleren).
Hoe test je of het resultaat 100 is?
Assert.That(result, Is.EqualTo(100));
Hoe test je of een methode true teruggeeft?
Assert.That(result, Is.True);
Hoe test je of de code crasht (Exception gooit)?
Assert.Throws<ArgumentException>(() => garage.Enter(auto));
Wat doet [SetUp]?
Voert code uit vóór elke test. Handig om je objecten (zoals new Garage()) te resetten voor elke test.
Wat doet [TestCase(5)]?
Hiermee kan je één testfunctie hergebruiken met verschillende invoerwaardes (bijv. 5, 10, 100)
Wat doe je in Stap 1 (Processen)?
Businessprocessen analyseren (begrijpen hoe het bedrijf werkt).
Wat doe je in Stap 2 (Requirements)?
Bepalen wat de input, processing en output is per activiteit. (Wat moet de software precies doen?)
Wat doe je in Stap 4 (Gedocumenteerd Codeskelet)?
Je maakt de klassen en methoden aan, maar laat ze leeg. Je schrijft er alleen commentaar bij (XML doc comments).
Wat is het verschil tussen de Models map en de Domain map?
Models: Bevat simpele data-objecten (bv. Student, Auto).
Domain: Bevat de logica en lijsten (bv. School, Garage).
Hoe maak je een variabele die alleen BINNEN de klasse zichtbaar is
private int _mijnVariabele;
Hoe ziet een Test Methode naam eruit volgens de conventie?
MethodName_ShouldResult_WhenCondition
Bijv: IsFull_ShouldReturnTrue_WhenGarageIsFull.
Hoe roep je een constructor aan in je test?
Garage g = new Garage(10);
Hoe converteer je input correct?
Convert.ToInt32(Console.ReadLine())