Zum Inhalt springen

Best Practices für den Jitterbit App Builder

Einführung

App Builder-Anwendungen können in Größe und Komplexität wachsen und oft die Arbeit mehrerer Entwickler über viele Monate oder Jahre erfordern. Diese Best Practices helfen Ihnen, diese Komplexität zu managen, Ihre Apps einfacher zu warten und sie mit optimaler Leistung am Laufen zu halten.

Der Lebenszyklus der App-Entwicklung

Bauen Sie Ihre Apps, indem Sie die folgenden Aufgaben iterativ durchlaufen:

  1. Entdecken

  2. Modellieren

  3. Bauen und zeigen

  4. Verfeinern und testen

  5. Bereitstellen

  6. Warten

1. Entdecken: Anforderungen sammeln

Bevor Sie mit dem Bau einer App beginnen, sollten Sie eine Skizze davon haben, was sie tun wird und wer sie nutzen wird. Hier sind einige Ideen, wie Sie diese Informationen erhalten können:

  • Zuhören und lernen: Organisieren Sie persönliche Workshops und Design-Sitzungen, um zu verstehen, wer die App nutzen wird und was sie tun sollte.

  • Wichtige Informationen identifizieren: Sammeln und dokumentieren Sie die Kernanforderungen für Daten, Benutzer-Personas, Geschäftsprozesse sowie Zugriffs- und Sicherheitsanforderungen.

  • Annahmen vermeiden: Stellen Sie Fragen, um den App-Nutzer dazu zu bringen, kritisch über das nachzudenken, was er von Ihnen verlangt. Fordern Sie die Begründung und Logik hinter den Geschäftsprozessen Ihrer Nutzer heraus.

  • Verständnis bestätigen: Lesen Sie Ihr Verständnis der Anforderungen mit Ihren App-Nutzern und anderen Stakeholdern zurück. Verwenden Sie Flussdiagramme und andere visuelle Werkzeuge, um technische Bedürfnisse besser mit nicht-technischen Nutzern zu kommunizieren.

2. Modellieren: Das Fundament entwerfen

