Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Principios de responsabilidad única

29/32
Recursos

Aportes 18

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Principio de responsabilidad unica. Idealmente un archivo deberia tener un proposito o responsabilidad unica: definir una clase, una interfaz, un enumerado, etc.
Esto mejora la legibilidad de codigo, facilita la lectura, testing y favorece su mantenimiento.

Utilizamos archivos separados y la utilizacion de import, export para lograr un poco mas de mantenibiilidad. Podemos usar tambien carpetas para separar nuestros archivos.

Para observar una carpeta entera usamos:

tsc --project myFolder --watch

En el minuto 7:11 el maestro dice que para ir a la definición de la clase podemos presionar la tecla ctrl y luego hacemos click, otra forma seria posicionarnos encima de la clase y darle a f12.

es uso de la función findIndex() es útil para encontrar la posición de un ítem dentro de un arreglo, pero para el caso de eliminar dicho ítem del arreglo prefiero utilizar filter() que te retorna un nuevo arreglo sin el ítem a eliminar y evita así hacer validaciones y utilizar más funciones.

No sé que tanta diferencia en performance pueda haber entre utilizar findIndex() o filter(), pero sin dudas con filter() se ahorra mucho código.

removeAlbum(id: number): void {
	const newArr = this.album.filter((a) => a.id !== id);
	this._album = newArr;
}
			

Ademas de esto, el SRP nos dice que una clase debe tener una sola responsabilidad unica y debe estar desacoplada. En este caso por ejemplo una mejora seria que el usuario no deberia saber como remover o agregar albumes, para esto creamos otra clase que se encarge solo de eso. https://code.tutsplus.com/tutorials/solid-part-1-the-single-responsibility-principle--net-36074

  • Como defender el Principio de Responsabilidad Única :
    Para defender el Principio de Responsabilidad Única en nuestro código podemos apoyarnos en mejorar dos aspectos del mismo. Estos son la cohesión y el acoplamiento, de forma que:
  1. Mantener una alta cohesión, es decir, mantener ‘unidas’ funcionalidades que estén relacionadas entre sí y mantener fuera aquello que no esté relacionado. El objetivo es aumentar la cohesión entre las cosas que cambian por las mismas razones.

  2. Mantener un bajo acoplamiento, es decir, reducir al máximo posible el grado de la relación de un clase o módulo con el resto, para favorecer crear código más fácilmente mantenible, extensible y testeable. El objetivo es disminuir el acoplamiento entre aquellas cosas que cambian de forma diferente.

Estos dos aspectos favorecerá un código con funcionalidades más concretas y mejor especificadas.
Reúne las cosas que cambian por las mismas razones. Separa las cosas que cambian por diferentes razones.

fuente: click acá

Todo se ve ahora mucho mejor 😃

Esto viene de SOLID, un principio de la POO.

Yo hice el metodo un toque diferente, pero que funcíona de la misma manera 😄

Nunca había escuchado de esto, excelente

es mas facil remover asi

removeAlbum(album:Album){
       this.album.filter(a => a.id !== album.id)
    }

En éste puntooo te das cuenta que te encanta JS.

Hola 👋

Para mas informacion sobre los principios SOLID visitad aqui SOLID video. A mi sirvio un monton.
Espero haberles aportado algo 🚀

Principio de responsabilidad única
Cara archivo tiene una responsabilidad, mejrando la legibilidad, lectura, testing & favorecer el mantemiento. Solid. Buenas prácticas de POO.
Ctrl + clic en la clase me lleva al archivo.

Interesante clase!

La configuración ES5 en el tsconfig.ts era para que la salida de como resultado que ese código resultante corra en todos los navegadores, no entendía porque cambio la configuración a ES2015 en el min 10 mas allá de poder poder utilizar la función findIndex, pero creo que solo fue para eso. Ahora para que el código pueda seguir dando un resultado en ES5 y que corra en todos los navegadores se necesita hacer uso de Babel.

Esto es como la Modularidad de Java, consiste en dividir los programas en mas clases para que así mismo sea mas fácil identificar problemas, una buena técnica.

n

ese error de la funcion findIndex me habia uscedido una vez y nunca pense que cmbiando la version del target se arreglara solo. siempre se aprende algo nuevo.