Heim > Web-Frontend > js-Tutorial > Über einfache Formulare hinaus: Warum Formulare auf Unternehmensebene eine Herausforderung bleiben (und wie FormML sie löst)

Über einfache Formulare hinaus: Warum Formulare auf Unternehmensebene eine Herausforderung bleiben (und wie FormML sie löst)

Barbara Streisand
Freigeben: 2024-12-05 22:46:10
Original
573 Leute haben es durchsucht

Beyond Basic Forms: Why Enterprise-Level Forms Remain a Challenge (and How FormML Solves It)

Formulare gibt es überall in der digitalen Welt, von einfachen Newsletter-Anmeldungen bis hin zu komplexen Unternehmensanwendungen. Während grundlegende Formulare problemlos mit beliebten Tools wie Formik oder React Hook Form gehandhabt werden können, stellen Formulare auf Unternehmensebene weiterhin erhebliche Herausforderungen dar, die bestehende Lösungen nur schwer bewältigen können.

Was sind Enterprise-Level-Formulare?

Enterprise-Level-Formulare gehen über einfache Eingabefelder und Absenden-Schaltflächen hinaus. Sie sind das Rückgrat komplexer Arbeitsabläufe in Branchen wie Finanzen, Bankwesen und Versicherungen. Diese Formen müssen erweiterte Funktionalität, Skalierbarkeit und Benutzererfahrung in Einklang bringen, sodass sie sich grundlegend von einfacheren Gegenstücken unterscheiden.

Beispiele für Enterprise-Level-Formulare

  • Kreditanträge: Komplexe Formulare, die dynamisch Zinssätze, monatliche Zahlungen und Schulden-Einkommens-Verhältnisse in Echtzeit. Sie müssen regulatorische Compliance-Regeln wie maximale Kreditbeträge auf der Grundlage von Kredit-Scores und Anforderungen zur Einkommensüberprüfung durchsetzen.

  • Steuererklärungen: Mehrseitige Formulare, die komplizierte Steuerberechnungen für verschiedene Einkommensquellen, Abzüge und Gutschriften. Sie müssen anhand der Regeln der Steuerbehörden validieren, das Speichern von Entwürfen über mehrere Sitzungen hinweg unterstützen und Benutzer durch komplexe Arbeitsabläufe wie Einzelabzüge vs. Standardabzüge führen.

  • Versicherungsansprüche

    : Ausgefeilte Formulare, die sich je nach Anspruchstyp (Auto, Haus, Leben) und Versicherungsdetails anpassen. Sie füllen Felder mit vorhandenen Kundendaten vorab aus, verarbeiten Dateianhänge als Beweismittel, implementieren komplexe Validierungsregeln (z. B. darf der Schadensbetrag die Versicherungsgrenzen nicht überschreiten) und sorgen für ein einheitliches Branding verschiedener Versicherungsprodukte, um sie von der Konkurrenz abzuheben .

  • Diese Beispiele kommen im Alltag häufig vor, doch der Aufwand, der sich hinter diesen Formen verbirgt, wird oft übersehen. Ihre Entwicklung erfordert die Zusammenarbeit verschiedener Talente, komplexe Architekturen, erstklassige Ingenieurteams und bis zu mehrere Jahre Entwicklungszeit. In einigen kleinen und mittleren Unternehmen ist es sogar möglich, dass das gesamte Unternehmensprodukt auf einer solchen einzigen Form aufbaut.

Solche geschäftskritischen, aber kostspieligen Formulare bezeichne ich als „Formulare auf Unternehmensebene“.

Herausforderungen beim Erstellen von

Enterprise-Level

