Der Zorn des Codes: Die Low-Code-Grenze
Low-Code ist in den letzten Jahren in der Presse immer häufiger Thema geworden. Es wurde ein Boom bei mit Low-Code entwickelten Anwendungen vorhergesagt und das ist auch der Fall. In der Entwickler-Community ist Low-Code jedoch immer noch mit einem Stigma behaftet. Dies ist zum Teil auf die Verwirrung rund um No-Code-Plattformen zurückzuführen, zum Teil auf die auf Entwickler ausgerichtete Marketingstrategie, die suggeriert, dass diese nicht mehr benötigt werden. Wieder andere bezweifeln einfach, dass sich komplexe Systeme ohne die Verwendung einer High-Code-Sprache erstellen lassen.
In diesem Beitrag gehe ich auf einige der Fragen ein, die ich hatte, als ich zum ersten Mal mit Low-Code in Berührung kam, und was ich seitdem gelernt habe.
Was würde ich meinem jüngeren Ich sagen, wenn ich könnte? (Außer „Kaufen Sie Bitcoin.“)
Sie werden assimiliert…?
„Die Leute sagen mir immer wieder, dass Low-Code Entwickler ersetzen wird“
Das ist überhaupt nicht unser Ziel. Wir möchten mehr Menschen die Möglichkeit geben, Anwendungen zu entwickeln, aber wir wissen auch, dass manche Projekte eine Denkweise und Herangehensweise erfordern, die nur ein Entwickler mitbringen kann. Das ist einer der Gründe, warum wir zwei IDEs haben: Studio und Studio Pro.
Studio verfügt über einen zugänglicheren Einstiegspunkt, der Benutzern einen einfachen Einstieg in die Anwendungsentwicklung ermöglicht und ihnen ermöglicht, mit einem Standard-Toolset und zusätzlichen Funktionen aus dem Marktplatz das zu erstellen, was sie benötigen.
Studio Pro hingegen bietet erfahreneren Entwicklern Zugriff auf erweiterte Features und Funktionen wie Java-Codeerweiterung und SASS-Anpassung. Mit Studio Pro werden Sie feststellen, dass Low-Code keine Vereinfachung Ihrer Entwicklung bedeutet, sondern vielmehr die nächste logische Weiterentwicklung der Anwendungsentwicklung darstellt.
In den frühen Tagen des Programmierens war der Entwickler für alles verantwortlich. Er verwaltete Speicherzuweisungen, Zeiger und alle Arten von Low-Level-Funktionen. Dann wurden Sprachen wie C und C++ entwickelt. Sie abstrahierten die Low-Level-Verwaltung und machten das Erstellen von Anwendungen viel einfacher. Als nächstes kam die Objektorientierung auf, um Code in Sprachen wie Java und C# wiederverwendbarer und wartbarer zu machen. Selbst dann mussten noch Datenbanken erstellt und Verbindungen gepflegt, Frontends erstellt und Server verwaltet werden.
Jetzt kommt Low-Code. Alle Vorteile einer modernen Programmiersprache plus die Abstraktion der Datenbankerstellung und -wartung, vereinfachte Frontend-Erstellung, einfache API-Erstellung und -Nutzung und verwaltete Server. Es nimmt Ihnen all den langweiligen Kram ab – all den Kram, der Zeit kostet, aber keine echte Herausforderung darstellt. Dann bietet Ihnen Low-Code die Tools zum Erstellen erweiterter Funktionen per Drag & Drop-Entwicklung mit dem zusätzlichen Vorteil, dass Sie diese mit Java-Funktionen erweitern können. Sie können auch React-Komponenten erstellen, um das Frontend zu erweitern!
Es sind immer noch viele Tools vorhanden, um selbst die anspruchsvollsten Anforderungen zu erfüllen. Außerdem ist es einfach, die grundlegenden Dinge schnell zu erstellen, sodass Sie Zeit haben, sich auf die interessante Entwicklung zu konzentrieren!
Ich bin eine Low-Code-Plattform, keine No-Code-Plattform!
„Irgendwann muss es einen Punkt geben, an dem die per Drag & Drop verschobenen Standardelemente nicht mehr meinen Anforderungen entsprechen. Was dann?“
Dies ist Low-Code, nicht No-Code. Es gibt einen Unterschied, obwohl die beiden derzeit synonym zu sein scheinen. Das Ziel von Low-Code ist es, Ihnen zu helfen, weniger Code zu schreiben, viel weniger eigentlich, und nicht, überhaupt keinen Code zu schreiben. Wir möchten Ihnen dennoch ermöglichen, unser Angebot bei Bedarf durch den Einsatz von Code und Erweiterungen zu erweitern. Das ist der große Unterschied zwischen No-Code und Low-Code.
No-Code-Tools funktionieren rein per Drag & Drop. Sie erhalten einen festen Satz an Tools, um das zu erstellen, was Sie gerade erstellen. Diese Art von Plattformen werden häufig mit Geschäftsprozessmodellierung, Workflows und Website-Buildern in Verbindung gebracht. Sie sind in ihrer Nische nützlich, wenn Sie sich auf gängige Anwendungsfälle beschränken, aber wenn Sie über diesen Bereich hinausgehen müssen, wird es schwieriger.
Low-Code-Plattformen hören nicht bei der Toolbox auf. Wenn es um Logik geht, gibt es viele vorgefertigte Tools, mit denen Sie Ihre Anwendung erstellen können, aber Sie haben auch die Möglichkeit, Ihre eigenen Funktionen zu erstellen. In Mendix Es ist ein einfacher Vorgang, einen Java-Knoten zu Ihrem Microflow hinzuzufügen (das ist so etwas wie eine Methode oder Funktion in Programmiersprache). Dann können Sie Ihren eigenen Java-Code in diesen Knoten schreiben, Objekte ein- und ausgeben und mit dem Mendix Plattform mithilfe des Java SDK.
Wenn Sie feststellen, dass Sie eine benutzerdefinierte Verarbeitung im Frontend benötigen oder ein bestimmtes JavaScript-Widget oder eine bestimmte JavaScript-Bibliothek verwenden möchten, können Sie diese in ein React-Plugin-Widget einbinden. Auf diese Weise können Sie benutzerdefinierte Frontend-Steuerelemente erstellen und haben wieder Zugriff auf ein Mendix SDK zur Interaktion mit der Plattform.
Das ist die Macht von Low-Code. Ja, wir ermöglichen Ihnen, Dinge mit vorgefertigten Drag-and-Drop-Steuerelementen schnell zu erledigen, aber wir ermöglichen Ihnen auch, die Funktionalität zu erweitern. Daher Low-Code und nicht No-Code!
Low-Code, die letzte Grenze …
„OK, nehmen wir an, ich glaube Ihnen. Welche Vorteile kann ich erwarten?“
Beginnen wir mit der vereinfachten Erstellung und Wartung von Datenbanken. Sie erstellen Entitäten, fügen Attribute hinzu und ziehen dann Beziehungen zwischen ihnen. Dadurch wird automatisch eine Datenbanktabelle für Sie erstellt, die Verknüpfungen zwischen Tabellen verwaltet und Sie können die integrierten Abfrageaktionen verwenden. Sie müssen keine Abfrageanweisungen mehr schreiben. Verwenden Sie einfach eine der Aktionen, fügen Sie mit XPath ein wenig Filterung hinzu, und schon werden die Objekte für Sie abgerufen. Noch besser: Wenn Sie ein übergeordnetes Objekt haben, beispielsweise einen Kunden, und zugehörige Datensätze abrufen möchten, beispielsweise Bestellungen, können Sie einfach die mit dem Kunden verknüpften Datensätze anfordern. Sie müssen keine zusätzliche Abfrage schreiben. Darüber hinaus werden alle Indizes verwaltet und Ihre Abfragen optimiert.
Dann gibt es mehrere Anwendungstypen. Sie möchten eine Website? Kein Problem. Sie möchten daraus eine Progressive Web App machen? Auch das können wir. Sie möchten eine native mobile Anwendung, die auf Android und iOS funktioniert? Kein Problem!
Als nächstes das Frontend. Aufgebaut auf dem Bootstrap-Framework Mendix ist mit einem grafischen, reaktiven Webseiten-Builder ausgestattet. Damit können Sie Anwendungen schnell erstellen und anpassen, ohne dass Sie fortgeschrittene Bastelarbeiten durchführen müssen. Sie finden auch viele vorgefertigte und gepflegte benutzerdefinierte Steuerelemente auf der Mendix Marktplatz. Sie haben immer die Möglichkeit, es mit SASS und benutzerdefinierten, steckbaren React-Widgets weiter zu erweitern.
Und wie steht es mit der Sicherheit? Die Sicherung einer Anwendung und einer Datenbank ist einer der wichtigsten Punkte bei der Entwicklung eines Systems. Mendix Sie können einen standardisierten Satz von Anmeldekontrollen erwarten, die das Risiko bei der Sicherung eines Systems ausschließen und mit lokalen Anmeldungen oder einem Single-Sign-On-Anbieter verwendet werden können. Sie verfügen außerdem über integrierte Benutzerrollen, mit denen Sie nicht nur den Zugriff auf Seiten, sondern auch die Datenbanksicherheit auf Zeilenebene steuern können. Dies bedeutet, dass jeder, der Ihre Anwendung verwendet, nur auf die Daten zugreifen und diese ändern kann, für die er die Berechtigung erhalten hat. Es besteht kein Risiko, Daten versehentlich Personen zugänglich zu machen, die sie nicht sehen sollten.
All dies und die Plattform selbst werden ständig überprüft und aktualisiert, um ihre Sicherheit zu gewährleisten.
Mit all diesen Tools zusammen können Sie davon ausgehen, dass sich Ihre Entwicklungsgeschwindigkeit um das Vierfache erhöht. Ich bin von der C#-Entwicklung auf Low-Code umgestiegen und in einigen Fällen würde ich behaupten, dass es sogar noch mehr war. Tatsächlich sind wir bei den meisten Projekten an den Punkt gekommen, an dem der Engpass bei der Anwendungserstellung eher User Stories als Entwicklungsressourcen waren.
Apropos: In die Plattform sind auch alle Tools für Projektmanagement und Zusammenarbeit integriert. Tools für die Zusammenarbeit mit anderen Entwicklern im Unternehmen. Zum Sammeln von Geschichten und Verwalten von Sprints. Das Feedback-Widget, mit dem Benutzer und Tester Screenshots machen und direkt Feedback senden können, das dann in Fehlerberichte oder Funktionsanfragen umgewandelt werden kann.
Fremde neue Welten erkunden …
„Codegeneratoren und Low-Code/No-Code-Systeme gibt es mittlerweile überall. Was macht Sie so besonders?“
In der Vergangenheit gab es mehrere Versuche, Code-Generatoren richtig zu machen, und zahlreiche Anwendungen, die versprachen, dass sie den Bedarf an Entwicklern überflüssig machen und wartungsfreundlichen Code für Sie generieren würden. Mendix ist anders, weil es kein Codegenerator ist. Wir versprechen nicht, aus dem, was Sie tun, Code zu produzieren. Alles, was Sie erstellen, wird als Metadatenmodell gespeichert und von einer dedizierten Plattform ausgeführt.
Diese Entkopplung von Plattform und Code bedeutet, dass beide unabhängig voneinander Updates erhalten können. Es besteht keine Abhängigkeit davon, dass beide synchron gehalten werden müssen. In einer durch Code generierten Anwendung müssen Sie immer sicherstellen, dass die von Ihnen erstellte Version in die entsprechende Version Ihrer Umgebung kompiliert wird und alle Updates auf beide angewendet werden müssen.
Auf einem interpreterbasierten System ist es viel einfacher, Entwicklern Verbesserungen anzubieten, ohne dass dies gravierende Auswirkungen auf die gehosteten Umgebungen hat. Außerdem ist das Erstellen und Testen von Apps viel schneller, da nicht jedes Mal, wenn Sie sie ausführen möchten, ein Codeblock generiert werden muss.
Auf der Suche nach neuem Leben und neuen Zivilisationen …
„Ich werde von StackOverflow und allen meinen Kollegen unterstützt. Was bringen Sie mit?“
Low-Code erlebt derzeit eine echte Renaissance und darum herum entwickelt sich eine lebendige Community, die auf den Prinzipien der Zusammenarbeit und Wiederverwendung aufbaut.
Sie finden viele benutzerdefinierte Module und steckbare Widgets auf unserem Marktplatz, die nicht nur von Mendix sondern auch unsere Gemeinschaft. Mendix Macher teilen gerne, was sie gebaut haben, und zeigen, was sie geschaffen haben.
Außerdem finden Sie in unseren Lernpfaden, Dokumentationen, Blogbeiträgen und Foren Antworten auf fast jede Frage, die Ihnen einfällt. Wenn Sie die Antwort nicht finden, erhalten Sie zweifellos eine Antwort, wenn Sie die Frage im Forum stellen, da es ständig überwacht wird von Mendix
Experten, die immer bereit sind, eine helfende Hand zu bieten. (Es schadet nicht, dass Sie verdienen können Mendix Punkte, indem Sie ein aktiver Teil unserer Community sind, die Sie dann eintauschen können gegen Mendix Swag wie T-Shirts, Kapuzenpullover und Flip-Flops!)
Gehen Sie mutig dorthin, wo Low-Code bisher keine Chance hatte!
„Ich habe Jahre damit verbracht, das Programmieren zu lernen. Soll ich es jetzt einfach aufgeben und Flussdiagramme zeichnen?“
Es sieht tatsächlich so aus, als würde man Flussdiagramme zeichnen, nicht wahr? Flussdiagramme werden verwendet, weil sie leicht nachvollziehbar sind und eine klare Möglichkeit darstellen, logische Systeme darzustellen. Was ist Code, wenn nicht der logische Ausdruck eines Systems?
Die Tools von Low-Code-Plattformen wie Mendix sind im Grunde Ausdrücke derselben Dinge, die Sie täglich beim Programmieren verwenden, wie Variablen, Objekte, IF-Anweisungen und Schleifen. Alle Techniken, die Sie beim Programmieren gelernt haben, gelten auch für Low Code. Es ist immer noch das Verständnis eines Entwicklers erforderlich, um ein Problem anzugehen und es durch einen Ausdruck logischer Anweisungen zu lösen.
Die gesamte Erfahrung, die Sie gesammelt haben, können Sie mithilfe visueller Blöcke zur Problemlösung nutzen, indem Sie schnell zum Kern des Problems gelangen. Sie können weniger Zeit mit den Grundlagen und dem Drumherum verbringen und sich mehr auf das wichtige Herzstück des Systems und die Funktionalität konzentrieren.
Wenn Sie wirklich nicht weiterkommen oder etwas Zusätzliches benötigen, können Sie es jederzeit mit Code oder einem steckbaren Widget erweitern.
Wenig Code und Erfolg.
Ich würde gerne glauben, dass dies einige der grundlegenden Fragen und Vorbehalte beantwortet hat, die professionelle Entwickler haben könnten, aber ich weiß sehr wohl, dass wir ein neugieriger und skeptischer Haufen sein können. Wenden Sie sich gerne über LinkedIn an uns, wenn Sie Fragen haben oder etwas klären möchten.
Wenn Sie aus diesem Blogbeitrag etwas mitnehmen, dann wäre es, dass Sie versuchen Mendix. Schreiben Sie es nicht gleich als ein weiteres Low-/No-Code-Produkt ab, das „einfach nicht funktioniert“. Probieren Sie es stattdessen aus.



