1. Gestaltungsprinzipien für verteilte Blockchain-Apps
Ethereum für Dummies

Von Michael Solomon

Die Blockchain-Technologie ist ein disruptiver, transformativer Ansatz für die Verwaltung von Daten. Es verspricht, die Art und Weise, wie wir Aufgaben ausführen, die mit vertraulichen Informationen in gemeinsam genutzten Umgebungen umgehen, radikal zu ändern. Kritische Vorgänge mit sensiblen Daten erforderten in der Vergangenheit eine starke zentrale Instanz, um die Datenbesitzer davon zu überzeugen, der Umgebung so weit zu vertrauen, dass sie ihre Daten verwalten kann.

Eines der schwierigeren Hindernisse, die jede Blockchain-dApp überwinden muss, ist der Aufbau von Vertrauen. Benutzer müssen darauf vertrauen, dass die auf der Blockchain ausgeführte Software zuverlässige Maßnahmen zur Gewährleistung der Sicherheit und zum Schutz der Privatsphäre enthält, bevor sie vertrauliche persönliche und geschäftliche Daten bereitstellen.

Sie können einen großen Beitrag zum Aufbau dieses Vertrauens leisten, indem Sie sich an mehrere grundlegende Gestaltungsrichtlinien halten. Wenn Sie die zehn Entwurfsziele für Blockchain-Anwendungen einhalten, die Sie hier finden, werden Sie Ihre Benutzer dazu ermutigen, Ihrer Anwendung ausreichend zu vertrauen, um sie zu verwenden und sich darauf zu verlassen.

Entwerfen Sie Blockchain-Apps für mehr Vertrauen

Einer der Hauptgründe, warum sich die meisten Unternehmen für Blockchain-Lösungen entscheiden, ist die Möglichkeit, Daten zwischen Knoten auszutauschen, die sich nicht gegenseitig vertrauen. Wenn Sie darüber nachdenken, ist dies wirklich eine hohe Messlatte für dApp-Entwickler. Um eine erfolgreiche dApp zu entwickeln, müssen Sie Ihre Benutzer davon überzeugen, Ihrer Software ihre Daten anzuvertrauen, wenn Sie sie an eine große Anzahl anderer Knoten senden, denen Sie nicht vertrauen (und die auch nicht vertrauen).

Vertrauen ist normalerweise (aber nicht immer) transitiv. (Ja, Sie kehren in den Mathematikunterricht zurück. Wenn A = B und B = C, dann A = C. Gern geschehen.) Dies ist die gängigste Art und Weise, wie wir Menschen mit Vertrauen umgehen.

Wenn du Mary vertraust und Joe dir vertraut, ist Joe wahrscheinlich in Ordnung, wenn er Mary vertraut. Nehmen wir an, Sie sind ein Lebensmittelkritiker. Joe vertraut darauf, dass Sie gutes Essen empfehlen. Wenn Sie behaupten, dass Sie Marys Pfirsichkuchen wirklich mögen, ist es wahrscheinlicher, dass Joe ihren Pfirsichkuchen probiert, da Joe Ihrem Geschmack an Lebensmitteln vertraut. In einer vertrauenslosen Umgebung ist dies jedoch nicht der Fall. Bei Blockchain-dApps vertrauen Ihre Benutzer Ihnen, aber Sie vertrauen anderen Benutzern in Ihrem eigenen Blockchain-Netzwerk nicht.

Ihr erstes Entwurfsziel ist ein übergeordnetes Ziel, das Sie als Motivator für alle Entscheidungen im Auge behalten müssen. Viele der nachfolgenden Designziele unterstützen dieses Ziel: Entwerfen Sie Ihre dApps für Vertrauen. Dieses Ziel bedeutet, dass Sie überlegen möchten, was Ihre Benutzer möchten und was ihnen das Gefühl gibt, dass sie Ihrer dApp vertrauen können.

Benutzer müssen wissen, dass Sie sich um ihre Daten kümmern. Ihre dApp sollte nichts verbergen und es einfach machen, zu überprüfen, was gerade passiert. Es sollte eindeutig gute und schlechte Informationen vermitteln und ein allgemeines Wohlbefinden vermitteln. Obwohl dies eine große Herausforderung für Software ist, ist es notwendig, Vertrauen aufzubauen.

Der wichtigste Aspekt beim Entwerfen für Vertrauen ist das Verstehen, wer Ihre Benutzer sind und wie sie sich wohl fühlen. Kurz gesagt, kennen Sie Ihre Benutzer. Wissen Sie, was sie wollen und wie Sie sie davon überzeugen können, dass Sie ihre Zeit nicht verschwenden oder ihr Vertrauen in Sie ausnutzen werden.

