n00b pro

VS Code

Dit hoofdstuk is onderdeel van de cursus Ontwikkelomgeving. Andere cursussen in dezelfde reeks: HTML, CSS, Javascript, C#.

NodeJS

NodeJS is een extensie van Javascript voor serverside en lokale toepassingen.

We zullen er zelf niet rechtstreeks mee werken, maar een aantal tools die we binnen onze tekst editor nodig hebben, vereisen dit. Dus download en installeer NodeJS (de windows installer is ok).

Je kan in Visual Studio Code (die we in volgende stap installeren) eenvoudig controleren of NodeJS correct geïnstalleerd is door het versienummer op te vragen. Open een nieuwe terminal via View, New Terminal..., en tik het commando npm -version (npm is een afkorting van Node Package Manager). Als je een foutmelding krijgt, dan is NodeJS nog niet geïnstalleerd.

Visual Studio Code

Visual Studio Code is de tekst editor waarmee we onze code zullen schrijven. Het heeft alle kenmerken die een tekst editor moet bezitten, en is vandaag dé editor voor web development:

downloaden

Download en installeer VS Code

extensies installeren

Extensies zijn plugins waarmee je de functionaliteit van VS Code kan uitbreiden of aanpassen. Installeer volgende extensies (zie screenshot):

  1. EditorConfig for VS Code
  2. ESLint
  3. HTML-validate
  4. htmltagwrap
  5. Live Preview
  6. Stylelint
  7. W3C Web Validator

Veel extensies werken alleen als je ook de nodige node packages toevoegt aan je repository, zie packages installeren

github copilot verwijderen

Github Copilot is een niet erg bruikbare AI-assistent (met een slechte rating), die je beter verwijdert:

werkmap openen

Je opent nooit zomaar losse bestanden in VS code, maar een folder waarin je werkt — de werkmap of working directory. Voor elk vak zul je een boilerplate krijgen (te downloaden van Toledo): dit is een kant-en-klare mappenstructuur voor je oefeningen. Open altijd de volledige boilerplate in VS Code via het File menu:

alle mappen in VS Code

Je krijgt alle mappen te zien (screenshot voor Web Development Fundamentals). Uit veiligheid wordt de geopende folder niet zomaar vertrouwd. Maak deze folder trusted:

folder vertrouwen

Je ziet tenslotte links alle submappen, samen met een paar configuratiebestanden:

folder vertrouwen

De volledige mappenstructuur moet altijd zichtbaar zijn, anders kan je niet fatsoenlijk werken!

packages installeren

We hebben eerder een aantal extensies als html-validate, stylelint en eslint geïnstalleerd in VS Code. Om te kunnen werken hebben ze een aantal Node packages nodig. Dit zijn code libraries met specifieke functionaliteit, die we zullen installeren in de working directory. Je boilerplate bevat een bestand package.json, waarin alle nodige packages opgelijst staan:

