既存の慣行は、ポステルの法則に従っています。「自分のすることは保守的であり、他人から受け入れることは寛大である」。
この場合、プラグインのドキュメントは正しい使用法を示す必要がありますが、不適切な使用法を許容する必要があることを意味します。このアプローチの知恵は、HTML の成功と、それ以前またはそれ以降に発明された他のすべてのハイパーテキスト システムとの比較から明らかです。失敗のほとんどは非常に束縛と規律に満ちたスタイルのデザインであり、ほんのわずかなエラーでもドキュメントが読めなくなりました。
人々がよく悪い HTML を書くのと同じように、一部のユーザーはあなたに悪い入力を渡す可能性があります。「true」または「false」を取ることが文書化されているブール型のプロパティがあるとします。1 または 0 を取得した場合はどうなりますか? クラッシュするか、対処する必要がありますか?ポステルの法則によれば、対処してください。-1になったら?ここでも、非ゼロが「真」であるという C のルールを使用することを選択するなどして対処します。特定の質問にたどり着くと、ブール値のプロパティが読み取り専用として文書化されていて、誰かが値を指定した場合、プラグインはそれを食べるだけです。
この特殊なケースの処理はすべて、コーディングが増えることを意味しますが、プラグインが使いやすくなるため、人気が高くなる可能性が高くなります。
ポステルの法則の残りの半分は、読み取り専用プロパティには文書化された値のみが必要であることを意味します。再び、ブール値プロパティのケースを取り上げます。値が「true」または「false」であるとドキュメントに記載されている場合、代わりに「1」を返さないでください。たとえ JavaScript がそれを真の値であると理解していてもです。他の人が免責で違反するコードを書く場合でも、自分の仕様に従ってください。
ところで、書き込み専用プロパティという考え方は好きではありません。代わりにこれらの関数を作成する必要があります。あれは:
pluginInstance.setWriteOnlyProperty(5);
いいえ:
pluginInstance.writeOnlyProperty = 5;
読み取り専用変数はよく理解されているものです。書き込み専用変数はめったに見られません。私がこれまでに見たのは小さな 8 ビット マイクロコントローラーだけで、その理由は明らかでした。これはハードウェアの設計によるものです。ソフトウェアにそのような正当な言い訳をする余地はないと思います。