No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Aprende Ingl茅s, Programaci贸n, AI, Ciberseguridad y mucho m谩s.

Antes: $249

Currency
$209
Suscr铆bete

Termina en:

3 D铆as
21 Hrs
33 Min
19 Seg
Curso de Java Spring

Curso de Java Spring

Alejandro Ram铆rez

Alejandro Ram铆rez

Orientar nuestro repositorio a t茅rminos del dominio

21/35
Recursos

Aportes 40

Preguntas 24

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

cuando se maneja todo el proyecto en ingles se puede usar el siguiente est谩ndar de nombrado. Usando como ejemplo la entidad Product:

ProductDTO para objetos de dominio
Product para las entidades

Una de las clases quiz谩s mas densas en cuestion de la cantidad de clases, metodos y funciones a las que toca echarles una repasada. Pero es cuestion de ver una y otra vez el video y aprovechar esta explicacion magnifica para retomar el hilo del proyecto y aprender cosas importantes

yo ya se programar con java , python , javascript. he hecho aplicaciones con nodejs express ,pero ver este curso me hace sentir un principiante. asi que a esto se referia mi profe de la universidad de que con java se hace ingeniera de software de verdad.

Me parece que el profe debi贸 hacer un repaso por el flujo de datos entre las diferentes capas, pues se vuelve un poco confuso seguirle el paso sin entender como interactuanentre si.

En mi opini贸n la estrategia de nombrar a las clases en espa帽ol e ingles estuvo bien, porque de esa manera puede entender la forma como se utiliza MapStruct y conocer el potencial de la misma, para evitar el acoplamiento del c贸digo a una base de datos puntual y enfocar el c贸digo al dominio. Excelente explicaci贸n

Por ejemplo, en el caso del c贸digo de barras, como no tenemos acceso a este desde la API, si queremos agregarlo program谩ticamente, ser铆a algo como:

@Override
public Product save(Product product) {
    Producto producto = mapper.toProducto(product);
    producto.setCodigoBarras("uncodigo");
    // Aqui se guarda el producto con el codigo de barras
    // pero luego del hacer el mapping el Product que se retorna ya no tiene el atributo codigoBarras (barCode)
    return mapper.toProduct(productoCrudRepository.save(producto));
}

Ser铆a algo as铆?

Que confuso, 3 repositorios de productos 鈥

Resumen de que se intenta hacer:

Al orientar nuestro repositorio a t茅rminos del dominio, lo que se quiere conseguir es conectar los m茅todos que tenemos en el repositorio, a el dominio para que as铆 todo funcione en t茅rminos del dominio y no de la base que est谩 conectada directamente con la DB.

En mi opini贸n es importante escribir el proyecto en cualquier otro idioma diferente al que estamos acostumbrado, como lo hace el profesor porque en la vida real te encuentras con una sopa de c贸digo y esto que nos ense帽a nos hace ser mas 谩giles para codificar o o corregir a futuro.
Felicito al 1000% al profesor, es otro de los que han explicado super bien los cursos que he tomado aqui en Platzi 馃槈

Un aporte en el uso de la lambda:

Mientras lo que reciba alg煤n m茅todo coincide en el orden y tipos de los argumentos de la lambda, el m茅todo se puede pasar a referencia.

Es decir que esto:

return products.map(productDataList -> productMapper.toProducts(productDataList));

Se reducir铆a a esto:

return products.map(productMapper::toProducts);

Reci茅n empiezo con JAVA y este curso est谩 brutal, el entender como concepto la arquitectua por capas orientadas al dominio quit贸 muchas confusiones que hasta esta clase ten铆a. Por ello una buena clase con sus comentarios es la siguiente: https://platzi.com/clases/1248-pro-arquitectura/10419-patrones-diseno-orientado-al-dominio/
S贸lo la punta del iceberg, a seguirle dando!!!

Esta clase ya roza lo confuso, porque es muy necesaria una explicaci贸n gr谩fica para representar este punto del flujo de la arquitectura, y evitar confusiones con las estructuras mentales que forzamos para entender esta clase.

