Die Chance auf bessere Anwendungsleistung
Die Anwendungsleistung ist einer der Schlüsselfaktoren für ein nahtloses und angenehmes Benutzererlebnis. In der heutigen schnelllebigen Umgebung haben Benutzer wenig Geduld für lange Ladezeiten und Verbindungsprobleme.
Während die Anwendungsleistung von vielen Faktoren abhängt, gibt es mehrere Mendix-spezifische sowie allgemeine Entwicklungsmuster, die befolgt werden können, um Leistungseinbußen zu vermeiden, sobald ein Mendix App wird bereitgestellt. Dies sind die hart erlernten Best Practices, die im Laufe der Jahre von den Mendix Gemeinschaft und an verschiedenen Orten widergespiegelt, wie Mendix Akademiekurse, Forum, Schulungen und andere Dokumente.
Wir sehen oft Mendix Entwicklungsteams verbringen viel Zeit mit der Schulung und Durchsetzung dieser Best Practices. Selbst dann erstellen neue Entwickler regelmäßig Anti-Pattern, die schwer oder zeitaufwändig zu erkennen sind. Die statistische Analyse von Tausenden von anonymisierten Mendix Apps zeigt, dass viele von ihnen erheblichen Spielraum haben, um Best Practices für die Leistung durchzusetzen. Beispielsweise 70 % der Mendix Apps haben eines oder mehrere der Anti-Pattern „Commit jedes geänderte Objekt innerhalb einer Schleife“ und etwa 45 % der Mendix Projekte verfügen über mehrere Mikroflüsse, die zur Verbesserung der Leistung in Nanoflüsse umgewandelt werden können.
Um das zu erwähnen, Mendix Entwicklungsteams nutzen kostspielige Peer-Review-Prozesse. Mendix Der Kunde erwähnte sogar ein Vier-Augen-Prinzip, bei dem ein Teammitglied die Arbeit jedes Entwicklers auf Anti-Patterns überprüfen sollte, bevor sie übernommen wird. Dies bedeutet einen erheblichen Überprüfungsaufwand, der in der Regel von teuren, erfahrenen Entwicklern geleistet wird.

Einführung des MxAssist Performance Bot
Was wäre, wenn wir diese Peer-Review oder zumindest einen Teil davon automatisieren könnten? Was wäre, wenn es einen virtuellen Co-Entwickler gäbe – anstelle Ihres vielbeschäftigten, erfahrenen Kollegen – der Ihnen über die Schulter schauen könnte, um diese Probleme zu erkennen und sogar zu beheben? Das ist es, was wir mit der Entwicklung von MxAssist Performance Bot anstreben. Mendix 9.
MxAssist Performance Bot ist ein intelligenter virtueller Co-Entwickler-Bot, der Sie bei der Verbesserung der Leistung Ihrer App unterstützt. Dies geschieht durch die Überprüfung Ihres Projektmodells anhand Mendix Entwicklung von Best Practices in Echtzeit, während Sie Ihre Anwendung erstellen in Mendix Studio Pro.
Es basiert auf der statistischen Analyse von Tausenden von anonymisierten Mendix Apps, um gängige Anti-Patterns und die bewährten Vorgehensweisen zu erlernen, die von Mendix Experten-Services und Mendix Most Valuable Partners (MVPs) bei der Entwicklung von Microflows, Domänenmodellen, Seiten usw.
Ronald Catersels, ein Mendix MVP bei Daywize glaubt: „Der Vorteil dieser Art von Tools ist, dass Sie Ihre Entwickler bereits weiterbilden, denn ein Junior-Entwickler wird wahrscheinlich nach der Entwicklung eines Projekts den Performance-Bot durchgehen und sich die Statistiken zu seiner geleisteten Arbeit ansehen. Ich denke, Junior-Modellierer würden so etwas wirklich lieben … es ist wirklich nützlich, ihnen zu helfen.“
Wie funktioniert MxAssist Performance Bot?
Im Allgemeinen werden drei Arten bzw. Stufen der Unterstützung angeboten:

Die erste und vielleicht wichtigste Hilfe ist die Erkennung. Sobald der Bot ausgelöst wird, überprüft er das Projektmodell und identifiziert Leistungs-Antimuster oder, mit anderen Worten, die verpassten Leistungs-Best Practices. Um es einfacher zu machen, ermöglicht der Bot dem Entwickler, das spezifische Dokument/Element, das das Antimuster enthält, sowie alle Dokumente/Elemente, die von diesem Antimuster betroffen sind, zu lokalisieren und dorthin zu navigieren. Auf diese Weise kann der Entwickler Probleme schnell finden und tief in die Grundursachen und betroffenen Bereiche eintauchen.
Während unseres privaten Betatests nutzten Kunden den Bot, um einige große Mendix Projekte, die sie über mehrere Jahre aufgebaut hatten. Der Bot entdeckte Hunderte fehlender Best-Practice-Fälle, in einem Projekt sogar Tausende!
Ronald Catersels, ein Mendix MVP bei Daywize hatte Folgendes zu sagen:
„Was mir am Performance-Bot am besten gefällt, ist die Ansicht und dass er mir einen Überblick über alle Dinge geben konnte, die ich mir laut seiner Aussage ansehen muss. Das war wirklich hilfreich, denn unser Modell wurde in Mendix 2.3 und ist seitdem migriert auf Mendix 3, 4, 5, 6, 7, 8 und 9!“

