Direkt zum Inhalt

Programmieren in einer Low-Code-Welt

Programmieren in einer Low-Code-Welt

Programmieren in einer Low-Code-Welt

Low-Code rationalisiert die Softwareentwicklung für Programmierer und Softwareentwickler gleichermaßen. Die Low-Code-Framework vereinfacht Prozesse durch Reduzierung redundanter und banaler Aufgaben. Entwickler können Releases erstellen, testen und bereitstellen mit Leichtigkeit durch den Einsatz von Low-Code-Plattformen wie Mendix.

In einem früherer Blogbeitrag, Chief Marketing Officer Nick Ford untersuchte, wie Low-Code Plattformen ermöglichen es Softwareentwicklern, sich auf das zu konzentrieren, was sie am besten können: Programmieren. In diesem Blogbeitrag möchte ich einige der Funktionen der Mendix Plattform, die Softwareentwickler bei dem unterstützt, was sie am besten können.

Lesen Sie weiter, um mehr darüber zu erfahren, wie Softwareentwickler mit Low-Code als modellbasierter Entwicklungsplattform erfolgreich sind.

3 wichtige Low-Code-Entwicklungsfunktionen für App-Entwickler

Es gibt drei Schlüsselbereiche der Mendix Plattform, auf der Softwareentwickler ihre Fähigkeiten nutzen können, um anderen am Anwendungslebenszyklus Beteiligten ein besseres Entwicklungserlebnis zu bieten.

  1. Modellerweiterungen
  2. Modell-SDK
  3. Plattform-APIs

Jedes dieser Elemente ist darauf ausgelegt, Ingenieuren dabei zu helfen, die Plattform an die Bedürfnisse ihrer Organisation anzupassen. Schauen wir uns jedes davon an, um zu sehen, wie sie innerhalb des Mendix Plattform.

Modellerweiterungen: Effektiv, sicher und wiederverwendbar

Während meiner Zeit mit Mendix, es gibt eine Frage, die mir immer wieder gestellt wird: „Wo kann ich den generierten Code sehen?“. Meine Antwort ist immer: „Es gibt keinen Code! Die Laufzeitumgebung interpretiert das Modell und erstellt Ihre Anwendung. Das heißt aber nicht, dass Sie Ihr Modell nicht mit Code erweitern können.“

Modellgetriebene Entwicklung ist kein neues Konzept, es gibt es schon seit vielen Jahren. Viele Entwicklungstools der Vergangenheit waren jedoch entweder zu restriktiv oder schwer anzupassen. Wenn Anpassungen möglich waren, musste der generierte Code häufig geändert werden, um die Kundenanforderungen zu erfüllen. Wenn Sie dies jedoch tun, zerstören Sie das Modell, was Ihre Entwicklungsgeschwindigkeit verringert und die Wartung zu einem Albtraum macht.

Mendix verfolgt einen anderen Ansatz bei Erweiterungen. Anstatt Ihre Anwendung mit benutzerdefiniertem Code zu erweitern, erweitern wir den Modellierer selbst. Durch die Erweiterung der Modelliererfunktionen können Sie immer sicherstellen, dass Ihr Modell und Ihre benutzerdefinierten Codeerweiterungen effektiv funktionieren. Sie stellen außerdem sicher, dass jeder geschriebene Code in anderen Anwendungen wiederverwendbar ist.

Es gibt zwei Möglichkeiten, Ihr Modell zu erweitern: Mendix Plattform zur Nutzung von benutzerdefiniertem Code. Dabei handelt es sich um Frontend-Erweiterungen, die als Widgets bezeichnet werden, und Backend-Erweiterungen, die als Konnektoren bezeichnet werden. Widgets ermöglichen Ihnen die Erweiterung Ihrer Mendix Anwendung mit JavaScript und verwenden Sie jede JavaScript-Bibliothek, die Sie benötigen, wie beispielsweise: React, Angular, Dojo oder D3. Konnektoren laufen auf dem Server, sodass Sie benutzerdefinierten Java/Scala-Code erstellen können, um alle Java- oder Scala-Bibliotheken zu verwenden. Neben benutzerdefiniertem Code unterstützen wir auch native Integrationen wie REST, SOAP und OData. In diesem Blog möchte ich mich jedoch darauf konzentrieren, die Funktionen hervorzuheben, die Konnektoren und Widgets für Entwickler so leistungsstark machen.

Konnektoren