-Formularen Stellen Sie sich vor, Sie sind ein Finanzunternehmen, das ein Online-Kreditantragsformular erstellt. Vor welchen Herausforderungen könnten Sie stehen?

  • Einbindung nichttechnischer Stakeholder: Kredite sind komplex und erfordern Fachwissen in den Bereichen Finanzen, Buchhaltung und Recht – Fachwissen, das normalerweise von nichttechnischen Stakeholdern erworben wird. Diese Stakeholder verstehen komplizierte Geschäftsregeln, wie zum Beispiel „Wenn die Kreditwürdigkeit des Antragstellers unter 650 liegt, benötigen Sie einen Mitunterzeichner“ oder „Berechnen Sie das Schulden-Einkommens-Verhältnis anhand des monatlichen Bruttoeinkommens dividiert durch gesamte monatliche Schuldenzahlungen“. Eine große Herausforderung besteht darin, diese Beteiligten in die Lage zu versetzen, den Formularentwurf effizient zu leiten, ohne übermäßig viel Zeit damit zu verbringen, den Entwicklern alle Regeln beizubringen, und gleichzeitig eine reibungslose Zusammenarbeit bei der Bearbeitung von Randfällen sicherzustellen.

  • Branded UI & Custom UX: Auch Entwickler sind wichtig! Unternehmen wollen keine Formulardesigns nach dem Muster. Jedes seriöse Unternehmen möchte seine Marke aufbauen und einzigartige Benutzererlebnisse bieten – Ziele, für deren Erreichung Entwicklerexpertise erforderlich ist. Beispielsweise möchte eine Bank möglicherweise, dass ihr Kreditantrag den Farben ihrer Marke entspricht, benutzerdefinierte Eingabekomponenten verwendet oder eine Schritt-für-Schritt-Assistentenoberfläche implementiert, die Benutzer durch Abschnitte wie „Persönliche Daten“, „Anstellungsdetails“ und „Darlehensbedingungen“.

  • Berechnungen, Formeln und dynamisches Verhalten: Ein Kreditantragsformular erfordert möglicherweise verschiedene komplexe Echtzeitberechnungen und dynamisches Verhalten.

    • Finanzielle Berechnungen: Darlehensbeträge, Zinssätze, monatliche Zahlungen usw.
    • Bedingte Logik: Felder basierend auf der Kreditart ein-/ausblenden (z. B. unterschiedliche Felder für Hypotheken vs. Privatkredite)
    • Feldübergreifende Abhängigkeiten: Die Aktualisierung des Einkommens kann sich auf den maximalen Kreditbetrag, das Schulden-Einkommens-Verhältnis und den Zinssatz auswirken
    • Echtzeitvalidierung: Sicherstellen, dass Kreditbeträge innerhalb der Richtliniengrenzen bleiben, basierend auf Einkommen und Kreditwürdigkeit
  • Automatisches Speichern und Fortsetzen: Komplexe Formulare können Hunderte von Feldern enthalten – Benutzer möchten nicht von vorne beginnen, wenn sie versehentlich ihren Browser schließen.

  • Andere technische Herausforderungen:

    • Leistung: Effiziente Verarbeitung von Hunderten von Feldern mit reibungsloser Reaktionsfähigkeit der Benutzeroberfläche, wodurch schnelle Berechnungen und nahtloses Rendering gewährleistet werden
    • Validierung: Umfassende Validierungsstrategie, einschließlich clientseitiger Echtzeitvalidierung für sofortiges Benutzerfeedback und robuster serverseitiger Validierung für Datenintegrität und -sicherheit
    • Datenvorausfüllung: Füllen von Feldern aus mehreren Datenquellen

Dies sind keine Nischenprobleme, die für bestimmte Szenarien spezifisch sind, sondern allgemeine Herausforderungen, mit denen Unternehmen beim Erstellen komplexer Formulare konfrontiert sind. Die Kombination aus geschäftlicher Komplexität, technischen Anforderungen und Anforderungen an die Benutzererfahrung macht die effektive Implementierung von Formularen auf Unternehmensebene zu einer besonderen Herausforderung.

Wo bestehende Tools zu kurz kommen

Obwohl sich beliebte Formularbibliotheken wie Formik und React Hook Form hervorragend für die Handhabung grundlegender Formulare eignen, sind sie nicht für Unternehmensanforderungen konzipiert. Wenn wir diese Tools im Kontext unserer zuvor besprochenen Herausforderungen untersuchen, werden mehrere Einschränkungen deutlich:

Herausforderung 1: Nichttechnische Einbindung von Stakeholdern

Aktuelle Formularbibliotheken sind entwicklerzentriert und erfordern JavaScript-/TypeScript-Kenntnisse, um Formularlogik zu definieren.

Dies ermöglicht eine individuelle Anpassung, verringert jedoch die Effizienz der Bereitstellung von Formularen, die komplexe Regeln enthalten, erheblich. Zum Beispiel:

  • Wenn Formularregeln komplexe Berechnungen beinhalten, sind die Beteiligten gezwungen, den Entwicklern Schritt für Schritt zu erklären, indem sie verbale Beschreibungen wie verwenden: „Berechnen Sie den maximalen Kreditbetrag mit dem Vierfachen des Jahreseinkommens.“ , wird um 15 % nach unten angepasst, wenn die Kreditwürdigkeit unter 700 liegt, und weiter um den Prozentsatz der bestehenden monatlichen Schuldenzahlungen am Bruttomonatseinkommen reduziert, mit einer zusätzlichen Reduzierung um 10 %, wenn die Beschäftigungshistorie niedriger ist als 2 Jahre“, auch wenn diese Berechnungen in ihrem Fachgebiet allgemein bekannt sein mögen.

  • Wenn Formularregeln geändert werden müssen, wie z. B. die Anpassung von Kreditlimits, müssen sich Stakeholder immer noch auf Entwickler verlassen, um Änderungen umzusetzen, was zu längeren Prozessen und längeren Lieferzeiten führt.