Erzwingen Sie die Konsistenz in Blockchain-Apps

Eine der einfachsten Möglichkeiten, Verwirrung zu vermeiden, besteht darin, die Optionen und widersprüchlichen Erfahrungen in Ihren dApps einzuschränken. Microsoft hat vor langer Zeit die Macht in der Konsistenz gelernt. Sie entwickelten Standards für die Interaktion mit Benutzern und untersuchten und definierten jeden Aspekt der Erstellung einer Benutzeroberfläche. Aus diesem Grund fühlen sich Microsoft-Anwendungen ähnlich an.

Wenn Sie eine Microsoft-Anwendung verwendet haben, erkennen Sie mindestens die allgemeine Benutzeroberfläche in anderen Microsoft-Anwendungen. (Und wenn Sie schon eine Weile Microsoft-Produkte verwendet haben, werden Sie sich an die enorme Störung erinnern, die Microsoft bei der Umstellung auf eine kachelbasierte Benutzeroberfläche verursacht hat - hauptsächlich, weil alle mit der älteren Microsoft-Benutzeroberfläche so vertraut waren.)

Wenn Sie beispielsweise die aktuelle Version eines von Ihnen ausgeführten Windows-Programms suchen möchten, können Sie fast immer auf Hilfe klicken oder darauf tippen und anschließend im Menü Hilfe auf den Menüpunkt Info klicken oder darauf tippen.

Das folgende Bild zeigt den Menüpunkt About in VS Code. Das Menüelement "Info" ist in nahezu jeder Windows-Anwendung vorhanden und zeigt grundlegende Informationen, einschließlich der Versionsnummer, des von Ihnen ausgeführten Programms an. Dieses einfache Beispiel für Konsistenz der Benutzeroberfläche erleichtert es jedem, Anwendungsinformationen zu finden, ohne danach suchen zu müssen.

VS-Code Ethereum

Das folgende Bild zeigt das Dialogfeld Info in VS Code. Sie finden Versionsinformationen für die meisten Windows-Anwendungen, indem Sie auf Hilfe → Info klicken oder darauf tippen. Das ist die Kraft der Konsistenz.

Dialogfeld

Ihre dApps sollten klare Standards für jede Benutzerinteraktion definieren. Wenn Sie Ihre Benutzer auffordern, Eingaben zu machen, tun Sie dies in der gesamten dApp auf die gleiche Weise. Wenn ein Benutzer eine Produkt-ID an mehreren Stellen eingibt, sollte das Eingabefeld an jeder Stelle gleich aussehen. Verwenden Sie dieselben Farben, Schriftarten und Eingabemethoden, um Ihrer dApp ein einheitliches Erscheinungsbild zu verleihen.

Ein weiterer Bereich, in dem Sie Konsistenz in GUI-Apps finden, sind Tastaturkürzel. Sie können fast immer Strg-C verwenden, um markierten Text zu kopieren, und Strg-V, um diesen Text an einer neuen Stelle einzufügen. Durchgängige Tastaturkürzel erleichtern das Erlernen und Verwenden neuer Software.

Auf die gleiche Weise standardisieren Sie alle Ausgaben. Fehlermeldungen und Warnungen sind wichtige Bereiche für die Standardisierung. Verwenden Sie nach Möglichkeit gemeinsame Eingabe- und Ausgabeebenen, damit für alle Eingaben und Ausgaben dieselben Funktionen verwendet werden. Die gesamte dApp sieht konsistenter aus.

Sie möchten Ihre Benutzer dazu ermutigen, Ihre dApp weiterhin zu verwenden. Eine dApp, die eine konsistente Benutzeroberfläche bietet, ist eine, die Vertrauen schafft. Konsistenz erleichtert Ihren Benutzern auch das Erlernen des Gebrauchs Ihrer Software, und eine Anwendung, die leicht zu erlernen ist, wird von den Benutzern wahrscheinlich bevorzugt und akzeptiert.

Beseitigen Sie Zweifel an Blockchain-Apps mit Transparenz

Einer der Gründe, warum Benutzer einer Anwendung misstrauen, ist, dass sie sie nicht wirklich verstehen. Die Benutzer geben ihre Daten weiter, sind sich jedoch nicht sicher, was danach passiert. Sie wissen nicht, wohin ihre Daten gehen und ob sie sich noch irgendwo im System befinden. Dieses Gefühl, Daten in eine Black Box zu stellen, kann mit Blockchain-dApps noch verstärkt werden.

Mit zunehmender Beliebtheit der Blockchain-Technologie steigt das allgemeine Bewusstsein für ihre Funktionen. Das bedeutet, dass viele Ihrer Benutzer wissen, dass Ihre dApp ihre Daten an viele andere Computer sendet, möglicherweise auf der ganzen Welt. Eine der Hürden, die Sie überwinden müssen, besteht darin, Ihre Benutzer davon zu überzeugen, dass Sie ihre sensiblen Daten schützen.

Kommunizieren Sie klar, welche Daten Ihre dApp benötigt, warum sie jeden Datentyp benötigt und was Sie damit tun. Sie müssen diese Informationen nicht jedes Mal übermitteln, wenn Sie zur Eingabe von Daten auffordern. Sie sollten jedoch bei der ersten Interaktion mit einem neuen Benutzer und auf Anforderung verfügbar sein.

Sie sollten es den Benutzern auch leicht machen, zu sehen, was sie getan haben (und was Ihre dApp mit ihren Daten getan hat). Durch die Bereitstellung von Transparenz bei jedem Schritt erhalten die Benutzer ein Gefühl des Vertrauens.

Machen Sie es Ihren Benutzern einfach, einen Drilldown durchzuführen und die Aktionen zu überprüfen. Diese Transparenzstufe gibt den Benutzern die Gewissheit, dass Ihre dApp das tut, was sie behauptet, und kann die Sorge verringern, dass Ihre dApp etwas verbirgt. Abhängig vom Grad des Benutzerinteresses und Ihren eigenen Designrichtlinien können Sie Transparenz in jeden Workflow oder in On-Demand-Funktionen einbauen, damit Power-Benutzer nach Belieben einen Drilldown durchführen können.

Geben Sie Feedback, Anleitungen und Erwartungen für Ihre Blockchain-Apps

Das nächste Designziel, das Sie für Ihre Blockchain-App benötigen, ist das Bereitstellen von Feedback und Anleitungen sowie das Setzen von Erwartungen. Dieses Ziel ist eine logische Erweiterung der Transparenz. Während die Transparenz den Benutzern die Verfügbarkeit von Transaktions- und Workflow-Details erleichtert, wird der normale Workflow durch die Einstellung von Feedback, Anleitung und Erwartungen transparent. Anstatt den Benutzern nur anzeigen zu lassen, was passiert ist, sollten Sie ihnen bei jedem wichtigen Workflow-Schritt informatives Feedback geben.

Wenn Sie beispielsweise ein Hersteller sind und gerade das Eigentum an einem neuen Traktor auf einen Versender übertragen haben, zeigt Ihre neue Lieferkette dApp möglicherweise die Meldung „Sie haben gerade den Traktor mit der Seriennummer ABC-12345 an Unified Shipping - Transaction number 456778 übertragen Natürlich würden Sie wahrscheinlich mehr Details für eine Kapitaltransfer erhalten, aber Sie haben die Idee. Die dApp gab ein Feedback, das im Wesentlichen besagt: „Hey, gute Arbeit. Das haben Sie getan. “Informatives Feedback ist der erste Schritt, um Benutzer davon zu überzeugen, Ihrer dApp zu vertrauen. Das Feedback gibt ihnen die Gewissheit, dass sie die Software korrekt verwenden.

Sie können das Feedback-Beispiel erweitern, um die Benutzer auch über den nächsten Schritt zu informieren. Im Traktorbeispiel könnte Ihre Rückmeldung auch die Meldung "Möchten Sie den Titel jetzt veröffentlichen?" Mit der Option zum Klicken oder Tippen auf eine Schaltfläche enthalten, um zum nächsten Schritt zu gelangen. Aufforderungen zum Beenden von Aufgaben wie diese helfen sicherzustellen, dass Benutzer den richtigen Workflow verstehen und den Eindruck erwecken, dass die Software ihnen dabei hilft, ihre Aufgaben richtig zu erledigen. Wenn Software den Benutzer effektiver macht, trägt sie wesentlich zur Vertrauensbildung bei. Jeder liebt Software, mit der sie gut aussehen!

Behandle Fehler in deiner Blockchain-App mit Klasse

Seien Sie ehrlich, Fehler passieren. Und manchmal sind diese Fehler groß. Hoffentlich haben Sie beim Testen alle großen Fehler in Ihrer Software gefunden. (Sie haben ausführlich getestet, oder?) In diesem Fall sind die meisten Fehler, die in der Produktion auftreten, Benutzerfehler.