Konnektoren sind eine großartige Möglichkeit, die Funktionalität des Modellierers zu erweitern. Konnektoren sind in sich geschlossene Wrapper, die die native Microflow-Funktionalität erweitern. Ein Konnektor führt, wenn er von einem Microflow aufgerufen wird, einen Teil Java-Code aus, der in Ihrer bevorzugten IDE bearbeitet werden kann. Der Konnektor kann alle Funktionen des Modells nutzen, einschließlich Entitäten, Datensätze, Microflows, Seiten und Konfigurationen über die Mendix Laufzeit-API. Beim Erstellen eines Konnektors können Sie optional ein Symbol und eine Beschreibung hinzufügen, wodurch dieser nativ im Mendix Toolbox. Der Benutzer des Connectors muss nur die erforderlichen Parameter an den Code übergeben, er muss den zugrunde liegenden Java-Code nicht verstehen.

Screenshot der Verwendung von Konnektoren in der Anwendungsentwicklung

Was Konnektoren so leistungsstark macht, ist ihr umfangreicher Satz an Parametern und Rückgabetypen. Beim Erstellen einer Integration möchten Sie sie so benutzerfreundlich und allgemein wie möglich gestalten. Indem Sie Ihren Konnektor generisch gestalten, stellen Sie sicher, dass er in verschiedenen Situationen einfacher wiederverwendet werden kann, z. B. bei der Weitergabe unterschiedlicher Daten für unterschiedliche Anwendungsfälle.

Beispielsweise kann ein Konnektor viele Parameter haben, die sowohl generisch, typisiert oder statisch sein können. Konnektorparameter unterstützen derzeit Zeichenfolgen, Boolesche Werte, Ganzzahlen, Dezimalzahlen, Objekte, Listen sowie beliebige Objekte und beliebige Listen. Sobald Sie Ihre Parameter und Rückgabetypen definiert haben, Mendix Plattform generiert einen Code-Wrapper, in dem Sie Ihren eigenen benutzerdefinierten Code definieren können. Der Code kann in Ihrer bevorzugten IDE wie Eclipse, IntelliJ und vielen anderen bearbeitet werden. Im Connector-Code fügen Sie Ihren eigenen benutzerdefinierten Code hinzu, um jede erforderliche Java- oder Scala-Bibliothek aufzurufen. Diese Bibliotheken werden im Userlib-Ordner Ihres Projekts abgelegt, sodass Sie sie verwenden können.

Widgets

Ein Widget ist eine Erweiterung der Frontend-Entwicklung von Mendix. Widgets werden so verpackt, dass sie in sich geschlossen und in mehreren Anwendungen wiederverwendbar sind. Widgets können jede JavaScript-Bibliothek verwenden, die sowohl für das Web als auch für Cordova/Phonegap verfügbar ist. Sobald ein Widget erstellt ist, kann es im App Store verteilt werden, sodass es in Ihrer gesamten Organisation wiederverwendet oder mit der Mendix Community. Es gibt verschiedene Tools, die beim Erstellen von Widgets helfen, darunter Versionen in Typescript, ES6 oder einfachem Javascript, aber persönlich beginne ich immer mit dem Mendix Stromerzeuger. Dies Yeoman Skript generiert beim Ausführen automatisch das notwendige Gerüst, um mit der Widget-Entwicklung zu beginnen. Wenn Sie mit Yeoman oder Javascript nicht vertraut sind, hat mein Kollege Jelte eine ausgezeichnete Webinar.

Die für jedes Widget erforderliche Grundstruktur enthält drei wesentliche Dateien:

  • XML-Datei – wird verwendet, um die Ordnerstruktur Ihres Widgets zu beschreiben.
  • XML-Datei – wird verwendet, um die Parameter zu beschreiben, die an das Widget übergeben werden können.
  • js-Datei – wird verwendet, um die Logik Ihres Widgets zu bestimmen.

Innerhalb der Widget-XML definieren Sie so viele Parameter, wie Sie an Ihren benutzerdefinierten Code übergeben möchten. Die Parameter haben je nach den erforderlichen Daten unterschiedliche Typen, z. B. Zeichenfolgen, Boolesche Werte, Attribute, Objekte usw. Sie können auch definieren, welche dieser Parameter für Ihren benutzerdefinierten Code erforderlich sind. Wenn Sie das Widget auf diese Weise einrichten, stellen Sie sicher, dass es zuverlässig, in sich geschlossen und wiederverwendbar ist. Beispielsweise möchten zwei verschiedene Entwickler möglicherweise dasselbe Widget verwenden, aber Daten von verschiedenen Entitäten übergeben. Durch die Verwendung der Entitäts- und Attributparameter können die Benutzer des Widgets die Daten verwenden, die sie benötigen.