Open de Terminal (Terminal, new Terminal... of Shift-Ctrl-`), en installeer alle packages in je working directory met volgend commando:

npm install

Het kan zijn dat je eerst volgende foutmelding krijgt:

Run dan dit commando, en voer daarna npm install opnieuw uit:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

Samenvattende screenshot:

Je ziet dat er een map node_modules bijgekomen is. Deze bevat alle packages uit package.json, plus alle packages die zij weer nodig hebben, de zgn. dependencies:

uitleg configuratiebestanden

In de root van de boilerplate komen allerhande configuratiebestanden voor.

Enkele typische:

Deze bevatten allerhande instellingen zoals gebruikte karakterset, indentatiestijl (tabs of spaties, spronggrootte), voorkeuren qua hoofdlettergebruik, layout, toegelaten HTML tags, Javascript syntax, witruimtes enz...

Het is belangrijk dat deze instellingen bij iedereen gelijk zijn: breng dus geen wijzigingen aan deze bestanden aan!

Hoe oefeningen maken

Open altijd eerst je volledige repository in VS Code, zie repository openen

oefening aanmaken

Eerst moet je weten om welke les en wat de naam van de oefening is. Dit vind je terug in de opgave:

nummer van de les en naam van de oefening

Stappen:

  1. maak een submap in de les met exact de naam van de oefening, hier InVuurEnVlam
  2. voeg daarin eventuele afbeeldingen en ander startmateriaal toe
  3. voeg een bestand index.html toe
  4. maak de HTML basiscode aan (b.v. met de html:5 + tab shortcut)
maak een nieuwe map...
...met exact de naam van de oefening...
...voeg eventuele afbeeldingen toe (via Windows Verkenner)...
...voeg dan een bestand toe...
...met exact de naam index.html, en gebruik de html:5 + TAB shortcut...
...en geef de pagina een titel

oefening uitwerken

Voeg nu alle mappen en bestanden toe die je nodig hebt voor deze oefening, typisch:

Werk tenslotte de opgave uit. Indien nodig, maak je nog extra submappen aan, b.v. voor afbeeldingen, CSS, fonts enz... VS Code herkent een git repository en geeft in kleur aan welke veranderingen er zijn sinds de laatste commit:

live preview

De Live Preview extensie opent je pagina in de browser; elke keer als je opslaat wordt de pagina automatisch bijgewerkt. Je vindt de knop rechtsboven (als een html pagina openstaat):

De preview opent in een nieuw tabblad. Handiger is direct in de browser:

correcte setup: code op je laptop, live server op een externe monitor

Je ziet je code en het resultaat dan apart, live gerefreshed:

correcte setup: code op je laptop, live server op een externe monitor

Standaard gebeurt de update elke toetsaanslag, wat hinderlijk kan zijn. Verander het bij instellingen (shortcut: Ctrl ,) zodat de update enkel bij het opslaan (shortcut: Ctrl S) gebeurt:

correcte setup: code op je laptop, live server op een externe monitor

Een voorbeeld van een correcte setup, met je code op je laptop en de live server op een externe monitor:

correcte setup: code op je laptop, live server op een externe monitor

Code kwaliteit

Zeker even belangrijk als de code functionaliteit, is de code kwaliteit: voor de leesbaarheid, efficiëntie, fout(on)gevoeligheid. Gelukkig zijn er een aantal tools die ons kunnen helpen bij het schrijven van betere code en het opvangen van mogelijke fouten.

Controleer altijd nog eens layout, linting en validatie vóór je pusht. Je verliest er veel punten mee en fouten zijn makkelijk te vermijden!

layout

Zonder degelijke layout kan je de structuur van je programma niet zien, en dus onmogelijk programmeren. Zolang je zelf de code typt treden geen problemen op; elke editor auto-indenteert tegenwoordig. Als je fragmenten van elders kopieert, kan het zijn dat je de layout handmatig moet goedzetten. Gelukkig heeft elke editor daar een shortcut voor; in VS Code is dat Shift-Alt-F.

layout goedzetten met Shift-Alt-F

linting

Met linting tools wordt de code automatisch gecontroleerd op mogelijke bugs (verdachte/gevaarlijke code) en stijl inconsistentie (b.v. hoofdlettergebruik, layout...). Er zijn veel linting tools in omloop; wij gebruiken de volgende:

Naast de tool zelf (geïnstalleerd als NPM package) heb je meestal ook een extensie nodig om het in VS Code te integreren. Tijdens de installatie van de extensies hebben we dat allemaal al in orde gebracht voor deze drie tools. Een screenshot van typische meldingen:

voorbeeld van html-validate, stylelint en eslint meldingen (warnings en errors)

Het is uiteraard ook de bedoeling dat je de meldingen ook effectief oplost. Dit kan op volgende manieren:

Het beste is altijd de fout verbeteren — meestal handmatig (lees de melding!), maar soms is er ook een Quick Fix:

quick fix in ESLint

Je kan in theorie de melding ook soms uitschakelen voor deze regel, maar dan moet je echt wel een goede reden hebben (en geloof me, dat heb je meestal niet!):

disable rule (niet gebruiken tenzij expliciet toegelaten door de docent)

W3C validatie

Lintingtools zullen over het algemeen naast de stijl van je code ook controleren op pure syntaxfouten. Voor HTML worden de syntaxregels onderhouden door het W3C of World Wide Web Consortium. Dit zijn er dermate veel dat de HTML-validate linting tool niet volstaat, en een extra W3C Web Validator extensie nodig is (installatie zie extensies installeren). Deze moet je manueel uitvoeren, bij voorkeur telkens voor het pushen. Soms vindt het toch nog fouten die door de HTML-validate linting tool over het hoofd worden gezien, zoals hier:

validatiefout gevonden door de W3C Web Validator extensie

Sneller typen

Er zijn twee belangrijke redenen om te investeren in het sneller leren typen:

Shortcuts

Tabel van de belangrijkste shortcuts die je zo snel mogelijk onder de knie zou moeten krijgen (volledige cheatsheet zie Windows en OSX); probeer ze zoveel mogelijk uit tijdens de oefeningen.

HTML tags aanvullen met TAB

Tags voeg je snel toe door in HTML enkel de naam te typen, gevolgd door de TAB. Demo (animated gif):

gebruik telkens de TAB toets

Daarnaast is het uiteraard ook belangrijk vlot te kunnen navigeren met pijltjestoetsen en te kunnen copy-pasten, zie shortcuts

htmltagwrap

De veelgebruikte extensie htmltagwrap laat toe makkelijk een element rond een tekst of code te plaatsen met Alt-W:

htmltagwrap met Alt-W

Emmet HTML shortcodes

Emmet is een standaard ingebouwde shortcode plugin. Demo (animated gif):

emmet shortcodes