Effective Javascript is een verzameling van 68 items die aan de lezer worden voorgelegd met behulp van een aantal beknopte codevoorbeelden, duidelijke do’s & don’ts en tips. Hierbij wordt ter verduidelijking ingegaan op de werking van bepaalde delen van JavaScript als taal. Het boek is geschreven door David Herman, een research engineer bij Mozilla Labs. Herman maakt onderdeel uit van het Ecma Comité, waar hij een bijdrage levert aan de ECMAScript standaard specificatie. Herman is hierdoor iemand die een immense hoeveelheid kennis bezit door zijn betrokkenheid bij -en contributies aan- de taal en standaard.
Het boek bestaat uit zeven hoofdstukken, waarbij in ieder hoofdstuk een duidelijk afgebakend stukje van de taal wordt behandeld. In de eerste twee hoofdstukken wordt door Herman ingegaan op de basis van JavaScript. Er worden in deze hoofdstukken een aantal problemen omschreven en de nodige basiskennis wordt met de lezer gedeeld. Dit betreft basiskennis waarvan gesteld kan worden dat iedereen die iets met JavaScript doet of gaat doen dit zou moeten weten. Hier valt te denken aan de vergelijking tussen de beruchte ‘==’ en ‘===’ comparators en het afraden van het gebruik van globals. Daarnaast worden een aantal tips gegeven op het gebied van programmeerstijlen. Deze zijn verpakt in het tweede hoofdstuk over variable scopes.
Vanaf het tweede hoofdstuk gaat het boek iets verder in op specifiekere onderdelen van de taal, waarbij uitleg wordt gegeven over de toepassing en mogelijkheden van functies, objecten & prototypes en arrays & dictionaries. Hier wordt redelijk diep ingegaan op de oplossingen die JavaScript als taal biedt en welke voor- en/of nadelen deze verschillende oplossingen bieden. Zo wordt bijvoorbeeld uitgelegd hoe prototypes kunnen worden uitgebreid en hoe dit het best kan worden gedaan. Na een stortvloed aan tips en verbeterde alternatieven voor veel gebruikte technieken volgt weer een wat algemener hoofdstuk dat een goed houvast biedt op het vlak van library en API design. Het boek sluit tot slot af met een hoofdstuk over concurrency, iets waarover in de ECMAScript standaard eigenlijk vrijwel niets gedefinieerd is. Er worden een aantal goede tips gegeven over het omgaan met I/O en het afhandelen van asynchronous calls, zoals het gebruik van promises om asynchronous logica op te schonen.
Doordat het boek opgedeeld is in allemaal kleine blokjes met concrete informatie zijn de onderdelen over het algemeen goed los van elkaar te lezen. Aan te raden is om vooral van de hoofdstukken die dieper op de mogelijkheden van de taal ingaan de eerste items te lezen. Hierin wordt wat algemene informatie gegeven die van belang is om de rest van het boek goed te begrijpen. Dit zijn kleine blokjes van drie tot vier pagina’s die bijvoorbeeld uitleg geven over het verschil tussen prototype, getProtoTypeOf en __proto__. Vervolgens wordt in een aantal items uitgelegd welke mogelijkheden prototypes bieden en welke do’s en don’ts hier van toepassing zijn. Hier is een goed algemeen begrip van de stof dus vooraf vereist. Zo nu en dan wordt door Herman verwezen naar andere items, maar door de manier waarop functioneren deze verwijzingen met als voorbeelden. Als lezer ondervind je hierdoor weinig hinder en dit kan als bijdrage worden beschouwd in plaats van als doorverwijzing om elders verder te lezen.
Deze opzet, in combinatie met de diepgang van het boek op sommige punten, maakt ook dat het boek niet echt geschikt is voor de beginnende (JavaScript) programmeur. Er wordt uitgegaan van het feit dat de lezer een aantal concepten al weet of begrijpt na het lezen van drie tot vier pagina’s met algemene informatie. Het boek is dan ook vooral geschikt voor de programmeur die al enige ervaring met JavaScript heeft en over een compacte en zeer informatieve opsomming van belangrijke tips en pitfalls wil beschikken, zonder te ver op de JavaScript internals in te gaan.
Cijfer: 5, een zeer informatief boekje dat in een beperkt aantal pagina’s veel nuttige tips en inzichten biedt.
Auteur: David Herman
ISBN-13: 978-0321812186
200 pagina’s