Herausforderung 2: Marken-UI und benutzerdefinierte UX

Beide vorhandenen Bibliotheken zeichnen sich in diesem Aspekt aus (aufgrund ihres entwicklerorientierten Charakters) und bieten leistungsstarke Anpassungsmöglichkeiten. React Hook Form bietet beispielsweise eine Controller-Komponente zur Anpassung kontrollierter Eingabekomponenten.

Herausforderung 3: Berechnungen, Formeln und dynamisches Verhalten

Vorhandene Bibliotheken bieten „just-works“-Berechnungsfunktionen, es mangelt ihnen jedoch an Abstraktions- und Organisationsfähigkeiten für komplexe Berechnungen.

Erwägen Sie die Implementierung eines Kreditrechners in React Hook Form:

function LoanForm() {
  const { watch, setValue } = useForm()

  const [loanAmount, interestRate, term] = watch([
    'loanAmount',
    'interestRate',
    'term',
  ])

  useEffect(() => {
    if (loanAmount && interestRate && term) {
      const monthlyRate = interestRate / 100 / 12
      const months = term * 12
      const payment =
        (loanAmount * monthlyRate * Math.pow(1 + monthlyRate, months)) /
        (Math.pow(1 + monthlyRate, months) - 1)
      setValue('monthlyPayment', payment.toFixed(2))
    }
  }, [loanAmount, interestRate, term, setValue])

  return (
    <form>
      {/* ... */}
      <input type="number" {...register('monthlyPayment')} />
      {/* ... */}
    </form>
  )
}
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Dieser Ansatz hat mehrere Nachteile:

  • Schreiben in JavaScript: Es verweigert die Zusammenarbeit zwischen nicht-technischen Beteiligten und Entwicklern.
  • Manuelle Pflege von Feldabhängigkeiten: watch(['loanAmount', 'interestRate', 'term'])
  • Trennung von Felddefinition und Wertzuweisung: In diesem Beispiel wird monatliche Zahlung in der Rückgabeabrechnung registriert, aber in useEffect zugewiesen
  • Zusätzlicher Boilerplate-Code: watch, setValue, useEffect
  • Manuelle Leistungsoptimierung

Herausforderung 4: Automatisches Speichern und Fortsetzen

In diesen Bibliotheken gibt es keine integrierten Lösungen für das automatische Speichern und Fortsetzen. Für die Implementierung der Funktion zum automatischen Speichern ist umfangreicher benutzerdefinierter Code erforderlich. Entwickler müssen Folgendes handhaben:

  • Effiziente Zustandspersistenz
  • Konfliktlösung
  • Datensynchronisation
  • Fortschrittsverfolgung
  • Fehlerbehebung

Diese Einschränkungen führen zu einem erheblichen Entwicklungsaufwand, einer längeren Markteinführungszeit und höheren Wartungskosten für Unternehmensanwendungen. Es gibt zwar Workarounds, diese führen jedoch oft zu komplexen, spröden Lösungen, die schwer zu warten und zu skalieren sind.

FormML begegnet diesen Herausforderungen durch seine domänenspezifische Sprache und Architektur, die speziell für Formulare auf Unternehmensebene entwickelt wurde, wie wir im nächsten Abschnitt untersuchen werden.

Die FormML-Lösung

FormML, kurz für Form Modeling Language, ausgesprochen als „formal“, ist ein neues Open-Source-Framework, das speziell für die Bewältigung der Herausforderungen von Formularen auf Unternehmensebene entwickelt wurde. So schließt es die Lücken, die andere Tools hinterlassen:

Stärkung von Nicht-Tech-Stakeholdern

Wie der vollständige Name „Form Modeling Language“ vermuten lässt, führt FormML eine Domain-Specific Language (DSL) ein, die intuitiv und nicht entwicklerfreundlich ist. Seine einfache Struktur, minimale Syntax und natürliche Terminologie ermöglichen es Finanzexperten, Juristen und anderen nicht-technischen Interessengruppen, Formulare zu modellieren, ohne dass Programmierkenntnisse erforderlich sind.

