Lärarhandledning · L7

AI-driven Code Review

Sista tekniska lektionen: studenterna bygger ett komplett review-system och lär sig var gränsen går för vad AI kan och inte kan granska.

V4
Vecka
3 h
Tid
65 min
Teori+Demo
75 min
Workshop

Lektionsmål

Agenda

0:00–0:30
Vad AI kan/inte kan granska — teori Gå igenom tabellen i del 08. Betona: AI är bäst på mekaniska brott (konventioner, mönsterbrott). Affärslogik och runtime-beteende kräver mänsklig granskning.
0:30–1:05
Demo — Kör arkitektur- och säkerhetsprompt live Kör arkitekturgranskningsprompten på en klass med kända brott. Visa resultatet. Kör säkerhetsprompten på en klass med en hardkodad connection string. Diskutera.
1:05–1:25
Copilot Code Review (inbyggd) och modellval Visa den inbyggda Code Review-funktionen i VS Code. Gå igenom modellvalstabellen — varför Opus 4.7 för säkerhet, Claude Sonnet 4.6 för arkitektur.
1:25–1:40
Paus + info om examination
1:40–2:55
Workshop Se workshopbeskrivning nedan.
2:55–3:00
Summering + examinationsinformation

Demo-script — Granskning med kända brott

Klass med inbyggda brott (för demo)
// Denna klass har fyra avsiktliga brott — låt klassen identifiera dem före AI:n
public class OrderService
{
    private readonly string _connectionString = "Server=.;Database=Orders;"; // brott 1

    public Order CreateOrder(string customerId, List<string> productIds) // brott 2 (primitiver)
    {
        if (productIds.Count == 0)
            throw new ArgumentException("No products"); // brott 3 (bör vara Result.Failure)

        // använder DbContext direkt i domäntjänst — brott 4 (infrastruktur i domän)
        using var ctx = new OrderDbContext(_connectionString);
        var order = new Order { CustomerId = customerId };
        ctx.Orders.Add(order);
        ctx.SaveChanges();
        return order; // returnerar null om SaveChanges kastar — brott 5
    }
}
Visa false positive i demo Kör prompten på en korrekt klass som använder ArgumentNullException i en konstruktor (korrekt användning för guard clauses). AI kan flagga det som "bör vara Result.Failure" — det är ett false positive. Diskutera: hur avgör man?

Workshop — instruktioner

Workshop L7 — Bygg review-biblioteket
  1. Skapa tre .prompt.md-filer: arch-review.prompt.md, security-review.prompt.md, testability-review.prompt.md
  2. Kör alla tre på fem C#-klasser från ditt L5-projekt
  3. Dokumentera per klass: (a) fynd som är korrekta, (b) false positives, (c) fynd AI missade
  4. Välj modell för varje granskningstyp och motivera valet
  5. Sammanställ en granskningsrapport för hela projektet (vad behöver åtgärdas?)

FAQ

FrågaSvar
"Hur hanterar jag false positives när AI rapporterar dem?" Dokumentera dem i din review och förklara varför de är false positives. Det tränar din förmåga att skilja på AI:s mekaniska tolkningar och verkliga brott. Om du ser många false positives i en kategori, justera prompten för att minska dem.
"Ska AI-review ersätta manuell review?" Nej — AI-review är ett pre-review-steg som eliminerar de mekaniska kommentarerna. Manuell granskning fokuserar på affärslogik, integration och det som kräver domänkunskap.
"Kan jag automatisera review i CI/CD?" Ja — Copilot Code Review kan integreras i GitHub Actions för PR-granskning. Det är ett VG-fördjupningsmoment i examinationen. Kräver att organisationens Copilot-policy tillåter det.
Nästa lektion — L8 examinationsförberedelse Be studenterna: ha ett påbörjat examinationsprojekt med minst en fungerande instruktionsfil till L8. De ska kunna visa det för en klasskamrat.