Probabil că titlul articolului v-a intrigat. Mă bucur dacă s-a întâmplat acest lucru, pentru că urmează să vă explic ce anume este "Low-code" şi cum Mendix a conceput şi implementat cu succes acest concept.
Străbatem acest drum al cărui scop este de a înţelege cum funcţionează Low-code şi ce este Mendix prin răspunsuri la câteva întrebări. La final, voi trage o concluzie personală despre acest concept şi Mendix.
Low-Code este o abordare vizuală pentru software development. Low-Code permite developerilor dar şi non-developerilor deopotrivă, cu nivel de experienţă variat şi în arii diferite de domeniu (inclusiv non-tehnici), să creeze aplicații folosind componente de UI de tip drag-and-drop cât și să creeze logica definită prin model driven development folosind o interfață grafică.
În ceea ce privește Mendix, aplicațiile sunt în mare parte web și mobile. Aplicațiile mobile sunt hibride sau chiar native.
Mendix este o platformă low-code de development colaborativ pentru aplicații web și mobile. Această platformă permite colaborarea dintre partea business și utilizatori IT prin încurajarea inovării și accelerarea procesului de development. Mendix este compatibil cu aplicații pentru mobil, tabletă și desktop.
Platforma este gândită în așa fel încât oricine își poate transforma ideea într-o aplicație.
Fie că e vorba de un marketer, business analyst sau programator cu experiență, Mendix oferă resurse bogate pentru a folosi ușor platforma și aplica propria experiență în cel mai eficient mod.
Mendix grupează developerii platformei (userii) în patru categorii:
Curious Cate - Cate este user/consumator de aplicații și face parte dintr-un departament legat de business cum ar fi Financiar, Marketing, HR sau Operațional. Ea are experiență în folosirea toolurilor precum Excel, Access, Salesforce sau Workday, însă le folosește într-un mod manual, care îi afectează productivitatea. Cate va folosi Mendix Studio la realizarea aplicațiilor de productivitate pentru a simplifica munca sa și a echipei sale.
Solution Sam - Sam este persoana la care apelează toată lumea când vine vorba de tehnologie și are o afinitate pentru rezolvarea problemelor. Chiar dacă Sam nu are o pregătire tehnică (CS sau programare), el este un cunoscător al bazelor de date și știe cum să creeze modele sofisticate în Excel.
Tech Tom - Tom este un developer profesionist care dorește ca aplicațiile sale să crească valoarea businessului. De aceea, interesul său este legat mai mult de impactul pe care îl are soluția dezvoltată decât de codul care a fost scris.
Hardcore Harry - Harry este un adevărat maestru al codului și este sceptic în ceea ce privește platformele de low-code, deoarece consideră că poate să scrie cod mai repede decât să manevreze prin drag and drop nivele ridicate de abstractizare. Harry a petrecut o mare parte din cariera sa folosind limbaje de programare precum Java, C#, Ruby sau PHP și este posibil să aibă experiență cu alte tooluri pentru dezvoltare rapidă de aplicații.
Este un data model vizual care descrie informația din application domain într-un mod abstract. Este fundamental pentru arhitectura aplicației. Domain modelul este format din entități și relațiile dintre acestea.
Ca entități putem avea:
Poți decide la nivel de metadata dacă o entitate are nevoie de 'persistence layer' sau nu, astfel ai posibilitatea de a lucra cu entități volatile, dacă este nevoie.
Entitățile pot fi create fie prin configurarea manuală a metadatelor, fie prin importul unor structuri de date bazate pe XML sau JSON. Această facilitate face ca integrarea cu alte aplicații 3rd party să fie mai ușoară când vine vorba de instanțierea rezultatelor din service calls (REST sau SOAP). Integrarea cu alte aplicații o voi explica ulterior.
O pagină este o interfață end-user în aplicațiile Mendix. Paginile se pot crea, edita și manipula din Page editor.
Fiecare pagină este bazată pe un layout și un template. Un layout este frame-ul în care se pune pagina, iar template-ul este o bază cu elemente predefinite (widgets).
Widgeturile se grupează în următoarele categorii:
În Mendix, Application logic poate fi implementat prin microflows și nanoflows. Microflow permite redarea aplicației într-o schemă logică. Un microflow poate executa acțiuni precum crearea și updatarea obiectelor (instanțe de entități) ce arată paginile și permit vizualizarea luării deciziilor. Este un mod vizual de a exprima ceea ce ajunge să fie transformat în linii de cod.
Notațiile grafice ale unui microflow se bazează pe Business Process Model and Notation (BPMN). Acesta este un standard pentru notarea grafică a proceselor de business într-un workflow.
Un microflow este compus din mai multe elemente categorizate astfel:
Integrarea cu alte produse se poate face în mai multe moduri, cele mai importante fiind:
Connector Kit - Scopul Mendix Connector Kit este acela de a permite Java developerilor să adauge cu ușurință noi acțiuni microflow în tool boxul Mendix. Aceste noi acțiuni microflow pot fi share-uite în Mendix App Store. Astfel pot fi folosite și de către useri care nu au cunoștințe de Java.
Întorcându-mă la tipurile de utilizatori ai Mendix, pot să vă spun că am jucat rolul lui "Hardcore Harry" pentru mai mulți ani și mi-a plăcut, chiar dacă în ultimul timp mi-a făcut mai multă plăcere să ocup rolul de software architect. Pe scurt, mă consider o persoană tehnică căruia îi place să scrie cod și să aibă mult control la nivel low-level pe orice bucată de software pe care o construiesc.
Poate părea greu de crezut, însă eu simt același nivel de control atunci când construiesc aplicații în Mendix. Sunt încântat de felul în care se reușește abstractizarea diverselor complexități care apar pentru orice capabilitate nouă pe care urmează să o scrie fiecare developer pentru a livra un produs potrivit pentru un anumit client. În viziunea mea, ceea ce au construit developerii de la Mendix este un tool inovator care va schimba orice arie de domeniu, și chiar din domenii adiacente. (Aici nu mă refer doar la software development, ci chiar la industrii întregi). Nu este de mirare ca Siemens a cheltuit mai mult de 600 de milioane de dolari pentru a cumpăra compania și sunt nerăbdător să văd cum vor putea beneficia clienții lor de această nouă jucărie.
Am și un mesaj pentru toți cei care se identifică cu "Hardcore Harry". Vă recomand să acceptați și adoptați platformele Low-code, deoarece astfel veți/vom putea construi funcții la care încă omenirea nici nu s-a gândit. Și nu în ultimul rând, vreau să urez bun venit în lumea software developmentului , tuturor "Citizen developers"!
de Vasile Boris
de Ovidiu Mățan