De wet van lekkende abstracties in Angular
Angular biedt een hoog niveau van abstractie. Tools zoals de Router, HttpClient en Signals verbergen de complexiteit van de browser en de JavaScript-runtime.
Dit gemak volgt een principe dat de Law of Leaky Abstractions wordt genoemd.
Deze wet stelt: alle niet-triviale abstracties lekken.
Een abstractie verbergt complexiteit. Het verwijdert het niet.
Beschouw deze voorbeelden:
- Signals beheren de state eenvoudig. Ze verbergen hoe rendering plaatsvindt.
- HttpClient handelt webverzoeken eenvoudig af.
- RxJS beheert datastromen met operators.
Het lek ontstaat wanneer er iets misgaat.
Wanneer je te maken krijgt met een CORS-fout of een timeout, moet je HTTP en netwerkprotocollen begrijpen. De HttpClient-abstractie slaagt er niet in om die details te verbergen.
Wanneer je worstelt met de keuze tussen switchMap en mergeMap, moet je de JavaScript event loop begrijpen. RxJS kan niet verbergen hoe het systeem taken plant.
AI-gestuurde tools zijn de nieuwste laag van abstractie. Je gebruikt AI om componenten, tests en features te schrijven. Dit maakt je sneller.
Maar de wet is ook van toepassing op AI.
Wanneer AI-code faalt of beveiligingsrisico's creëert, moet je de onderliggende code begrijpen. AI vervangt je kennis van TypeScript, browsers of architectuur niet.
Hoe meer je op AI vertrouwt, hoe meer je de basisprincipes nodig hebt. Je moet de kwaliteit van wat de AI produceert evalueren.
Senior engineers onderscheiden zich omdat ze weten wat er onder de oppervlakte ligt. Zij vinden de oorzaak wanneer abstracties falen.
Angular maakt je productief. AI maakt je snel. Geen van beide maakt networking, de DOM of basis engineering optioneel.
Ze maken het alleen makkelijk om de basisprincipes te vergeten totdat er iets misgaat.
Bron: https://dev.to/duskoperic/the-law-of-leaky-abstractions-in-the-angular-ecosystem-59da