Het bouwen van applicaties met behulp van low-code brengt snelheid, flexibiliteit en hoge mate van wendbaarheid in het ontwikkelingsproces. Ontwikkelaars kunnen, in plaats van jaren, binnen enkele maanden leren werken met een low-code platform zoals Mendix en het is daarom een stuk toegankelijker. Indien het op de juiste manier wordt gebruikt, is low-code een zeer krachtige manier om, in populaire termen, "de kloof tussen business en IT te overbruggen".
In mijn 12 jaar ervaring met low-code ontwikkeling heb ik vele malen de kracht ervan gezien. Echter, ik heb ook de keerzijde ervaren: ook 'slechte' apps zijn gemakkelijk te bouwen met het Mendix platform. Apps zien er mooi uit, lijken te werken en voldoen in eerste instantie aan de eisen van klanten, maar zijn niet houdbaar op de lange termijn. Het focussen op onderhoudbaarheid, beveiliging en performance is cruciaal voor succes en kan een applicatie maken of breken.
Elke ontwikkelaar kan functionaliteit bouwen, maar het creëren van Enterprise waardige applicaties is een andere tak van sport. Uitgebreide en diepgaande kennis van het platform is vereist om stabiele applicaties te kunnen ontwikkelen. In onze samenwerking met Motopp hebben we de kans om een groot aantal nieuwe ontwikkelaars te helpen met het begin van hun Mendix carrière. We gebruiken onze ervaring om een diepgaand begrip van het platform te bieden. De focus op onderhoudbaarheid, beveiliging en performance zal hen helpen bij het bouwen van applicaties van hoge kwaliteit.
In deze blog wil ik het specifiek over deze drie punten hebben. Naast het creëren van de gewenste functionaliteit voor het bedrijf, zouden deze prioriteit moeten hebben voor een goede ontwikkelaar.
Hoewel Mendix zeer geschikt is voor het snel prototypen en maken van proof of concepts, werden veel van de applicaties die ik heb gezien daadwerkelijk jarenlang gebruikt. Dit betekent dat er in de loop van de tijd nieuwe functies werden toegevoegd en onderhoud moest plaatsvinden. Daarom is het belangrijk, wanneer je wilt profiteren van de mogelijkheden van het Mendix platform, een onderhoudsvriendelijke applicatie te creëren. Een goed onderhoudbare applicatie staat gelijk aan een veilige, nette, georganiseerde en goed gestructureerde applicatie. Bovendien dien je na te denken over het bouwen van herbruikbare componenten, zodat je niet twee keer dezelfde dingen en/of anders ontwikkelt. Klinkt leuk, toch?
Nou... Niet voor de meeste ontwikkelaars. Daarom wordt er vaak minder tijd en aandacht gestoken in het onderwerp ‘onderhoudbaarheid’.
Wat moet je doen?
Best practices en conventies kunnen je een eind op weg helpen. Mendix heeft een lijst met best practices die je helpt bij het structureren van je applicatie. Bovendien zal het bewustzijn van het belang van onderhoudbaarheid je helpen bij het ontwerpen en bouwen van een toekomstbestendige app. Zoals ik al eerder noemde, is herbruikbaarheid ook een belangrijk aspect: door te focussen op het creëren van snippets of sub-microflows kun je herbruikbare code ontwikkelen. Een mooi voorbeeld van een patroon hiervoor is een 'Get or create'-flow die je kunt hergebruiken om een object te maken als het nog niet bestaat of het op te halen als het al is gemaakt.
Hoewel Mendix beveiliging afdwingt binnen het platform en controleert op consistentie in een groot deel van de applicatie, is het nog steeds noodzakelijk om zelf te controleren of je applicatie veilig is en waar potentiële beveiligingsproblemen kunnen zijn. Als bijvoorbeeld de instellingen niet correct zijn, opent het werken met anonieme gebruikers een mogelijk portaal naar jouw gegevens. Of wat dacht je van het gebruiken van widgets, zoals een HTML-editor, die een gebruiker de mogelijkheid geeft om kwaadaardige code uit te voeren?
De basisprincipes van beveiliging zijn goed gedefinieerd en gedocumenteerd in dit stuk Mendix-documentatie. Wij geloven dat de beste manier om een veilige applicatie te ontwikkelen is om te beginnen vanuit het punt van ‘helemaal geen toegang te bieden’ voor een gebruiker. Van daaruit geef je stukje bij beetje toegang en geef je alleen toegang tot dingen die absoluut noodzakelijk zijn. Bijvoorbeeld met betrekking tot toegang tot een entiteit: geef geen lees-/schrijftoegang op alle attributen puur en alleen omdat het makkelijk is. Geef alleen toegang tot wat nodig is.
Naast de basisprincipes heeft Mendix een handig document met best practices m.b.t. beveiliging dat je een aantal ideeën geeft waar naar te kijken. En onthoud: beveiliging is cruciaal!
Een goed presterende applicatie is essentieel voor het succes (en de adoptie!) van de app. Prestaties kunnen echter zeer subjectief zijn en code te vroeg optimaliseren kan kostbaar zijn als je geen valide redenen hebt om dat te doen. Stel daarom vragen over prestaties in de ontwerpfase: wat voor soort gegevens moet je functionaliteit verwerken en moet de gebruiker erop wachten? Bovendien, als je iets optimaliseert dat als traag wordt gedefinieerd, analyseer of optimaliseer dan niet op gevoel. Gebruik metingen en kwantificeer.
Naast deze aanbevolen manier van denken, helpt Mendix je ook in hun documentatie met enkele best practices en patronen die je app helpen beter te presteren. Je vindt enkele praktische tools om specifieke acties sneller te maken of in ieder geval minder gevoelig te maken voor een langzame werking.
Ik heb gezien wat er gebeurt als je geen oog voor detail hebt als het gaat om onderhoudbaarheid, beveiliging en prestaties. Door tijdsdruk, gebrek aan ervaring of een te grote focus op functionaliteit worden apps ontwikkeld die in het begin prima werken. Echter, wanneer de app aanpassingen nodig heeft, grotere volumes verwerkt of meer wordt blootgesteld, wordt het al snel duidelijk dat goedkoop gelijk staat aan duurkoop.
Het focussen op bovenstaande onderwerpen biedt handvatten om hoogwaardige en toekomstbestendige applicaties te ontwikkelen. Bij Squad Apps hanteren we een hoge standaard als het gaat om de kwaliteit van applicaties. Bij elke applicatie die we ontwikkelen, zorgen we ervoor dat deze voldoet aan alle criteria met betrekking tot onderhoudbaarheid, beveiliging en prestaties. Zowel nu als in de toekomst.