Vermeiden Sie beim Behandeln von Benutzerfehlern Benachrichtigungen, die auf subtile Weise "Sie haben es vermasselt!" Anzeigen. Konzentrieren Sie sich darauf, die Situation zu lösen, ohne Schuldzuweisungen zu geben.

Sie erinnern sich wahrscheinlich daran, Ihr erstes GPS-Gerät in einem Auto verwendet zu haben. In den Anfängen von GPS haben Sie, wenn Sie von der vorgeschlagenen Route abgewichen sind, eine ziemlich strenge „Umleitungsnachricht“ gehört. Die Stimme hätte genauso gut sagen können: "Du gehst nicht dorthin, wo ich es dir gesagt habe. Warte, ich werde dir sagen, wie du zu dem zurückkommst, was ich dir gesagt habe. "Fehlermeldungen sollten Benutzer darüber informieren, was passiert ist, aber dich darauf konzentrieren, was als Nächstes zu tun ist. Ja, das GPS hat das getan, aber es war im Allgemeinen nach einem subtilen Schimpfen. Schimpfe nicht mit deinen Nutzern.

Andererseits sollten Sie nicht zu viel Zeit darauf verwenden, sich auf Fehler zu konzentrieren. Übermäßig ausführliche Fehlermeldungen können verwirrend sein und das Lesen kann zu lange dauern. Komm zum Punkt. Entwerfen Sie die Fehlerbehandlung immer aus Benutzersicht. Geben Sie den Benutzern alles, was sie brauchen, um schnell und entschlossen auf Fehler zu reagieren, und nichts weiter.

Fehlermeldungen helfen dem Endbenutzer zu verstehen, was gerade passiert, und unterstützen das Personal bei der Fehlerbehebung. Entwerfen Sie Ihr Fehlermeldungssystem so, dass es die erforderlichen Benutzermeldungen sowie ausführlichere Meldungen bei Bedarf zur Fehlerbehebung und für Untersuchungen bereitstellt.

Denken Sie daran, dass die Blockchain unveränderlich ist, sodass alle Fehler, die sie zu einem Block machen, immer vorhanden sind. Ihre dApp sollte Benutzerprobleme mit Daten lösen, bevor Sie diese Daten in der Blockchain speichern. Der Trick bei der Behandlung von Fehlern besteht darin, Benutzer zur richtigen Lösung zu führen, ohne sie zu verlangsamen. Das erfordert Aufmerksamkeit, wer Ihre Benutzer sind, wie sie Ihre dApp verwenden und was sie benötigen, um ein Problem zu lösen. Eines Ihrer Entwurfsziele sollte darin bestehen, eine Fehlerbehandlung bereitzustellen, die in jedem Fall die Anforderungen Ihrer Benutzer erfüllt.

Entwerfen Sie Funktionen in Ihrer Blockchain-App, die sich auf Benutzeraktionen und nicht auf Daten konzentrieren

Funktionen bieten die Aktionen Ihrer intelligenten Verträge. Eine Möglichkeit, intelligente Verträge zu betrachten, besteht darin, dass sie aus Daten (Substantiven) und Aktionen (Verben) bestehen. Wenn Sie intelligente Verträge auf diese Weise einrahmen, können Sie sie einfacher beschreiben und gestalten. Dies führt im Allgemeinen zu einer Anwendung, die sich aus der Sicht des Benutzers gut eignet.

Da alle Anwendungen vorhanden sind, um die Anforderungen einiger Benutzer zu erfüllen, ist es sinnvoll, Software im Lichte des Benutzers zu entwerfen. Wenn ein Benutzer auf der höchsten Ebene einen neuen Auftrag erstellen möchte, sollte er mit einer Funktion namens createNewOrder () beginnen. Sie können Änderungen vornehmen, während Sie Ihr Design verfeinern. Wenn Sie jedoch mit einer Benutzerperspektive beginnen, können Sie die Authentizität der Ziele der Software erhalten. Das Entwerfen technischer Komponenten, die die Benutzerziele erfüllen, trägt auch dazu bei, zu vermeiden, dass zu weit von den übergeordneten funktionalen Zielen abgewichen wird.

