Que opinais de todos los metodos void de un objeto.
Dog. setBark( ... )
Dog. setXXX( ... )
En lugar de ser void devuelvo el objeto?
Asi puedo encadenarlo con streams/optionals
dog
.map(...)
.map(...)... etc
Buena / Mala práctica? partiendo de que la oop/mutabilidad es una mala práctica.
#37682 para que quieres devolver el objeto cada vez que llamas a un método? No te vale con instanciarlo una sola vez?
https://en.wikipedia.org/wiki/Method_chaining
https://en.wikipedia.org/wiki/Fluent_interface
Quedar queda bonito, alguna vez he hecho cosas así.
#37687 en ese ejemplo deduzco que el objeto esta instanciado una sola vez. Simplemente devuelve el mismo objeto una vez mutado para poder hacer method chaining y ser un true declarative programmer
#37690 si quiero evitar voids, si fuese immutable devolvería un objeto nuevo.
La librería con la que trabajo es una mierda, considera nulls objetos pendientes de instanciar y modifica todo, se guarda las referencias y las va modificando para hacer cambios internamente ...
Pff código del 2000 en el 2020
Lo del method chaining me la suda la verdad, me va bien porque yo uso optionals y puedo encadenar métodos que no deberían fallar y devolver el caso por defecto si ocurriese. (si me doy cuenta de lo que he dicho xd)
He lanzado la duda porque he creído que era algo que seguro que se ha debatido mucho en el pasado.
@poyer el problema és que solo se instancia una sola vez
#37684 te meto unos lens que no hay aplicative que te construya despues
Yo soy muy fan de constructores con tantos argumentos como haga falta. Un objeto no debería poderse instanciar a medias y confiar en que se van a asignar X properties después.
#37692 Y si todos los parámetros vienen en un *params
que ni esté documentado pues mejor que mejor.
De la descripción de la función podemos ver que args representa un conjunto arbitrario de argumentos posicionales
Todo lo arbitrario mola, y si es sin documentar, mejorrrrrrrrrr
#37697 Loco, que menos que partir de una base en condiciones [...cadena].forEach(c => console.log(c))
#37701 Como lo has puesto tú es como haría un bucle normal, pero no tengo claro como "pausar" cada iteración... Seguiré in the night.
function kazulu(text){
if(text.length > 0){
const character = text.substring(0,1);
text = text.substring(1);
console.log(character);
setTimeout(() => kazulu(text), 1000)
}
}
Está claro que programando soy la mierda aún, no utilizo ni el 10% de las herramientas básicas que me da un lenguaje y mirando el código es un "caca pedo culo pis". Aunque sí es cierto que lo que hago funciona y resuelve la papeleta toca más hincar los codos.