Um ein am einfachsten ausführbares Steuerformular zu erstellen, kann ein erfahrener Buchhalter ohne Programmierkenntnisse dies in nur 5 Minuten tun:

function LoanForm() {
  const { watch, setValue } = useForm()

  const [loanAmount, interestRate, term] = watch([
    'loanAmount',
    'interestRate',
    'term',
  ])

  useEffect(() => {
    if (loanAmount && interestRate && term) {
      const monthlyRate = interestRate / 100 / 12
      const months = term * 12
      const payment =
        (loanAmount * monthlyRate * Math.pow(1 + monthlyRate, months)) /
        (Math.pow(1 + monthlyRate, months) - 1)
      setValue('monthlyPayment', payment.toFixed(2))
    }
  }, [loanAmount, interestRate, term, setValue])

  return (
    <form>
      {/* ... */}
      <input type="number" {...register('monthlyPayment')} />
      {/* ... */}
    </form>
  )
}
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Vollständig anpassbare UX

FormML verwendet eine robuste Modell-Ansicht-Trennungsarchitektur, die die Formularlogik sauber von der UI-Präsentation entkoppelt. Domänenexperten definieren die Struktur, Typen und Verhaltensweisen des Formulars (das „Modell“) in einer .fml-Datei mit FormML DSL.

Diese Trennung ermöglicht es Entwicklern, sich ganz auf die Erstellung ausgefeilter, benutzerdefinierter UI-Erlebnisse (der „Ansicht“) mit der gleichen Flexibilität wie andere Formularbibliotheken zu konzentrieren, ohne sich um die zugrunde liegende Geschäftslogik kümmern zu müssen.

function LoanForm() {
  const { watch, setValue } = useForm()

  const [loanAmount, interestRate, term] = watch([
    'loanAmount',
    'interestRate',
    'term',
  ])

  useEffect(() => {
    if (loanAmount && interestRate && term) {
      const monthlyRate = interestRate / 100 / 12
      const months = term * 12
      const payment =
        (loanAmount * monthlyRate * Math.pow(1 + monthlyRate, months)) /
        (Math.pow(1 + monthlyRate, months) - 1)
      setValue('monthlyPayment', payment.toFixed(2))
    }
  }, [loanAmount, interestRate, term, setValue])

  return (
    <form>
      {/* ... */}
      <input type="number" {...register('monthlyPayment')} />
      {/* ... */}
    </form>
  )
}
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Sofort einsatzbereite Unterstützung für dynamisches Verhalten

FormML behandelt dynamische Verhaltensweisen als erstklassige Bürger. Es unterstützt Echtzeitberechnungen direkt in seinem DSL, mit JavaScript-Ausdrücken oder einem Excel-ähnlichen Formelsystem (WIP). Beispielsweise ist die Berechnung der Steuer anhand der Eingabefelder im obigen Beispiel unkompliziert und erfordert nur minimalen Aufwand.

Sofort einsatzbereite Unterstützung für automatisches Speichern und Fortsetzen

FormML behandelt auch das automatische Speichern und Fortsetzen als erstklassige Bürger. Es ist geplant, Zustandspersistenz, Konfliktlösung, Datensynchronisierung, Fortschrittsverfolgung und Fehlerbehebung sofort zu unterstützen.

Ich freue mich auf

Während grundlegende Formulare weitgehend gelöst wurden, stellen Formulare auf Unternehmensebene weiterhin einzigartige Herausforderungen dar. FormML geht bei der Lösung dieser hartnäckigen Probleme einen Schritt weiter und bietet eine umfassende Lösung, die Leistung, Flexibilität und Benutzerfreundlichkeit in Einklang bringt.

Ob Sie mit komplexen Berechnungen, dynamischem Verhalten oder der Zusammenarbeit zwischen Teams zu kämpfen haben, FormML bietet ein Framework, das speziell für Formularherausforderungen auf Unternehmensebene entwickelt wurde.

Sind Sie bereit, die Herausforderungen Ihrer Unternehmensform anzugehen? Folgen Sie meinem Konto auf X oder Bluesky und probieren Sie es nach der ersten Veröffentlichung aus!

Das obige ist der detaillierte Inhalt vonÜber einfache Formulare hinaus: Warum Formulare auf Unternehmensebene eine Herausforderung bleiben (und wie FormML sie löst). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage