En el trabajo, utilizamos jQuery. Poco después de que comenzamos a usarlo, vi que un par de desarrolladores estaban agregando funciones a un archivo jquery-extensions.js. En el interior, encontré un montón de métodos agregados a $
que básicamente equivalen a métodos estáticos en jQuery. He aquí algunos de ellos:
$.formatString(str, args) {
...
}
$.objectToArray(obj) {
...
}
Etc. Ninguno de ellos utilizan realmente nada que ver con jQuery. Esto me pareció extraño.
Eventualmente, necesitábamos una función en nuestra biblioteca para localizar las fechas. Mi solución fue crear:
Date.prototype.toLocaleDate = function() {
...
}
Date.parseLocalDate = function() {
...
}
Poco después de hacer esto, aparece un señor desarrollador que sube para pedirme lo que pienso que estoy haciendo. Él me dice que aquí, donde trabajo, no creamos prototipos porque son malvados. Las únicas razones que dio fue que son fundamentalmente características de un lenguaje deficiente porque "pueden ser objeto de abuso" y que es confuso ver prototipos (por ejemplo, cómo sé la nueva Fecha(). ToLocaleDate() es un prototipo y no es ECMAScript nativo) Al usar $.formatString(...)
en lugar de "blah blah".formatString(...)
, estamos dejando en claro que cualquier cosa con $ no es parte de JavaScript nativo.
Esas razones parecer un poco tonto, pero me ofreció un compromiso para que no tenga que recordar si un método era un prototipo — prefijo del nombre de la función prototipo con $
:
String.prototype.$format = function() {
...
}
"blah blah".$format(...);
que fue rápidamente descartada y ahora tengo que agregar estas funciones $ .myPrototypeAsAFauxStaticMethodOnjQuery() en todas partes.
¿Soy el único que piensa que esta práctica es estúpida?
Solo quieren el '$', si entienden mi opinión. – BoltClock
"¿Soy el único que piensa que esta práctica es estúpida?" No. Pero ... ** ** hace de esto una Wiki de la comunidad o se cerrará. Mejor aún, pregunte esto en http://programmers.stackexchange.com –
@Kirk Woll: ¿cuál es el requisito de representante para hacer sus propias publicaciones CW? (Sé que se requiere 100 para editar otras publicaciones de CW.) – BoltClock