We houden van Power Pages, maar bij het ontwikkelen ervan merkten we dat de standaard ontwikkelervaring te wensen overliet. We moesten vaak de browser verversen, servers herstarten en caches legen om wijzigingen te zien—het voelde alsof we 20 jaar terug in de tijd waren gegaan. Daarom hebben we de Blis Digital Power Pages DevKit ontwikkeld (lees er meer over in deel 1 en deel 2 van deze serie). Vandaag deel 3, de afsluiting. Over geautomatiseerd testen en wat er nog meer op de roadmap staat voor de DevKit.
Een belangrijk aandachtspunt bij het bouwen van apps met Power Pages is het automatiseren van tests. Testen van Power Pages gebeurt nu nog voornamelijk handmatig. Dat is inefficiënt en brengt risico’s met zich mee. Plus: developers vinden er niet veel aan.
Testtools die in aanmerking komen voor integratie
Binnen Blis Digital hebben we uiteraard ervaring met heel veel tools voor geautomatiseerd testen. Voor integratie in de Power Pages DevKit komen de volgende 3 het eerst in aanmerking:
- Playwright biedt mogelijkheden voor end-to-end testing en is geschikt voor het testen van applicaties in verschillende browsers. Het stelt ons in staat om gebruikersinteracties te simuleren en te controleren of onze applicaties goed werken in een realistische omgeving.
- Cypress is een heel gebruiksvriendelijk testframework voor Javascript en levert real-time testresultaten. Het integreert goed met onze huidige toolset en maakt het mogelijk om snel tests op te zetten en uit te voeren voor sneller testen en betere code.
- Jest is ideaal voor het unit-testen van JavaScript- en TypeScript-code. Het helpt ons bij het testen van individuele PCF-componenten, zodat we zeker weten dat elke component doet wat hij moet doen voordat we hem integreren in de grotere applicatie.
Hoe deze integraties er precies uit zouden moeten zien, daar zijn we nog druk over na aan het denken. Maar dat we geautomatiseerde tests binnenkort gaan integreren in onze toolkit staat vast.
Uitbreidingen van onze toolset
De eerste versie van onze nieuwe toolset was een succes, dus werkten we eraan verder. We bedenken vast nog veel meer features, maar dit zijn de dingen die al vanaf het begin op de roadmap stonden:
- Automatisch genereren van TypeScript-types. We willen het handmatig typen van TypeScript-definities uit het proces halen door types automatisch te genereren op basis van Dataverse-entiteiten. Dit voorkomt fouten en versnelt het ontwikkelproces. En als er wijzigingen zijn in het datamodel, kunnen we met een paar klikken de types bijwerken, waardoor onze code altijd up-to-date is.
- Handiger authentiseren. Op dit moment moeten we als developers nog vaak opnieuw inloggen en authentiseren bij het testen van onze Power Pages-apps. Vaak betekent dat: authenticatie-tokens kopiëren en plakken. Dat is niet leuk om te doen en het gaat ook nog wel eens mis. Door de tokens automatisch te genereren en authenticatie te regelen met een browser-extensie halen we weer een paar frustrerende, tijdrovende stapjes uit het ontwikkelproces. Bovendien wordt onze ontwikkelomgeving er weer een stukje veiliger van.
- Uitbreiden van de user interface. We werken aan het in de GUI integreren van acties zoals het genereren van types en het bijwerken van de datastructuur. Het doel is om ontwikkelaars met een paar klikken types te laten genereren en updaten, zonder handmatig commando’s te tikken of code aan te passen.
- Verbeterde ontwikkelaarservaring en snellere onboarding van nieuwe developers. Het uiteindelijke doel van de Power Pages DevKit is om nieuwe teamleden sneller aan apps te laten bijdragen, zonder diepe kennis van Power Pages. Want dan kunnen ontwikkelaars met ervaring in React na een snelle introductie effectief werken aan Power Pages-projecten. Dit maakt ons team flexibeler en onze projecten schaalbaarder. En het verlaagt de drempel voor samenwerking en kennisdeling, binnen het team en met de klant.
Het meeste hiervan hebben we inmiddels ingebouwd. Gedeeltelijk zijn we zaken nog aan het testen, maar het meeste gebruiken we al voor klanten.
Veranderingen in het datamodel
Een belangrijke uitdaging die we nog hebben is het omgaan met veranderende datamodellen. De ontwikkeling van het systeem staat niet stil, dus terwijl we aan onze Power Pages werken verbeteren andere teams de datastructuur in Dataverse. Hebben wij in onze testomgeving niet het nieuwste model, dan rollen we misschien zonder het te weten code uit met fouten, die we dan in een later stadium weer moeten aanpassen.
Andersom kan het ook zijn dat aanpassingen aan het datamodel bestaande code stukmaken. Ook dat willen we graag in een vroeg stadium ontdekken.
Inherent aan low-code is dat het makkelijk is om dingen aan te passen. Dat geldt ook voor het datamodel. Is een klant daar wat te enthousiast in en verdwijnen er bijvoorbeeld kolommen waar onze PCF-componenten wel op rekenen, dan hebben we een probleempje. Op het moment lossen we dit vooral op door goed en regelmatig met de klant te communiceren. In de toekomst willen we dit graag geautomatiseerd oplossen.
Niet alleen tijdswinst
Het verbeteren van het ontwikkel- en testproces gaat trouwens niet alleen over tijdswinst en het voorkomen van fouten. Het werkplezier van de developers is net zo belangrijk, of misschien wel belangrijker. Developers hebben heel veel kennis en een sterke drive om mooie dingen te maken. Laat je zulke mensen te veel vervelend, herhalend handwerk doen, dan lijdt hun motivatie eronder. En minder gemotiveerde ontwikkelaars zijn minder productief en leveren mindere kwaliteit. Zo gaat dat nou eenmaal. Daarom is het ontzettend belangrijk dat we niet alleen bezig zijn met de kwaliteit van de software die we voor klanten maken, maar ook met het ‘scherp houden’ van ons eigen gereedschap.
Wil je de Power Pages DevKit in actie zien? Neem even contact met ons op, dan plannen we een demo.