Estoy aprendiendo nodejs y tengo experiencia previa con otros lenguajes {fuertemente tipados}. Estoy sufriendo un poco al encontrar la razón por la cual hay tanto abuso de valores mágicos (principalmente cadenas) en los módulos centrales de nodejs.
Solo para dar un ejemplo, tomemos la implementación del módulo http que tiene clases que amplían EventEmitter y se basa en cadenas para identificar eventos, como la clase http.Server con sus identificadores de eventos 'connection' , 'connect' y 'request' .
¿Hay alguna razón para eso? ¿No hay una mejor manera de lograrlo (como simplemente usar un objeto, por ejemplo)?
¿Hay alguna razón para eso?
ECMAScript no tiene enumeraciones. Para modelarlos, uno tendría que usar uno de los tipos disponibles, a saber, números, cadenas u objetos (o símbolos, aunque son más jóvenes que NodeJS). Ahora, las "cadenas mágicas" son mucho mejores que los "números mágicos" o los "objetos vacíos mágicos".
No estoy 100 % seguro, pero la definición formal en el sitio web oficial de Node describe a Node como "un tiempo de ejecución de JavaScript basado en el motor de JavaScript V8 de Chrome". y v8 se creó principalmente para el lado del cliente, es decir, web. Entonces, si observa los eventos web , verá que se usa este patrón. Probablemente por eso pienso.