Viele der heutigen Softwareentwicklungsunternehmen sind auf Methoden angewiesen, die mit User Stories beginnen. Als Entwickler werden Sie aufgefordert, Software zu erstellen, die eine Anforderung erfüllt, die wie folgt aussieht: „Als Benutzer möchte ich ____.“ Beginnen Sie Ihren Smart-Vertrag mit einer Funktion, die den Anforderungen der Benutzer entspricht (dh die ausgefüllte Funktion) -in blank aus der vorhergehenden Aussage), ist eine gute Entwurfsstrategie zur Herstellung benutzerfreundlicher Software.

Jede Funktion muss nicht direkt auf Benutzeraktionen abgebildet werden, aber Ihre übergeordneten Funktionen sollten so aussehen, als würden sie Benutzergeschichten befriedigen. Sie benötigen immer aufgabenorientierte oder datenorientierte Funktionen auf niedrigerer Ebene, um die technischen Schritte einer Aufgabe auszuführen. Es ist in Ordnung, wenn diese Funktionen nicht direkt auf User Storys übertragen werden. Ihre untergeordneten Funktionen sollten jedoch alle eine Rolle in den Funktionen spielen, mit denen Benutzer interagieren. Als allgemeine Faustregel sollten Ihre öffentlichen Funktionen den Reaktionen von User Stories sehr ähnlich sein.

Speichern Sie Blockchain-App-Daten basierend auf Benutzeraktionen, nicht auf Datenstrukturen

Benutzer interagieren möglicherweise nicht direkt mit Daten, aber Sie sollten dennoch versuchen, die Daten anhand der Benutzeranforderungen zu organisieren. Dieses allgemeine Ziel ist eher eine Faustregel. Verwenden Sie dieses Ziel beim anfänglichen Entwerfen Ihrer Anforderungen für intelligente Vertragsdaten. Wahrscheinlich müssen Sie das Design verfeinern und ändern. Wenn Sie jedoch mit Daten beginnen, die Benutzeranforderungen zugeordnet sind, wird Ihre Software den Benutzeranforderungen gerecht.

Wenn Sie beispielsweise Software zum Erstellen und Verwalten von Aufträgen entwerfen, beginnen Sie mit einer Solidity struct-Anweisung, die einen Auftrag so definiert, wie ein Benutzer ihn sieht. Eine Bestellung kann eine Sammlung von Feldern sein, die sie beschreiben, z. B. Bestellnummer, Bestelldatum, Kundenbestellung, Anweisungen und eine Liste von Bestellpositionen. Bestellpositionen enthalten Felder wie Produktnummer, Preis und Menge. Sie können dies als eine Struktur von Variablen und eine Liste von Auftragszeilenstrukturen definieren.

Unabhängig von den technischen Details der Datendefinition besteht der Hauptzweck dieses Ziels darin, die Verwendung von Daten durch Benutzer zu berücksichtigen und die Daten auf diese Weise darzustellen. Wenn Sie den Benutzern Aufträge direkt zur Verfügung stellen, um die Transparenz in Ihrer Software zu fördern, möchten Sie den Zugriff auf die Aufträge so einfach wie möglich gestalten. Sie möchten nicht die Transparenz fördern und die Benutzer dazu bringen, hart zu arbeiten, um herauszufinden, was Ihre Daten bedeuten. Wenn Sie den Zugriff auf und das Verständnis von Daten vereinfachen, wird das Vertrauen noch größer.

Halte deine Blockchain-App einfach

Beim Entwerfen einer dApp müssen Sie viele Dinge berücksichtigen. Die Fokussierung auf Benutzer sollte zwar zu direkten Entwurfsentscheidungen führen, es wird jedoch versucht, alle Benutzeranforderungen zu erfüllen. Wenn Sie dieses Kontrollkästchen nicht aktivieren, wird Ihre Software durch diesen Wunsch zu komplex und schwierig zu bedienen. Benutzern viele Auswahlmöglichkeiten zu bieten, klingt zunächst nach einem guten Ziel, aber ein überforderter Benutzer wird Ihre Software nicht mögen (oder benutzen).

Das allgemeine Sprichwort „Mach es einfach, dumm“ ist immer noch relevant. Es ist eine strenge Erinnerung daran, dass Einfachheit weitaus klüger ist als Komplexität. Sie haben vielleicht gehört, dass „ein verwirrter Kopf immer nein sagt“, aber Sie möchten, dass Ihre Benutzer Ihre dApp akzeptieren und verwenden. Sie möchten, dass sie mit Ihrer Software effektiver und effizienter werden. Um diese Ziele zu erreichen, müssen Sie Ihre Software einfach und klar verstehen und verwenden.

