Interface: verschil tussen versies
Regel 55: | Regel 55: | ||
* het gebruik gemakkelijk is, met zo min mogelijk aanleiding tot foutief gebruik. | * het gebruik gemakkelijk is, met zo min mogelijk aanleiding tot foutief gebruik. | ||
* dit stabiel kan blijven, bij veranderingen in de implementatie die te voorzien zijn. | * dit stabiel kan blijven, bij veranderingen in de implementatie die te voorzien zijn. | ||
==== Evolutie ==== | |||
Evolutie van een interface kan soms nodig zijn, omdat de technologische mogelijkheden en het gebruik veranderen. | |||
: Voorbeeld: [[HTML5 als levende standaard]] | |||
=== Gebruik === | === Gebruik === |
Versie van 10 nov 2014 09:20
Interface
Een interface is een vast omlijnd contactpunt tussen de aanbieder van een dienst of product, en de gebruiker daarvan.
Een interface vormt een dubbelzijdige abstractie:
- de implementatie hoeft alleen aan het interface te voldoen. Daarmee abstraheer je van de details van het gebruik.
- voor het gebruik is alleen het interface van belang. Daarmee abstraheer je van de details van de implementatie.
Interfaces komen ook buiten de ICT voor: denk bijvoorbeeld aan het stopcontact, of het gebruikersinterface van een auto.
Binnen de ICT komen interfaces op alle niveaus voor, van hardware-interfaces als USB, via procedures en functies als interface, tot gebruikersinterfaces van operating systems en toepassingen. Als gebruiker heb je met een zeer groot aantal interfaces te maken. Als programmeur moet je vaak zelf interfaces definiëren.
Voorbeelden:
- hardware-interfaces (USB,
Basis voor evolutie en variatie
Interfaces in de ICT vormen de basis voor evolutie en variatie. Dankzij het slim gebruiken van interfaces kan de technologie en het gebruik daarvan zich zo snel ontwikkelen.
- Voorbeeld: (i) je kunt je bestaande software en gegevens op een nieuwe computer installeren - zonder dat je deze software hoeft aan te passen; (ii) je kunt nieuwe software op je bestaande computer installeren - zonder dat je deze computer hoeft aan te passen.
- Voorbeeld: je kunt een nieuwe schijf aan je computer koppelen, of een bedraad netwerk vervangen door een draadloos netwerk - zonder dat je de software (toepassingen) hoeft aan te passen. (hooguit moet je in de systeemsoftware een configuratie aanpassen, of een driver-programma toevoegen).
Evolutie van interface
Een interface hoeft niet permanent te zijn: soms is het nodig dat het interface mee-evolueert met de technologie en met het gebruik. Dit gaat het gemakkelijkst als het om uitbreidingen gaat: deze maken geen inbreuk op bestaand gebruik. Maar in enkele gevallen is het nodig om erfenissen uit het verleden af te stoten; in dat geval moeten gebruikers zich aanpassen. Vaak is er sprake van een overgangssituatie waarin het gebruik nog getolereerd wordt, zo mogelijk met de waar
- Voorbeeld: de HTML5-standaard is een voorbeeld van een "levende standaard": deze wordt regelmatig uitgebreid.
- Voorbeeld: in HTML5 zijn bepaalde constructies die in eerdere versies van HTML toegestaan waren, tot "verouderd" bestempeld. Programma's die HTML-code controleren kunnen voor het gebruik daarvan waarschuwen. Soms krijg je dergelijke waarschuwingen in de browser (via het console).
Zie ook: 3-lagen model
Standaardisatie
Interfaces zijn vaak gestandaardiseerd. Dit is van belang als er meerdere aanbieders zijn van hetzelfde interface.
- voorkom lock-in
Voorbeelden van standaarden:
- Ethernet
- WiFi
- USB
- TCP/IP (internet-protocol)
- HTML en HTTP (web-documenten, web-protocol)
- ECMAScript (standaard voor JavaScript)
Wat moet je weten over interfaces?
Definitie van het interface
Definieer een interface zo dat
- het een goede scheiding vormt tussen gebruik en implementatie (separation of concerns). Het interface moet geen implementatie-details later doorschemeren (implementation bias).
- het gebruik gemakkelijk is, met zo min mogelijk aanleiding tot foutief gebruik.
- dit stabiel kan blijven, bij veranderingen in de implementatie die te voorzien zijn.
Evolutie
Evolutie van een interface kan soms nodig zijn, omdat de technologische mogelijkheden en het gebruik veranderen.
- Voorbeeld: HTML5 als levende standaard
Gebruik
Houd je aan de regels van het gedocumenteerde interface. Soms is het mogelijk om ongedocumenteerde eigenschappen te gebruiken; dit kan een werkende oplossing opleveren. Maar er is geen enkele garantie dat dit in de toekomst ook het geval zal zijn.
Voorkom lock-in
Als er meerdere aanbieders zijn van een bepaald interface, biedt een aanbieder soms "extra's", boven op het standaard-interface. Het gebruik van deze extra's, hoe aanlokkelijk ook, maakt het lastiger om over te stappen naar een andere aanbieder: er is dan sprake van vendor lock-in.
Implementatie
De implementatie is de manier waarop het product of de dienst gemaakt is.
- Voor het gebruik is in eerste alleen het interface van belang, niet de implementatie.
- Implementaties kunnen verschillen met betrekking tot hun kwaliteit en efficiëntie.
- In het geval van een gestandaardiseerd interface kun je eenvoudig overstappen op een implementatie die beter past wat kwaliteit en efficiëntie betreft.