In der Widget-JS-Datei können Sie alle zusätzlichen Bibliotheken definieren, die Sie zur Verwendung in Ihr Widget importieren möchten.

Das Tolle an der Verwendung von Code in Widgets ist, dass Sie vollen Zugriff auf Daten, Entitätsinformationen und Modellinformationen in Ihren Widgets erhalten. Jedes Widget kann die Mendix Client-API mit dem interagieren Mendix Modelldaten. Dadurch werden die Widgets extrem generisch, sodass Benutzer alle Arten von Daten übergeben können, die einfach mit JavaScript abgerufen werden können. Auf alle mit den Widgets abgerufenen Daten wird der Datenzugriff angewendet. Das Widget empfängt also nur dann Daten, wenn der Benutzer Zugriff darauf hat.

Model SDK: Leistungsstarke unterstützende Tools und Analysen

Wir haben untersucht, wie wir unsere Modelle mithilfe von Widgets und Konnektoren erweitern können. Aber wie wäre es, auf Informationen über die Modelle selbst zuzugreifen oder die Modelle programmgesteuert zu ändern? Die Mendix Model SDK ist ein leistungsstarkes Typescript-Entwicklungskit, das auf dem Model SDK aufbaut und Entwicklern programmgesteuerten Zugriff auf die Metamodell-Informationen.

Für das Model SDK gibt es vier Hauptanwendungsfälle:

  1. Importieren Sie Anwendungen aus älteren Codebasen in Mendix
  2. Analysieren von Anwendungsmodellen für die statische Analyse
  3. Nehmen Sie Massenänderungen an Ihrer Anwendung vor
  4. Exportieren Sie Ihre Modelle in eine andere Codebasis oder Plattform

Mithilfe des Model SDK können Entwickler unterstützende Tools rund um das Mendix Plattform, um ihre Fähigkeiten zu erweitern. Ein Beispiel ist das AQM-Tool, das das Model SDK verwendet, um Softwarequalitätsanalysen durchzuführen. Es gibt Ihnen eine Fünf-Sterne-Bewertung, basierend auf Industriestandards, wie gut Ihre Anwendung aufgebaut ist. Es gibt endlose Möglichkeiten mit dem Model SDK, aber wenn Sie anfangen möchten, dann schauen Sie sich das an Einstieg Dokumentation und die API-Dokumente.

Plattform-APIs: Umfangreiche Lösungen mit personalisierten Funktionen

Der Mendix Die Plattform verfügt über eine umfangreiche Palette an APIs, die Entwicklern dabei helfen, die Plattform in ihre bestehende DevOps-Pipeline zu integrieren. Durch den Einsatz von Tools wie Visual Studio Team Services (VSTS) oder Jenkins können Bereitstellungspipelines die APIs nutzen, um Anwendungen automatisch basierend auf einem Trigger wie einem Commit zu erstellen, zu testen und bereitzustellen. Diese Anwendungen können mithilfe von Docker- oder Cloud Foundry-Containern in jeder öffentlichen Cloud, vor Ort oder in jedem privaten Cloud-Angebot bereitgestellt und auf jeder Containerplattform wie Kubernetes oder Cloud Foundry ausgeführt werden. Entwickler können eine beliebige Anzahl der verfügbaren APIs kombinieren, die von der Mendix Produkt, um Ihre eigene personalisierte Pipeline zu erstellen. Das folgende Video zeigt, wie die Teamserver API, Build API, Docker Buildpack und die ATS CICD API, die von unserem vertrauenswürdigen Partner erstellt wurden, CLEVER, werden verwendet, um eine Anwendung basierend auf einem einzelnen Commit live in einem Kubernetes-Cluster bereitzustellen.

Die zentralen Thesen

Das Wichtigste, was Sie aus diesem Blogbeitrag mitnehmen sollten, ist, dass nur weil es sich um Low-Code-Entwicklung handelt, dies nicht bedeutet, dass es keinen Bedarf oder keine Möglichkeit gibt, Code zu erstellen. Es gibt immer diesen Sonderfall, der ein gewisses Maß an Anpassung erfordert, und wenn Sie ihn brauchen, Mendix Plattform unterstützt es. Wenn Sie uns nicht glauben, probieren Sie es selbst aus!

Was werden Sie nun bauen?

Wählen Sie Ihre Sprache