Einfachheit beginnt mit der Benutzeroberfläche, hört aber hier nicht auf. Jeder Aspekt des Funktions- und Datendesigns Ihrer Anwendung muss so einfach wie möglich sein. Versuche nicht zu viel zu tun. Stellen Sie stattdessen fest, was Ihre Benutzer am meisten benötigen und wollen, und tun Sie dies. Priorisieren Sie die Funktionen, die Ihre Software auszeichnen. Einfach zu halten kostet mehr Arbeit, führt jedoch häufig zu einem fokussierten, konsistenten Produkt, das die Benutzer verwenden werden.

Erwarten Sie, dass der Blockchain-Zugriff teuer ist

Ein weiteres praktisches Designziel, mit dem Sie Nacharbeiten vermeiden können, besteht darin, von Anfang an vorzutäuschen, dass das Speichern von Daten in der Blockchain teuer ist. Weil es in Wirklichkeit so ist. Für viele, die vor langer Zeit mit der Programmierung von Y2K begonnen haben, ist Speicher heute viel billiger als früher. Die meisten Entwickler müssen sich heutzutage keine Gedanken mehr über die Datengröße und den Speicherort machen. Blockchain ändert das alles. Anstatt Tonnen billigen und schnellen Speichers zur Verfügung zu haben, müssen Sie jetzt bezahlen, während Sie gehen.

Teurer Speicher ist keine neue Sache in der Blockchain, kann aber leicht vergessen werden. Wenn Sie sich früh daran erinnern, dass Speicher teuer ist, werden Sie mit größerer Wahrscheinlichkeit über Speicheroptionen nachdenken.

Müssen Sie beispielsweise die Stadt und das Bundesland speichern, in die ein Produkt versendet werden soll? Stadt und Bundesland hängen beide von der Postleitzahl ab (oder in allgemeineren Einstellungen von der Postleitzahl.) Sie können die Postleitzahl in der Versandadresse speichern und dann zur Laufzeit die entsprechende Stadt und das entsprechende Bundesland mithilfe einer Online-API nachschlagen.

Das Trennen von Daten wie dem Beispiel mit der Postleitzahl ist für Ihre Anwendung möglicherweise nicht sinnvoll, aber Sie werden immer davon profitieren, wenn Sie Ihre Datenspeicheroptionen durchdenken. Die teuersten Speicheroptionen sind fast immer das Ergebnis einer schlechten Entwurfsplanung. Entwerfen Sie Blockchain-dApps nicht so, wie Sie herkömmliche Datenbankanwendungen entwerfen. Sie sind einfach nicht dasselbe. Entwerfen Sie mit einer anderen Einstellung und Sie erhalten ein besseres Softwareprodukt.

Halten Sie sich aus dem Weg des Blockchain-App-Benutzers

Eine gute Blockchain-Anwendung erfüllt die wichtigsten Benutzeranforderungen auf eine Weise, die ihnen hilft, effektiver und effizienter zu sein. In Ihrem Entwurf sollte jedoch nicht nur berücksichtigt werden, was Ihre Anwendung tut, sondern auch, was sie nicht tut.

Jede Anwendung unterliegt Einschränkungen. Dieses Entwurfsziel konzentriert sich auf eine andere Sache, die Ihre Anwendung nicht tut: Sie steht dem Benutzer nicht im Weg. Kurz gesagt, Ihre Anwendung soll Benutzern helfen, nicht sie verlangsamen. Ihre Benutzeroberfläche sollte Benutzern bei der Erledigung ihrer Aufgaben helfen, und die Übergänge zwischen Elementen der Benutzeroberfläche sollten bei Bedarf intuitiv und lehrreich sein.

Manchmal müssen Sie Daten von Benutzern abrufen und dann in der Blockchain speichern. (Sie erinnern sich, dass dies teuer ist, oder?) Da Sie wissen, dass die Benutzer für das Speichern von Daten in der Blockchain zahlen müssen, müssen sie auch nicht darauf warten. Wenn immer möglich, lassen Sie Ihre Benutzer etwas Produktives tun, während die Funktion, die ihre Daten verarbeitet, im Hintergrund ausgeführt wird. Dies ist möglicherweise eine gute Stelle in Ihrem Code, um Ereignisse zu verwenden.

Tun Sie alles, um nicht zu einem Hindernis für Ihre Benutzer zu werden. Niemand wartet gerne. Entwerfen Sie mit Bedacht, und Ihr Produkt kann die Anforderungen Ihrer Benutzer viel besser erfüllen.