mejor manera de manejar las propiedades lectura / escritura-solamente en secuencias de comandos del navegador-plugin

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

  •  20-09-2019
  •  | 
  •  

Pregunta

Escribir un integrable plug-in multi-navegador que es de secuencias de comandos a través de JavaScript no estoy seguro de cómo manejar de sólo lectura y sólo escritura propiedades de la mejor manera.

¿Es más común o intuitiva a

  • Los valores de descarte en silencio sobre escritura de sólo lectura y
  • volver valor ficticio de sólo escritura

o a

  • indicando una falla en el navegador, muy probablemente como resultado de un error de secuencias de comandos

sugerencia? O ¿hay buenos ejemplos de plugins generalizadas como flash?

actualización:
No estoy interesado en las propiedades de sólo escritura wether son útiles o no - no me gusta la idea, pero tengo que soportar que por razones históricas

.
¿Fue útil?

Solución

Ley de Postel: "Ser conservador en lo que haces; ser liberal en lo que acepta de otros ".

En este caso, significa que la documentación de su extensión debería mostrar el uso correcto, pero debe soportar un uso pobre. La sabiduría de este enfoque debería ser obvio de estudiar el éxito de HTML vs. cualquier otro sistema de hipertexto que vino antes o se ha inventado desde entonces. La mayor parte de los fracasos eran diseños de estilo muy servidumbre y la disciplina, donde el más mínimo error hizo que el documento sea ilegible.

Al igual que la gente escribe regularmente mal HTML, algunos de los usuarios son propensos a pasar usted mal de entrada. Digamos que tiene una propiedad booleana, se ha documentado que tomar "verdadero" o "falso". ¿Qué pasa si usted consigue 1 ó 0? En caso de que chocar, o simplemente hacer frente? Ley de Postel dice, hacer frente. ¿Qué pasa si se obtiene -1? Una vez más, hacer frente, como por la elección de utilizar la regla de C distinto de cero que es "verdadero". Cómo llegar a su pregunta específica, si la propiedad booleana está documentado como de sólo lectura, y alguien le da un valor, su plugin sólo debe comer.

Todo esto significa un manejo especial caso más de codificación para usted, pero hace que su plug-in fácil de usar, y por lo tanto más propensos a ser popular.

La otra mitad de la Ley de Postel significa que sólo lectura propiedades sólo deben tener valores documentados. Una vez más, tomemos el caso de propiedad booleano: si sus documentos dicen que el valor es "verdadero" o "falso", no volver nunca "1" en su lugar, a pesar de que JavaScript entiende que para ser un valor Truthy. Siga su propia especificación, incluso a medida que escribe código que permite a otros que violan con impunidad.

Por cierto, no me gusta la idea de las propiedades de sólo escritura. Usted debe hacer estas funciones en su lugar. Es decir:

pluginInstance.setWriteOnlyProperty(5);

No:

pluginInstance.writeOnlyProperty = 5;

Variables de lectura son cosas bien entendidos. las variables de sólo escritura son raros de ver. La única vez que he visto uno está en un pequeño microcontrolador de 8 bits, y la razón para ello era clara, debido al diseño del hardware. No veo espacio para este tipo de buenas excusas en el software.

Otros consejos

No descartaría valores en silencio, incluso si usted hace que sea muy claro en la documentación. Una declaración de no devolver cualquier tipo de error hace que parezca que hay que tener un efecto. Es más fácil de depurar si recibe un mensaje de error claro ( "Propiedad x es de sólo lectura").

Estoy de acuerdo con la respuesta de Warren Young, sin embargo, en cuanto a las funciones de sólo escritura van. Sólo escritura propiedades son poco intuitivo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top