Ein solides Datenmodell ist das Fundament einer erfolgreichen Anwendung. Seien Sie bereit, Zeit in diesen Schritt zu investieren, um später erheblichen Nacharbeit zu vermeiden.

  • Erstellen Sie ein Entity-Relationship-Diagramm (ERD): Ein ERD dokumentiert Ihr Datenmodell und macht es einfach, Tabellenstrukturen und Beziehungen zu verstehen. Es bietet eine Whiteboard-ähnliche Erfahrung, bei der Sie Änderungen leicht vornehmen können, bevor Sie sie in die Datenbank übernehmen. Das folgende ist ein Beispiel für ein einfaches ERD:
    erDiagram
     Student {
         UUID student_id PK "Student ID"
         string name
     }
       Course {
         UUID course_id PK "Course ID"
         string title
     }
       Enrollment {
         UUID enrollment_id PK "Enrollment ID"
         UUID student_id FK "Student ID"
         UUID course_id FK "Course ID"
         string grade
     }
     Student ||--o{ Enrollment : "takes"
     Course ||--o{ Enrollment : "has"
  • Gestalten Sie grundlegende Elemente: Neben dem Datenmodell erstellen Sie Flussdiagramme, Swimlane-Diagramme, Wireframes und Sitemaps, um das Anwendungsdesign zu konkretisieren.

3. Erstellen und demonstrieren: Iterative Entwicklung

Mit einem soliden Design können Sie mit dem Bau der Anwendung beginnen.

  • In Schichten bauen: Entwickeln Sie Ihre App in klaren Schichten: Daten, Geschäftslogik und Benutzeroberfläche. Beginnen Sie mit der Datenschicht.

  • Definieren Sie ein Minimal Viable Product (MVP): Definieren und listen Sie die Kernelemente der App auf und holen Sie die Genehmigung der App-Nutzer ein, bevor Sie mit dem Hauptbau beginnen.

  • Früh und oft demonstrieren: Planen Sie regelmäßige Demonstrationen der funktionierenden Teile der App. Dies hilft den Nutzern, zu verstehen, was möglich ist, und ihre Erwartungen und Anforderungen anzupassen.

4. Verfeinern und testen: Feedback und QA einbeziehen

  • Verfeinern: Integrieren Sie Feedback aus den Demoversionen, um die Anwendung zu verfeinern und detailliertere UI/UX-Designmerkmale hinzuzufügen.

  • Testen: Gründliches Testen ist wichtig.

    • Interne QA: Führen Sie immer zuerst interne Tests durch, um Fehler zu erkennen.

    • Endbenutzer-UAT: Lassen Sie die App-Nutzer die Benutzerakzeptanztests durchführen. Sie kennen den Geschäftsprozess am besten und können wertvolles Feedback geben.

    • Verwenden Sie realistische Daten: Verwenden Sie realistische Testdaten, um sicherzustellen, dass Funktionen so getestet werden, wie Endbenutzer sie verwenden würden.

    • Positive und negative Tests: Testen Sie sowohl erwartete Ergebnisse (positive Tests) als auch unerwartete Verhaltensweisen (negative Tests).

5. Bereitstellen: Release-Management

  • Paketieren und installieren: Verwenden Sie das Release Management von App Builder, um Schemaänderungen und Anwendungsupdates zwischen Umgebungen zu fördern. Dies stellt sicher, dass Änderungen in der richtigen Reihenfolge repliziert werden und das Risiko menschlicher Fehler verringert wird.

  • Erstveröffentlichung: Das MVP ist live in der Produktion. Die Entwicklung wird typischerweise für einen kurzen Zeitraum eingefroren, um sich auf die Produktionsunterstützung zu konzentrieren.

  • Zukünftige Veröffentlichungen: Der Entwicklungsprozess wird für neue Funktionen und zukünftige Veröffentlichungen neu gestartet.

6. Dokumentation und Wartung

  • Dokumentieren Sie den Geschäftsprozess: Dies ist entscheidend für den Wissenstransfer, die Einarbeitung neuer Entwickler und für die zukünftige Wartung.

  • Löschen Sie ungenutzte Objekte: Löschen Sie regelmäßig ungenutzte Tabellen, Regeln und Seiten, um die Anwendungscomplexität zu reduzieren und die Arbeit zu erleichtern.

  • Lassen Sie keine Dinge kaputt: Beenden Sie Funktionen, an denen Sie arbeiten. Eine kaputte oder unvollendete Funktion sorgt für Verwirrung bei anderen Entwicklern und ist später schwerer abzuschließen.

Datenschicht

Datenmodellierung

  • Namenskonventionen:

    • Verwenden Sie eindeutige, singuläre und beschreibende Substantive für Tabellen (zum Beispiel Customer, Order). Vermeiden Sie es, diese wo möglich abzukürzen.

    • Verwenden Sie UUIDs für alle Primär- und Fremdschlüssel. Eine gute Namenskonvention ist TableNameID (zum Beispiel CustomerID).

    • Präfixieren Sie boolesche Felder mit "is" (zum Beispiel isActive).

    • Geschäftsregeln neigen dazu, sich zu vermehren. Verwenden Sie Namenskonventionen für Geschäftsregeln, um den Überblick zu behalten.

  • Schlüssel und Indizierung:

    • Einzelteil-Primärschlüssel: Verwenden Sie Einzelteil-UUID-Primärschlüssel. Dies vereinfacht das Datenmodell und unterstützt automatisch die vollständigen Auditfähigkeiten des App Builders.

    • Indexieren Sie Spalten: Indizieren Sie alle Fremdschlüssel. Indizieren Sie auch alle Felder, die häufig zum Sortieren, Filtern oder Verknüpfen von Daten verwendet werden, um die Leistung zu optimieren.

  • Beziehungen:

    • Verwenden Sie Brücken- oder Verknüpfungstabellen, um viele-zu-viele-Beziehungen zu verwalten. Vermeiden Sie flache Designs (das Hinzufügen mehrerer Spalten für verwandte Daten zu einer einzigen Tabelle), da diese nicht skalierbar sind.

Tabellendesign

  • Konfigurierbare Daten: Gestalten Sie Ihr Datenmodell so, dass es konfigurierbar ist. Zum Beispiel:

    • Werte, die sich im Laufe der Zeit ändern könnten (wie Status), sollten in separaten Nachschlagetabellen gespeichert werden, anstatt hartkodiert in der Geschäftslogik.

    • Für zeitbasierte Daten (wie Preise) verwenden Sie eine Tabelle mit niedrigeren Ebenen mit effektiven Datumsbereichen.

  • Aktivieren Sie die Auditierung: Aktivieren Sie Audit Lite oder Full Audit für alle Tabellen, um Datenänderungen automatisch für die Historie und Compliance zu verfolgen.

  • Tabellennutzung definieren: Definieren Sie beim Erstellen von Tabellen deren Nutzungstyp (Entwickler-, Shared- oder Benutzerdaten). Dies steuert, wie Daten zwischen Umgebungen gefördert werden, und ist entscheidend für das Release-Management.

  • Konsistente Werte: Seien Sie konsistent in der Verwendung von Werten wie NULL. Ein NULL-Wert sollte throughout your data model eine klare und konsistente Bedeutung haben.

Nachschlage- und Parametertabellen

  • Nachschlagetabellen: Verwenden Sie Nachschlagetabellen, um Listen von Werten zu verwalten. Sie sollten Folgendes enthalten:

    • Titel: Ein menschenlesbarer Anzeigewert. Der App Builder verwendet den Nutzungstyp Titel, um automatisch Listensteuerelemente zu generieren.

    • Enum: Ein statischer, menschenlesbarer enumerierter Wert. Die Verwendung von Enums in der Geschäftslogik ist viel klarer als die Referenzierung einer rohen UUID.

    • IsActive: Ein Boolean, um zu steuern, welche Werte in der Benutzeroberfläche zur Auswahl stehen.

    • Index: Eine Ganzzahlspalte zur Steuerung der standardmäßigen Sortierreihenfolge der Liste.

  • Parametertabelle: Jede Anwendung sollte eine Parametertabelle haben. Dies ist eine einzigartige Tabelle, die nur einen Datensatz enthält und verwendet wird, um globale Anwendungseinstellungen und Konstanten zu speichern. Dies vermeidet das Hard-Coding von Werten und ermöglicht es Administratoren, diese über die Benutzeroberfläche zu ändern.

Datenverbindungen

  • Sichere Verbindungen: Konfigurieren Sie sichere Verbindungen zu externen Datenquellen.

  • Verwenden Sie App Builder-Connectoren: Wenn Sie Daten aus der Datenbank einer anderen Anwendung auf demselben Server verwenden müssen, verwenden Sie einen App Builder Connector. Dies reduziert die Bereitstellungsabhängigkeiten, da Sie die logischen und physischen Modelle beider Datenbanken nicht gleichzeitig bereitstellen müssen.

Geschäftslogik

Regelentwurf

  • Kennen Sie die verfügbaren Regeltypen: Verstehen Sie, wann Sie Geschäftsobjekte (zum Anzeigen von Daten), Validierungen (zum Überprüfen von Daten) und CRUD-Regeln (zum Ändern von Daten) verwenden sollten.

  • Regeln einfach halten: Vereinfachen Sie, wie Objekte und Regeln erstellt werden. Verwenden Sie wiederverwendbare Unterabfragen, wo immer möglich, um logische Duplikate zu vermeiden.

  • Datengetriebene Logik:

    • Mehr konfigurieren, weniger codieren: Speichern Sie änderbare Werte in Konfigurationstabellen, nicht direkt in Regeln. Dies ermöglicht einfache Aktualisierungen über die Benutzeroberfläche, ohne dass ein Entwickler erforderlich ist.

    • Logik über das Datenmodell durchsetzen: Bauen Sie Logik basierend auf der Tabellenkonfiguration auf, anstatt Werte hart zu codieren. Verwenden Sie beispielsweise ein boolesches Feld in einer Tabelle, um einen Prozess zu steuern, anstatt eine IIF-Anweisung mit einem hart codierten Status.

  • Funktionen effizient nutzen: Verwenden Sie die integrierten mvSQL-Funktionen von App Builder für gängige Aufgaben.

Namenskonventionen für Geschäftsregeln

Eine konsistente Namenskonvention für Geschäftsregeln hilft, komplexe Apps zu pflegen. Verwenden Sie das folgende allgemeine Muster: Ziel (Zweck oder Untertyp) Beschreiber – Optionaler Filter.

Regeltyp Namensmuster Beispiel
Geschäftliches Objekt (Ereignisse) {{Ziel}} ({{Beschreiber}}) Kunde (Details)
Geschäftliches Objekt (Berichterstattung) {{Ziel}} ({{Randfall-Untertyp}}) {{Beschreiber}} Kunde (Diagramm) Verkaufsentwicklung
Liste {{Ziel}} (Liste) {{Optionaler Beschreiber}} Kunde (Liste)
Unterabfrage {{Ziel}} (Unterabfrage) {{Beschreiber}} Kunde (Unterabfrage) Suchbegriff verketten
CRUD (Einfügen/Erstellen) {{Ziel}} ({{Untertyp}}) {{Beschreiber|Quelle}} Kunde (Einfügen) Salesforce
CRUD (Aktualisieren) {{Ziel}} ({{Untertyp}}) {{Beschreiber|Feldnamen}} Kunde (Aktualisieren) Stehende ID
CRUD (Löschen) {{Ziel}} ({{Untertyp}}) {{Beschreiber}} Kunde (Löschen) Keine Aktivität
Standard {{Ziel}} (Standard) {{Feldnamen}} – {{Quelltabelle}} Kunde (Standard) KontoStatusID
Leistungs-SQL {{Ziel}} {{SQL-Funktion}} {{Beschreiber}} Kunde (Gruppieren nach) Land, Bundesland
Validierung {{Ziel}} (Validierung) {{Beschreiber}} Kunde (Validierung) Name zu kurz
Sichtbarkeit {{Ziel}} (Sichtbarkeit) {{Beschreiber|Quelltabelle}} Kunde (Sichtbarkeit) Kundentyp
Brücke {{Ziel}} (Brücke) {{Beschreibung}} Bestellung (Brücke) Fehlgeschlagen
Reichweite {{Ziel}} (Reichweite) {{Beschreiber|Quelltabelle}} Kunde (Reichweite) Kundentyp
Webhook {{Ziel}} (Webhook) {{Beschreiber}} Kunde (Webhook) Extern

Abfrageoptimierung

  • Nur benötigte Spalten auswählen: Schließen Sie nur die Spalten ein, die Sie in Ihren Regeln benötigen.

  • Nach Schlüsseln verknüpfen: Verknüpfen Sie Tabellen mithilfe ihrer UUID-Schlüssel für die beste Leistung.

  • Intelligente Verknüpfungen: Verwenden Sie den geeigneten Verknüpfungstyp für Ihre Bedürfnisse. Bevorzugen Sie die Verwendung eines einzelnen Typs von äußeren Verknüpfungen (wie LEFT JOIN) in einer Abfrage.

  • WHERE-Klauseln optimieren: Vermeiden Sie die Verwendung von Ausdrücken auf beiden Seiten eines WHERE-Klauseloperators, da dies die Leistung negativ beeinflussen kann.

  • Union auf der höchsten Ebene: Verwenden Sie UNION auf der höchsten möglichen Ebene in Ihrer Abfrage, wenn Sie Datensätze kombinieren, um eine bessere Leistung zu erzielen.

Ereignisse und Aktionen

  • Ereignisse auf Tabellenebene registrieren: Registrieren Sie, wann immer möglich, Ereignisse (wie Validierungen und Aktionen) auf Tabellenebene. Dies ermöglicht es anderen Geschäftsregeln, diese Logik zu erben und bietet einen einzigen Ort zur Verwaltung.

  • Aktionen verketten: Verwenden Sie Erfolgs- und Fehlermeldungsaktionen, um mehrere Regeln und Validierungen für komplexe "wenn dies, dann das"-Workflows zu verknüpfen.

  • Trigger verstehen: Wissen Sie, was ein Ereignis auslöst (eine Systemaktion oder eine Benutzeraktion).

Validierungen

  • Datenqualität durchsetzen: Verwenden Sie Validierungen, um sicherzustellen, dass die Daten korrekt sind, bevor sie gespeichert werden.

  • Gestaffelte Durchsetzung: Wenden Sie Validierungen auf der Ebene der Geschäftslogik oder der Tabelle an, nicht nur in der Benutzeroberfläche, um die Datenintegrität sicherzustellen.

UI/UX

Ein gutes UI/UX-Design ist entscheidend für den Erfolg einer Anwendung. Eine gut gestaltete Benutzeroberfläche sollte intuitiv, effizient und angenehm für den Benutzer der App sein.

Grundsätze auf hoher Ebene

  • Funktionalität zuerst: Konzentrieren Sie sich darauf, eine funktionale Anwendung zu erstellen, bevor Sie das visuelle Design verfeinern. Geschäftslogik und Datenstrukturen können sich während der Entwicklung ändern, was eine Überarbeitung vorzeitiger UI-Arbeiten erforderlich machen könnte.

  • Konsistenz ist der Schlüssel: Alle Elemente, von Schaltflächen und Schriftarten bis hin zu Farben und Layout, sollten in der gesamten Anwendung konsistent sein. Dies schafft eine angenehme und vorhersehbare Erfahrung für die Benutzer.

  • Halten Sie es sauber:

    • Seien Sie großzügig mit Platz: Drücken Sie Elemente nicht in die Benutzeroberfläche. Angemessene Abstände reduzieren Unordnung und kognitive Belastung, wodurch Informationen leichter verdaulich werden.

    • Verwenden Sie subtile Gestaltung: Nutzen Sie eine saubere, moderne Gestaltung. Zum Beispiel sollten Schatten leicht und subtil sein, nicht dunkel und überwältigend (es sei denn, das ist Ihre Unternehmensstilwahl).

    • Löschen Sie ungenutzte Objekte: Entfernen Sie ungenutzte Seiten und andere Objekte, um den App-Overhead zu reduzieren und die Wartung zu erleichtern.

Layout und Navigation

  • Wählen Sie die richtige Navigation:

    • Die seitliche Navigation ist in der Regel die beste Wahl, da sie reaktionsschnell, skalierbar ist und eine Ordner-/Baumstruktur klar anzeigen kann. Sie eignet sich am besten für Apps mit vielen Navigationselementen.

    • Die obere Navigation funktioniert gut für Apps mit sehr wenigen obersten Elementen, bei denen der Bildschirmplatz eine Priorität ist. Sie eignet sich nicht gut für responsives Design oder tiefe Untermenüs.

  • Etablieren Sie eine visuelle Hierarchie: Verwenden Sie Größe, Gewicht und Farbe, um das Auge des App-Nutzers auf die wichtigsten Informationen auf der Seite zu lenken. Panelüberschriften, Unterüberschriften und Inhalte sollten deutlich unterscheidbar sein.

  • Vereinfachen Sie Aktionen: Geben Sie Ihren App-Nutzern einen einzigen, klaren Ort, um eine bestimmte Aktion auszuführen. Vermeiden Sie es, mehrere Möglichkeiten anzubieten, um dasselbe zu tun.

  • Organisieren Sie Inhalte:

    • Inhalte gruppieren: Organisieren Sie komplexe Bildschirme mit logischen Gruppen oder Tabs.

    • Panels verlinken: Verbinden Sie UI-Panels, sodass die Auswahl eines Elements in einem automatisch verwandte Informationen in einem anderen aktualisiert.

    • Pop-ups korrekt verwenden: Verwenden Sie Pop-up-Fenster für Details oder Dateneingaben. Zeigen Sie niemals mehrere Pop-ups übereinander gestapelt an.

Benutzereingabe und Interaktion

  • Gestalten Sie klare Schaltflächen:

    • Aktionsorientierter Text: Verwenden Sie Aktionsverben auf Schaltflächen (zum Beispiel "Bericht erstellen", "Für später speichern") anstelle von generischem Text wie "Ja" oder "Nein".

    • Schaltflächenhierarchie: Schaffen Sie einen klaren visuellen Unterschied zwischen primären Aktionen (feste, kräftige Farben) und sekundären Aktionen (umrandet oder weniger auffällig).

  • Hilfreiche Fehlermeldungen bereitstellen: Fehlermeldungen sollten einfache Sprache verwenden, das Problem klar identifizieren und konstruktiv eine Lösung vorschlagen. Verlassen Sie sich nicht ausschließlich auf Farben, um einen Fehler anzuzeigen.

  • Symbole effektiv nutzen:

    • Verwenden Sie Beschriftungen mit erkennbaren Symbolen: Verwenden Sie bekannte Symbole (wie eine Lupe für die Suche) in Kombination mit aussagekräftigen Textbeschriftungen. Viele Symbole werden von den Nutzern der App nicht allein verstanden.

    • Konsistenten Stil beibehalten: Verwenden Sie Symbole, die denselben visuellen Stil teilen (zum Beispiel Füllung, Strich und Größe).

  • Daten Eingabe verbessern:

    • Pflichtfelder kennzeichnen: Deutlich anzeigen, welche Felder obligatorisch sind.

    • Listensteuerungen verwenden: Vordefinierte Optionen für die Dateneingabe anbieten, um Konsistenz zu gewährleisten.

  • Den Live-Designer verwenden: Echtzeit-Anpassungen der Benutzeroberfläche direkt in der Anwendung vornehmen, um das Benutzererlebnis schnell zu verfeinern.

Typografie und Farbe

  • Lesbare, konsistente Schriftarten verwenden:

    • Schriftfamilien begrenzen: Verwenden Sie nicht mehr als zwei Schriftfamilien. Eine ist oft ausreichend.

    • Schriftpaarungen berücksichtigen: Wenn zwei Schriftarten verwendet werden, eine für Überschriften und eine andere für Fließtext verwenden.

    • Vermeiden Sie Großbuchstaben: Verwenden Sie keine Großbuchstaben für Fließtext, da dieser langsamer zu lesen ist. Sie sollten nur für kurze Warnungen oder große Überschriften verwendet werden.

  • Eine klare Farbpalette verwenden:

    • Farben begrenzen: Streben Sie 3 bis 4 Farben an: eine dominante, eine sekundäre und eine oder zwei Akzentfarben.

    • Semantische Farben verwenden: Verwenden Sie allgemein assoziierte Farben, um Informationen über den Zustand bereitzustellen (zum Beispiel Rot für eine Warnung, Grün für Erfolg, Grau für einen deaktivierten Button).

Gestaltung für Barrierefreiheit

  • Hohe Farbkontraste sicherstellen: Der Text sollte ein hohes Kontrastverhältnis zu seinem Hintergrund haben (mindestens 4.5:1 für normalen Text).

  • Für Tastaturnavigation gestalten: Sicherstellen, dass alle Formulare und interaktiven Elemente für App-Nutzer funktionieren, die nur mit der Tastatur navigieren können.

  • Sicherstellen, dass klickbare Elemente groß genug sind: Auf mobilen Geräten und Touchscreens sicherstellen, dass Schaltflächen, Links und andere klickbare Elemente groß genug sind, um leicht verwendet zu werden. Eine Mindestgröße von 32x32 Pixeln ist ein guter Ausgangspunkt.

  • Testen auf echten mobilen Geräten: Der beste Weg, um zu bestätigen, dass Ihre Anwendung wirklich responsiv und benutzbar ist, besteht darin, sie auf tatsächlichen mobilen Geräten zu testen, nicht nur in Browser-Emulatoren.

Umgebungen und Bereitstellungen

Der 3-stufige Ansatz

Entwickeln Sie Ihre Apps in App Builder Instanzen in mindestens diesen drei Umgebungen:

  • DEV (Entwicklung): Diese Umgebung ermöglicht es Entwicklern, an neuen Funktionen zu arbeiten, ohne die Benutzer zu beeinträchtigen. Alle Änderungen und Entwicklungsanstrengungen sollten hier stattfinden.

  • QA (Qualitätssicherung): Bietet den App-Benutzern eine Umgebung zum Testen, ohne die Entwickler oder Produktionsdaten zu beeinträchtigen.

  • PROD (Produktion): Die Live-Umgebung für App-Benutzer.

Release- und Änderungsmanagement

  • Ändern Sie niemals direkt QA oder PROD: Arbeiten Sie immer in DEV, befördern Sie zu QA zum Testen und befördern Sie dann nach QA-Abnahme zu PROD. Änderungen direkt in höheren Umgebungen vorzunehmen, kann Ihre Systeme aus dem Gleichgewicht bringen und zukünftige Bereitstellungen gefährden.

  • Verwenden Sie das Release-Management von App Builder: Dies stellt sicher, dass alle Änderungen, die Sie in DEV vorgenommen haben, in der gleichen Reihenfolge auf QA und PROD repliziert werden, um menschliche Fehler zu vermeiden.

  • Datenbanken sichern: Machen Sie immer ein Datenbank-Backup Ihrer Umgebungen vor einer App-Bereitstellung oder einem Upgrade der App Builder-Version.

  • Beschreibende Änderungsprotokolle: Schließen Sie Änderungsmanagementprotokolle häufig und seien Sie beschreibend, was sich geändert hat. Dies erleichtert es Ihnen, historische Änderungen zu überprüfen, falls Sie ein Problem beheben müssen.

  • Planen Sie Bereitstellungen: Seien Sie methodisch, wenn Sie Apps in die Produktion verschieben, und setzen Sie im Voraus Erwartungen. Planen Sie Bereitstellungen nach Geschäftsschluss, um die Auswirkungen zu minimieren.

Anwendungssicherheit

  • Verwenden Sie Sicherheitsanbieter: Verwenden Sie wann immer möglich einen Sicherheitsanbieter zur Authentifizierung. Weisen Sie keine Sicherheitsrechte manuell zu.

  • Rollenbasierter Zugriff (RBAC): Weisen Sie Rollen an App-Benutzer zu, um den Zugriff auf Seiten und Aktionen zu steuern. UI-Elemente können so eingestellt werden, dass sie sich entsprechend der Rolle eines App-Benutzers anpassen.

  • Effizientes Gruppenmanagement: Organisieren Sie App-Nutzer in Gruppen, um das Berechtigungsmanagement zu vereinfachen.

  • Sicherheit auf Zeilenebene: Verwenden Sie Reichweitenregeln, um unterschiedlichen App-Nutzern auf demselben Bildschirm verschiedene Datensätze anzuzeigen.

  • SSO integrieren: Nutzen Sie Single Sign-On (SSO) für eine vereinfachte und sichere Benutzerauthentifizierung.

Benachrichtigungssysteme

  • Bidirektionale Benachrichtigungen: Gestalten Sie Benachrichtigungen so, dass App-Nutzer mit Optionen antworten können, die Anwendungsdaten aktualisieren.

  • Personalisierte Inhalte: Verwenden Sie dynamische Daten in Nachrichten für personalisierte Benachrichtigungen.

  • Link zu öffentlichen Seiten: Stellen Sie sicher, dass alle Anwendungsseiten, die von einer Benachrichtigung verlinkt sind, öffentlich zugänglich sind.

  • Konsistente Auslöser: Registrieren Sie Benachrichtigungen auf Tabellenebene für zuverlässige Auslösungen.

  • Benutzerkonfigurierbare Nachrichten: Ermöglichen Sie App-Nutzern, den Benachrichtigungstext über die Benutzeroberfläche zu ändern. Dies reduziert den Bedarf an Entwicklerbeteiligung für einfache Textänderungen.