Est谩 genial el curso, uno de los mejores que he hecho. Aunque el ejemplo quiz谩s no sea tan preciso y redunda mucho el c贸digo.

Si a alguno de ustedes les est谩 dando problemas al hacer build al proyecto con un error como

No property named 鈥<attribute>鈥 exists in source parameter(s)

aseg煤rense de tener construidos en la clases los getters para todos los atributos. Si no es as铆, el MapStruct no puede realizar el mapeo de forma adecuada.

M谩s informaci贸n en la documentaci贸n de MapStruct

Ya me perd铆, empezar茅 de nuevo el proyecto porque aqui tiene c贸digo que no vi donde lo agreg贸 en la clase ProductRepository.java de la carpeta persistence 馃槮

1.- Cual es la diferencia entre una lista normal y una lista optional?
2.- si la bd esta en ingles y todo esta en ingles鈥 ya no es necesario usar MapStruct ?
3.- Porque Optional.of?

Gracias de antemano

鈥淓n la clase anterior, observamos como funciona Mapper Struct鈥. Yo la verdad ni idea de lo que estoy haciendo, parece mas un tutorial que un curso!!

Lo unico que he visto que funciona es la url.

Ahora cuando ejecute el programa, una velita y encomendacion a Diosito.

Ahora s铆 se enredo esta vaina鈥 馃槮

Hace mucho que perdi贸 el sentido que era hacer mas simples las cosas y escribir menos c贸digo, adem谩s de que este es mas dif铆cil de leer.

Una clase y un tema que resulta tener un grado de complejidad

Aqu铆 me perd铆 profe, ya no te entend铆 nada 馃槮

Esta es la clase en la que te pierdo jaja

Que confuso se volvio este curso

Es el primer curso que hago en Platzi, creo que era adecuado graficar correctamente la arquitectura en diagramas, explicar el flujo.
1. No entiendo porque se hacen primero todos esos metodos y despues los borran 2. me siento perdido

Creo que empezar茅 de nuevo, no tengo el c贸digo de la clase ProductRepository de persistence como lo tiene el profe, no veo donde se perdi贸 ese c贸digo. 馃槮

Todas las clases deben estar orientadas al dominio?

Se que no es el tema, pero agradecer铆a una breve explicaci贸n del m茅todo map de Optional. En que momento se declaro 鈥減rods鈥? De donde viene su valor?

Excelente manejo de los optionals y lambdas de java 8

PORQUE USAR MAP STRUCT

Est谩 muy bien el curso, la verdad es que el profe explica muy claro. Pero definitivamente concuerdo con los dem谩s en que el nombramiento de clases e interfaces se torna algo confuso y deber铆a cambiarse. Se podr铆a explicar el pseudo-patr贸n DTO de paso como lo menciona @fernandojerez m谩s arriba. De todas forma buen铆simo el curso, gran profesor.
no entiendo muy bien el uso de @Override en ProductoRepository.java fuera del dominio
GG
Vengo de usar otros framework de back.... como NestJS... En alg煤n momento usa los DTO? El curso iba bien hasta que saco MapStruct... ya que estoy estudiando en un computador de la empresa para que laboro y no puedo instalar cualquier IDE.... estoy con VSCODE que iba super genial... Y si, pues puedo usar mi computador personal... pero entienden la limitaci贸n de usar librer铆as o IDE's super acoplados a algo que sinceramente es ajeno a Spring.... Por Dios siento que perdi mi tiempo con este curso...
alguien entendio porque hizo como hizo el getProduct y el save? Que me explique porfaaa!!

隆Muy bueno!

Es incorrecto decir m谩s 贸ptimo.

Se podr铆a hacer el mapper en la capa de service para evitar tener tantos repositorios? o la responsabilidad de mapear es de un repositorio?

Significado de todo esto

Tengo una consulta que pasar铆a si en la clase ProductoRepository de persistence se usara
un ProductCrudRepository<Product,Integer> en ves de un ProductoCrudRepository ya que no se tuviere que convertir muchas veces o usar el famoso mapper es valido profesor?