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];
- BLAST: je code wordt automatisch gecontroleerd op kwaliteit (linten) en op de eisen van de exercise (testen).
- 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:
- Regel en kolom: waar in het bestand de fout zit.
Regel 2:7betekent regel 2, kolom (teken) 7. - Bestand: in welk bestand de fout zit.
- Foutmelding: wat er mis is.
- Toon code: laat het stukje code zien waar de fout zit.
- 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:
- Titel: kort wat BLAST van je verwacht.
- Uitleg: iets uitgebreider wat er verwacht wordt. Deze staat er niet altijd bij.
- 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.
-
Hoeft de exercise niet gereviewd te worden? Dan is hij direct afgerond zodra BLAST geen fouten vindt. Meer over reviews. ↩


