bester Weg, Schreib- / Lesegeschützte Eigenschaften in skriptfähigen Browser-Plugin zu handhaben

StackOverflow https://stackoverflow.com/questions/1528961

  •  20-09-2019
  •  | 
  •  

Frage

Schreibe eine integrierbare Cross-Browser-Plugin, das über JavaScript skriptfähig ist, ich bin nicht sicher, wie schreibgeschützt zu handhaben und Nur-Schreib-Eigenschaften die beste Art und Weise.

Ist es häufiger oder intuitiv

  • Verwerfungswerte leise auf Schreib für Nur-Lese-und
  • zurück Blindwert für write-only

oder

  • zeigen Ausfall an den Browser, höchstwahrscheinlich in einer Scripting-Fehler führt

Vorschlag? Oder gibt es gute Beispiele von weit verbreiteten Plug-in wie Flash?

Update:
Ich bin nicht daran interessiert, ob schreibgeschützte Eigenschaften ist nützlich oder nicht -. Ich weiß nicht, wie die Idee, aber ich habe zu unterstützen, dass aus historischen Gründen

War es hilfreich?

Lösung

Die bestehende Praxis folgt Postel Gesetz : „in konservativ sein, was Sie tun, sei liberal in was Sie von anderen akzeptieren. "

In diesem Fall bedeutet es das Plugin in der Dokumentation korrekte Verwendung zeigen soll, aber es sollte eine schlechte Nutzung tolerieren. Die Weisheit dieses Ansatzes sollte aus dem Studium der Erfolg von HTML vs. jedem anderen Hypertext-System offensichtlich sein, dass vor kam oder seit erfunden worden. Die meisten der Ausfälle waren sehr Bondage-and-Disziplin Artentwürfen, wo der kleinste Fehler verursacht das Dokument unleserlich sein.

So wie die Menschen regelmäßig schlecht HTML schreiben, sind einige Benutzer wahrscheinlich, dass Sie schlecht Eingang passieren. Sagen Sie bitte eine Boolesche Eigenschaft haben, dokumentiert zu nehmen „wahr“ oder „falsch“. Was passiert, wenn Sie 1 oder 0 bekommen? Sollte es zum Absturz bringen, oder einfach nur fertig werden? Postel Gesetz sagt, fertig werden. Was passiert, wenn Sie erhalten -1? Auch hier fertig zu werden, wie durch die Wahl C-Regel zu verwenden, die ungleich Null „true“ ist. Lernen Sie Ihre konkrete Frage, ob die Boolesche Eigenschaft als schreibgeschützt dokumentiert ist, und jemand gibt es einen Wert, Ihr Plugin sollte es nur essen.

All dieser spezielle Fall bedeutet mehr Handhabung für Sie Codierung, aber macht das Plugin einfacher zu bedienen, und somit eher populär sein.

Die andere Hälfte Postel Gesetz bedeutet, dass schreibgeschützte Eigenschaften sollten haben nur Werte dokumentiert. Auch hier nehmen Sie die Boolesche Eigenschaft Fall: Wenn Ihre Dokumente der Wert sagen „wahr“ oder „falsch“ ist, nie statt „1“ zurückkehren, auch wenn JavaScript das versteht ein truthy Wert. Folgen Sie Ihre eigene Spezifikation, auch wenn Sie Code schreiben, der andere verletzen sie ungestraft lässt.

Übrigens, ich weiß nicht wie die Idee der Schreibgeschützte Eigenschaften. Sie sollten diese Funktionen stattdessen machen. Das heißt:

pluginInstance.setWriteOnlyProperty(5);

nicht:

pluginInstance.writeOnlyProperty = 5;

Read-only-Variablen sind wohlverstandenen Dinge. Nur-Schreib-Variablen sind selten zu sehen. Das einzige Mal, dass ich eine ist in einem kleinen 8-Bit-Mikrocontroller gesehen habe, und der Grund dafür war klar, wegen der Hardware-Design. Ich sehe nicht, Raum für eine solche gute Ausreden in Software.

Andere Tipps

Ich würde nicht Werte leise entledigen, auch wenn man es sehr deutlich machen, in der Dokumentation. Eine Aussage nicht jede Art von Fehlern zurückgegeben macht es scheint, wie es eine Wirkung sein, die sollte. Es ist einfacher zu debuggen, wenn Sie eine klare Fehlermeldung ( „Property x read-only“).

Ich bin mit Warren Youngs Antwort, aber so weit wie Nur-Schreib-Funktionen gehen. Nur-Schreib-Eigenschaften sind nicht intuitiv.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top