Was nun, wenn der Bot all diese Probleme auflistet? Dann könnten Entwickler, insbesondere unerfahrene, anfangen zu denken: „Warum sind diese Fälle überhaupt ein Anti-Pattern? Und was sollten wir dagegen tun?“
Wir sind der Meinung, dass mit jeder Erkennung (Diagnose) eine gute Erklärung und Empfehlung (Rezept) einhergehen sollte. Deshalb erklärt der MxAssist Performance Bot ein erkanntes Problem zusammen mit seinen möglichen Auswirkungen und bietet eine Schritt-für-Schritt-Anleitung zur Behebung des Problems.
Ivo Sturm, ein Mendix MVP bei Firstconsulting meint, die Erklärung „… hilft, die Empfehlung zu verstehen, ist hilfreich für Junior-Entwickler und bietet viel Kontext.“
Ronald Catersels, ein Mendix MVP bei Daywize findet es auch sehr interessant: „Was mir wirklich gut gefallen hat, war, dass ich einfach auf den Link im Popup klicken konnte und dann sofort zur Dokumentation weitergeleitet wurde und was Sie darüber geschrieben haben und die Erklärung, warum diese Probleme hervorgehoben werden. Das ist wirklich nett!“

Was wäre, wenn der Bot das Problem sogar für Sie beheben könnte, während Sie eine Tasse Kaffee trinken? Der MxAssist Performance Bot kann nach Bestätigung durch den Entwickler in einigen Fällen automatisch die Best Practice implementieren und das Problem durch Refactoring des Projektmodells beheben.

Ein weiteres spannendes Feature ist das Konfigurationsfenster, in dem Sie ein Modul oder Dokument auswählen und anhand einer bestimmten Best Practice prüfen können. Jede Kombination ist möglich! Nehmen wir an, ein Entwickler möchte einen Microflow anhand einer bestimmten Best Practice prüfen. Er navigiert zum Abschnitt „Microflows“, klickt, um den betreffenden Microflow zu prüfen, und wählt dann eine bestimmte Microflow-Best Practice aus, die ihn interessiert. Nachdem er auf „OK“ geklickt hat, kehrt er zum Performance Bot-Fenster zurück und klickt auf „Prüfen“, um mögliche Anti-Pattern für den ausgewählten Microflow und die Best Practice in der Konfiguration zu erkennen.
Mit Funktionen wie dem Konfigurationsfenster können Sie den Bot ganz nach Ihren Wünschen verwenden. So können Sie die bestmögliche App erstellen und gleichzeitig den Zeitaufwand für nachträgliche Korrekturen und Debugging verringern.

Wann sollten Sie MxAssist Performance Bot in Ihrem App-Entwicklungszyklus verwenden?
Sie fragen sich vielleicht, wann und wie Sie den Bot in Ihrem Anwendungsentwicklungsprozess einsetzen sollten. Natürlich liegt es an Ihren Teams. Hier erfahren Sie, wie einige der Mendix Entwickler denken darüber nach:
Mohammed Siddiqui, ein Mendix MVP bei Auraq sagte uns: „Wenn ich es tatsächlich in einem Projekt verwende, würde ich vor jedem Commit, wenn ich die Funktionalität fertiggestellt habe, einfach einen kurzen Test durchführen, um zu sehen, ob es etwas gibt, das verbessert werden könnte. Und wenn ja, würde ich einfach diese Änderungen vornehmen und es dann committen. Aber vielleicht nicht bei jedem Commit, weil ich ziemlich oft committe, vielleicht nach jeder Story oder nach jeder Funktionalität.“
Ibrahim, ein Mendix Entwickler bei Emagiz, meint, dass die Verwendung von MxAssist Performance Bot „… Teil der Definition von „Erledigt“ sein sollte. Wir können einen Schritt hinzufügen, um PB zu verwenden, bevor Storys in „Erledigt“ übertragen werden. Die Überprüfung mit Performance Bot wird Teil der Checkliste sein, die in unserem Team verwendet werden könnte.“
Tudor Neacsu, ein Mendix Entwickler bei Capegroep, vertritt eine ähnliche Ansicht: „Wenn meine Story fertig ist und ich denke, dass ich für eine Überprüfung bereit bin, würde ich zuerst den Performance-Bot verwenden und dann um eine Überprüfung bitten, wenn vom Performance-Bot nichts kommt … Ich denke, es sollte im Sprint eine Story geben, um sie durchzugehen, zu untersuchen und dann zu beheben.“
Welchen Mehrwert kann MxAssist Performance Bot bieten?
Erstens kann der MxAssist Performance Bot Teams effizienter und produktiver machen, indem er automatisch Leistungs-Antimuster erkennt und den Bedarf an Peer Reviews reduziert, während er neue Mendix Entwickler über Best Practices.
Mohammed Siddiqui, ein Mendix MVP bei Auraq meint: „Insgesamt wird dies das Leben der Entwickler einfacher machen, insbesondere der Junior-Entwickler, aber auch der Senior-Entwickler und Experten.“
Zweitens kann der MxAssist Performance Bot die Leistung und Qualität von Mendix Apps. Wir haben einige Messungen zur Leistungsverbesserung durchgeführt mit dem Gatling-Rahmen gegenüber Mendix zur Laufzeit durch die Ausführung einer echten Mendix Projekt-App. Wir sehen beispielsweise übermäßige Vererbungsebenen für Entitäten, ein vom Bot erkanntes Antimuster, das möglicherweise zu einer erheblichen Leistungsminderung führt – bis zu 25 % pro Spezialisierung.

Wie Ivo Sturm, ein Mendix MVP bei Firstconsulting drückt es so aus: MxAssist Performance Bot kann „als Lerntool für Juniorentwickler und als Erinnerungshilfe für erfahrene Entwickler“ verwendet werden.
Warum probierst du es nicht aus? Das nächste Mal, wenn du modellierst in StudioPro 9, führen Sie den MxAssist Performance Bot aus. Er könnte Ihnen ein Lächeln ins Gesicht zaubern. 🙂