Nicht: Geben Sie neue Arrays oder neue Objekte von mapStateToProps zurück. Wenn ein Objekt zurückgegeben werden soll, achten Sie darauf, dass es später nicht verändert wird. Dies kann dazu führen, dass die gesamte Komponente und der Unterbaum neu gerendert werden, wenn sich dieses Objekt auch nur geringfügig ändert.
Do: MapstateToProps sollte nur Primitive und Arrays zurückgeben, die direkt vom Status stammen (erstellen Sie kein neues Array aus MapStateToProps, erstellen Sie bei Bedarf einen Selektor, der das resultierende Array aus der Argumentberechnung zwischenspeichert). Arrays, die später iteriert werden, sollten die String-ID des darzustellenden Elements enthalten. Das Listenelement ist dafür verantwortlich, die Informationen zum globalen Status mithilfe der von props übergebenen ID zu finden.
Tun Sie: Stellen Sie beim Erstellen Ihres eigenen benutzerdefinierten Hooks sicher, dass das zurückzugebende Array ebenfalls gespeichert wird. Eine vorzeitige Optimierung wird nicht empfohlen, aber warum nicht etwas so optimal wie möglich entwickeln? Es erfordert keinen großen Aufwand und fördert das Lernen für andere Ingenieure, die am Code arbeiten. Bilden Sie das Team weiter!
Do: Wenn Sie ein großes Objekt bauen, ordnen Sie die Schlüssel in alphabetischer Reihenfolge an. Objekte werden wahrscheinlich immer größer und die Suche nach einer Immobilie kann sehr zeitaufwändig sein. Achten Sie insbesondere im Geschäft darauf, dass die Reduzierstücke alphabetisch sortiert sind.
Nicht: Erstellen Sie Reduzierer, die spezifisch für die Seite/den Bildschirm sind, die Sie erstellen. Überlegen Sie, wie es auf andere Seiten/Bildschirme skaliert werden könnte. Wenden Sie sich an das Team, um mögliche zukünftige Nutzungen der von Ihnen erstellten Seiten/Bildschirme zu erfahren.
Tun Sie: Stellen Sie sicher, dass Sie die Kommunikation mit externen APIs mit einer maßgeschneiderten API umschließen. Wenn der Dienst in Zukunft ersetzt werden muss, kann dies über diese maßgeschneiderte API erfolgen. Denken Sie zum Beispiel an Bugsnag. Wickeln Sie den kleinen Jungen in eine maßgeschneiderte API ein, nur für den Fall, dass Sie Sentry später verwenden möchten.
Tun: Im selben Sinne. Bitte standardisieren Sie die Art und Weise, wie Fehler im Backend, aber auch im Frontend behandelt werden. Jede Aktion in der App sollte in einen Try/Catch-Block eingeschlossen sein und der Catch-Block sendet Berichte an das Fehlerberichtstool. Ihre App sollte außerdem die gesamte App mit einer Fehlergrenze umschließen. Ich glaube, dass es einen richtigen Weg gibt, das richtige Muster festzulegen. Ein Muster, das in der Lage ist, alle Fehler zu erkennen und aussagekräftige Informationen zu melden.
Do: Verwenden Sie ein Tool, das die Codequalität erzwingt, wie z. B. Sonar. Dies spart viel Zeit bei der Codeüberprüfung, nur weil sich jemand für die Verwendung von if ... else anstelle von if ... return entschieden hat . Kleine Details, die dazu führen, dass ein Entwickler weniger kreativ ist und sich einfach an die Sonar-Standards für die Codequalität hält. Eine Codebasis, die selbst diesen Details bis ins kleinste Detail folgt, ist vom ersten Tag an einfach zu programmieren.
Das sind alle Meinungen, die ich im Moment habe. Mit einer Codebasis, die Muster erzwingt, können Benutzer einspringen und einen Codeabschnitt von einer anderen Stelle in der Codebasis übernehmen, ihn einfügen, den Wortlaut ein wenig ändern und voilà, Sie haben eine Funktion, die den Produktionsstandards in jeder Hinsicht entspricht. Es gibt Meinungen, aber zumindest zum Zeitpunkt des Verfassens dieses Artikels gibt es wirklich eine höchst performante Art und Weise, Dinge zu erledigen. Möglicherweise kommen noch andere Ansätze hinzu, aber die leistungsfähigste Art, den Code zum Zeitpunkt des Schreibens zu schreiben, ist die einzige Art, den Code zu schreiben. Leichter gesagt als getan, bis Sie mit dem Terminmonster konfrontiert werden.
Das obige ist der detaillierte Inhalt vonReagieren: Guter und schlechter Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!