Ga naar inhoud

BLAST

Lever je code in bij een exercise? Dan controleert BLAST (Basic Linter And Software Tester) je code automatisch, nog voordat een medestudent of docent ernaar kijkt:

graph LR
  A[Inleveren] --> B[BLAST-controle];
  B --> C{Fouten?};
  C --> | Ja | D[Verbeteren];
  D --> A;
  C --> | Nee | E[Review];
  1. BLAST: je code wordt automatisch gecontroleerd op kwaliteit (linten) en op de eisen van de exercise (testen).
  2. Review: daarna kijkt een medestudent of docent je uitwerking na. 1

Vindt BLAST fouten? Dan wordt je inlevering geweigerd en zie je de melding BLAST Issues gevonden.... Klik op Bekijk en verbeter om de fouten te bekijken. Je verliest bij een geweigerde inlevering geen gems.

BLAST-instellingen Optionele feature

Per cursus kan worden ingesteld of BLAST zowel lint als test, alleen lint, of alleen test. Bij sommige cursussen zie je daarom alleen testresultaten of alleen linterfouten.

Linters

Linten is het controleren van de kwaliteit van code, zonder te kijken of hij doet wat hij moet doen. Bijvoorbeeld:

  • staan de haakjes { en } op de juiste plek?
  • staat de titel van een webpagina niet in het <header>-element?

BLAST is zelf geen linter, maar gebruikt bestaande linters die in de industrie standaard zijn. De foutmeldingen komen dus van die tools. Voor beginnende programmeurs zijn ze vaak lastig te lezen, maar dat went snel.


Ondersteuning: BLAST ondersteunt de volgende talen:

Taal Tool Regelset
C# dotnet-format Standaard
Java Checkstyle checkstyle.xml
PHP PHP_CodeSniffer phpcs.xml
JavaScript ESLint eslint-lenient.conf.js
HTML v.Nu Standaard
CSS Stylelint stylelint.config.js
SQL sqlfluff sqlfluff.conf
Python Pylint .pylintrc
Dockerfile Hadolint .hadolint.yaml
Docker Compose dclint .dclintrc

Linters installeren

Installeer deze linters op je eigen computer, zodat je je code kunt controleren voordat je hem inlevert. Dat scheelt veel tijd (en frustratie).

Foutmelding

Elke linterfout heeft een vaste opbouw:

  1. Regel en kolom: waar in het bestand de fout zit. Regel 2:7 betekent regel 2, kolom (teken) 7.
  2. Bestand: in welk bestand de fout zit.
  3. Foutmelding: wat er mis is.
  4. Toon code: laat het stukje code zien waar de fout zit.
  5. Uitleg: hoe je linterfouten leest.

Begrijp je een foutmelding niet? Zoek hem dan op: omdat BLAST standaardtools gebruikt, vind je online veel uitleg.

Speciale tekens in foutmeldingen

Een bestand kan tekens bevatten die niet in de standaard UTF-8-codering passen. BLAST filtert die tekens uit de foutmelding, zodat die altijd leesbaar blijft. Daardoor kan het voorkomen dat er tekens in de foutmelding missen.

Testen

Je code moet er niet alleen netjes uitzien, maar ook doen wat de exercise vraagt. Daarom zijn er per exercise BLAST-tests geschreven. Die voeren je code uit en controleren bijvoorbeeld of de uitvoer klopt, of je de juiste technieken hebt gebruikt en of je geen verboden technieken gebruikt.


Precisie: tests zijn vaak heel precies. Let goed op hoofdletters, leestekens en spaties:

Verwacht Jouw uitvoer
Het getal is 5. Het getal is 5. Correct
het getal is 5. Mist hoofdletter
Het getal is 5 Mist punt

Foutmelding bij een test

Elke mislukte test heeft een vaste opbouw:

  1. Titel: kort wat BLAST van je verwacht.
  2. Uitleg: iets uitgebreider wat er verwacht wordt. Deze staat er niet altijd bij.
  3. Technische foutmelding: wat er onder de motorkap gebeurt. Hier zie je bijvoorbeeld welke uitvoer de test verwachtte en wat jouw code deed.

Snap je een foutmelding niet?

Vraag het dan aan je docent. Vooral in het begin kunnen foutmeldingen lastig te lezen zijn!

Limieten

Om misbruik van BLAST te voorkomen (en om "gokken" tegen te gaan), kun je maximaal drie keer per tien minuten een inlevering doen die BLAST afkeurt. Zit je aan de limiet? Dan laat NexEd zien tot hoe laat je moet wachten. Na een geslaagde inlevering begint de telling opnieuw.


  1. Hoeft de exercise niet gereviewd te worden? Dan is hij direct afgerond zodra BLAST geen fouten vindt. Meer over reviews. ↩