Mejora tu código aplicando Clean Architecture

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 ก.ย. 2022
  • Las Clean Arquitectures y en concreto la Arquitectura Hexagonal nos pueden ayudar a hacer nuestro código más mantenible, testable y escalable. Aprende a aplicarlo y validarlo en tu código gracias al plugin de ESLint que hemos desarrollado: www.npmjs.com/package/eslint-...
    Todo esto y más lo vemos en detalle en el curso de Linting en JavaScript y TypeScript, para exprimir al máximo ESLint y llevar tu código al siguiente nivel 👉 pro.codely.com/library/lintin...
    ﹤🍍﹥ CodelyTV
    ├ 🎥 Suscríbete: th-cam.com/users/CodelyTV?sub_co...
    ├ 🐦 Twitter CodelyTV: / codelytv
    ├ 🌶 Twitter Núria: / nuria_codes
    ├ 💂🏼 Twitter Rafa: / rafaoe
    ├ 📸 Instagram: / codelytv
    ├ ℹ️ LinkedIn: / codelytv
    ├ 🟦 Facebook: / codelytv
    └ 📕 Catálogo cursos: bit.ly/cursos-codely
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 128

  • @CodelyTV
    @CodelyTV  ปีที่แล้ว +14

    ¿Utilizas una Clean Architecture? 🤔
    Aquí el curso 🙂👉 bit.ly/linting-js
    Aquí el plugin para que le des una estrellita ⭐👉 github.com/CodelyTV/eslint-plugin-hexagonal-architecture

  • @blacknight4414
    @blacknight4414 หลายเดือนก่อน

    Pedazo de video, graciaas

  • @rafaelb778
    @rafaelb778 5 หลายเดือนก่อน +1

    Excelente video ya lo había visto hace tiempo pero hoy lo volví a ver

  • @wilmermonsalvo2560
    @wilmermonsalvo2560 ปีที่แล้ว

    Guys it really works, I checked

  • @bryankey7421
    @bryankey7421 ปีที่แล้ว +1

    El mejor video de este canal creo yo... Facil y AL PUNTO!

  • @jmoratoc
    @jmoratoc ปีที่แล้ว +9

    Gran vídeo! Sería genial ver un ejemplo completo, analizando cada capa y ver cómo se une con la UI! :)

  • @user-qd2ff2dy5r
    @user-qd2ff2dy5r 3 หลายเดือนก่อน

    Buenísimo chicos. Unos cracks.❤

  • @juanisidorogarcia1699
    @juanisidorogarcia1699 ปีที่แล้ว

    OLE!! OLE!! y OLE!! jejejejej. Que apañaos que sois ^^. Seguir así! muchísimos ánimos!

  • @crisanger
    @crisanger ปีที่แล้ว

    Excelente contenido, y con lo del plugin la sacaron del estadio, mil gracias.

  • @RobertoSMelo
    @RobertoSMelo ปีที่แล้ว +1

    Woooowwwwww que super mega herramienta 👏👏👏👏

  • @adrianns
    @adrianns ปีที่แล้ว +1

    Que buena codely! buen video!

  • @johnf3407
    @johnf3407 ปีที่แล้ว

    wao... plugin que aporta valor !! nunca mejor dicho

  • @williamegomezo
    @williamegomezo ปีที่แล้ว

    Love it, genial, el plugin excepcional.

  • @kodenix
    @kodenix ปีที่แล้ว +5

    Hola Nuria y Rafa, Primero felicitaros por el plugin y por el video que seguro le aportará muchísimo a mucho desarrolladores. Por otra parte seguro que lo sabeis pero creo que sería interesante para el resto que se comentara que las distribuciones de carpetas tienen nombre, Vertical Slicing(Cuando agrupamos cohesivamente por caso de uso o modulo) y Horizontal Slicing (Cuando agrupamos por el rol del elemento software Controlador, Vista, Modelo, Repositorio o lo que sea), al final en el ejemplo que ponen terminan en un mix que es como yo lo uso, vertical slicing y dentro de cada modulo horizontal slicing. Un saludo!!

  • @Alejandrocd_
    @Alejandrocd_ 6 หลายเดือนก่อน

    cuales son los iconos y temas que usan en el visual studio code? gran video

  • @ralgit
    @ralgit ปีที่แล้ว

    Gracias por el contenido!

  • @GabrielReyesV
    @GabrielReyesV ปีที่แล้ว

    Excelente video se les felicita!!! 😀

  • @d-landjs
    @d-landjs ปีที่แล้ว

    Excelente explicación!!!

  • @gustavoangelish
    @gustavoangelish 5 หลายเดือนก่อน

    Amé su video!

  • @m_i_g_u_e_l_
    @m_i_g_u_e_l_ ปีที่แล้ว +3

    Después de tanto buscar acabo de entender cuan potente es la arquitectura hexagonal junto con la vertical slice gracias a ustedes. Muchas gracias.

  • @Paulitusgirl
    @Paulitusgirl ปีที่แล้ว

    Superrr pulgin!! lo voy a probar :)

  • @nivus97
    @nivus97 ปีที่แล้ว +66

    Estaría super que realizaran un ejemplo en frontend (React) de como se aplicaria el patron repoositorio por ejemplo con esta arquitectura

    • @crisanger
      @crisanger ปีที่แล้ว +3

      @CodelyTv Por favor tenerlo en cuenta, con ejemplos practicos y sencillos se entiende mejor el tema

    • @veelglorie
      @veelglorie ปีที่แล้ว +2

      En un repositorio vos podés escribir y leer data. En "backend" haces implementaciónes de bases de datos. Por ejemplo MYSQL, Firestore. Para "frontend" también podes hacer algo similar pero con localstorage, o alguna API que por detrás consulte a la DB.

    • @crisanger
      @crisanger ปีที่แล้ว

      Sr.@@jefjef418 Excelente aporte

  • @alejandrogarciagomez9177
    @alejandrogarciagomez9177 15 วันที่ผ่านมา

    En una arquitectura hexagonal tengo entendido que se una un cocepto de drivers, drivens, adapters, y ports pero aquí confunden conceptos. Si estyo mal me corrigen. Pero gracias por el contenido

  • @alexlun4464
    @alexlun4464 ปีที่แล้ว

    Buen video buen explicado

  • @drackp2m
    @drackp2m ปีที่แล้ว +2

    Este vídeo tendría muchísimas más visitas si se añade información relevante al ESLint en el título. (seguramente)

  • @YoungHWN
    @YoungHWN ปีที่แล้ว

    wowwwwwwwwwwww superrrrrrrrrr!!!

  • @atorancio
    @atorancio 7 หลายเดือนก่อน

    Si es que lo entiendi bien... Repository podria ser un siguiente nivel de "capa de abastraccion" con respecto a los DAO, donde los metodos de repository no representan las operaciones basicas de un CRUD, sino que esta mas orientado a acciones puntuales necesarias en el negocio, pero que al momento de obtener la informacion, podria usar internamente DAOs. Es correcto?

  • @Deus-lo-Vuilt
    @Deus-lo-Vuilt 10 หลายเดือนก่อน

    Muy interesante estos videos

  • @CarlosDiaz-vp5wl
    @CarlosDiaz-vp5wl 7 หลายเดือนก่อน

    Proque mejora el codigo la organizacion de paquetes?que mas da que tenga un paquete qu se llame serivcios con una interfaz y una implmentacion a que se llame aplicacion para la intergaz y dominio para la implementacion? en que mejora eso el codigo?al final es donde pongo la clase nada mas

  • @izeuki2795
    @izeuki2795 ปีที่แล้ว

    It’s totally worth learning new skills cause then you get excited and confident to create

  • @nathlvz
    @nathlvz 11 หลายเดือนก่อน

    la capa de aplicacion debe de manejar transaccionalidad?, pregunto porque en si en la capa de application van los casos de uso que pasa si quiero conectar mas de 2 casos de uso a otro caso, lo ideal seria una facadaa?, si es asi en que capa iria la facada?

  • @icedev8078
    @icedev8078 ปีที่แล้ว

    Lo voy a usar en mi proyecto de NextJS a ver cómo se ve

  • @jfgomez0912
    @jfgomez0912 ปีที่แล้ว +1

    Sería muy bueno ver un ejemplo de esta arquitectura aplicada a un proceso de datos, tipo ETL. Muchas gracias por los vídeos 😊 Son de mucho valor

    • @cesardmora86
      @cesardmora86 ปีที่แล้ว +1

      Ufff ETL...difícil de explicar bien, porque en los casos ejemplo (una tabla maestra y un par de tablas anidadas) es muy sencillo, escalable y flexible... pero cuando llegas a casos reales, las cosas son más complicadas y aunque en esencia es lo mismo, el código se complica para manejar casos especiales y esos casos son diferentes según el problema que tengas...
      Es decir, si tomas como ejemplo un caso complicado, la solución está muy ligada a ese problema y es probable que no la puedas usar siempre... por eso digo que ETL es muy difícil de explicar bien.

    • @cesardmora86
      @cesardmora86 ปีที่แล้ว +1

      Trabajé en un proyecto ETL donde la tabla maestra dependía no sólo de otras tablas, sino de otros sistemas como SAP , apps privadas, archivos, datos en memoria... y no era una única tabla maestra, era un modelo completo de al menos 100 tablas...
      Ahí aprendí por las malas que una solucion general para ETL no existe, siempre hay casos especiales que "dañan" el modelo general (lo que aprendes en un curso), y esos casos no sólo están influenciados por la complejidad técnica, sino también por lo que el cliente quiere, y si haces una app que va a ser usada por diferentes clientes y cada uno quiere importar cosas diferentes, con archivos y formatos diferentes, y filtrar/transformar los datos de manera diferente, todo se convierte en un desafío de la ingeniería... y manejar eso en un video/clase/curso es imposible...
      Y la verdad es que se aprende más con la experiencia que con un curso ;) claro, los estudios son necesarios para tener más herramientas a la hora de solucionar problemas de verdad difíciles

    • @cesardmora86
      @cesardmora86 ปีที่แล้ว

      Un ejemplo básico y fácil de ETL es como Elasticsearch extrae datos de una BD (MySql, MSSQL...), los transforma en Json y los indexa en su base de datos...
      Todo funciona a pedir de boca, defines los scripts de extracción, simples selects, y como esos "Records" se transforman en Json, y donde esos Json son guardados en Elasticsearch... simple
      Pero tuve proyectos donde eso no sirvió porque los datos de la BD no eran suficientes, había que enriquecerlos con sistemas remotos, cosas en las que la gente de Elasticsearch no pensó, ni programó...
      el caso general (los simples scripts) no sirve y hay que escribirse un ETL completo desde cero para ese cliente...

    • @cesardmora86
      @cesardmora86 ปีที่แล้ว

      en esos casos hay que inventarse una estructura básica y genérica que es la que trabaja los datos al final... digamos XML... tu algoritmo consume los datos desde ese XML definido por ti y haces con ellos lo que quieras...
      si hay un cliente con lógica especial, entonces escribes un programa que toma esos datos de entrada en el formato que sea y los transforma en TU XML...
      esa es la forma más elegante de mantener tu código limpio... no tiene buen performance porque los datos tienen que ser transformados hacia XML, y de XML hacia tu modelo, pero es demasiado flexible
      Si lo haces bien, puedes tener un único algoritmo que importa datos en tu DB y puedes cambiar la fuente de datos on-the-fly... puedes importar datos de SAP, y con el mismo algoritmo puedes cambiar a importarlos desde un archivo, o tu misma BD
      Échale un ojo a Mirth

  • @paulomirandaarias9544
    @paulomirandaarias9544 ปีที่แล้ว

    El ejemplo de estructura de carpetas en 7:03 me parece que enreda y hace aún menos escalable el proyecto. Porque al mismo 1er nivel (módulos), tienen "auth" y "course", y ahí están mezclando conceptos de la capa de Infra con Application, para luego a cada modulo aplicar las 3 capas nuevamente de I-A-D. Para evitar el problema inicial, sugiero no dejar en paralelo las 3 carpetas de I-A-D, sino una dentro de la otra, la de más afuera la de I, y dentro la de A, y dentro la de D, así I puede acceder a cualquier capeta de A haciendo import de 'application1/recurso', y lo mismo cuando algo de Application quiera acceder a un recurso del Domain. Y cada carpeta de nivel tendrá acceso solo a su capa, sin tener que ir a buscar cosas a un nivel superior con '../../'

  • @chambalegui
    @chambalegui ปีที่แล้ว

    Despacio franchute, esto es oro.

  • @serpex
    @serpex ปีที่แล้ว +1

    Hola! Gracias por el video, tengo un par de dudas. Por qué dicen que están usando arquitectura hexagonal si no están haciendo uso de adaptadores y puertos ? Parece más Onion o Clean Arquitecture. Lo otro, por qué pueden haber tantas entidades dentro del proyecto? es un monolito?.
    Si pienso en un MicroServicio debería tener 1 y probablemente el auth. O puede ser por ejemplo que este ms se integra y hace llamadas a otros ms como de product, course, student, etc.?
    Muchas gracias.

  • @lsolano2707
    @lsolano2707 ปีที่แล้ว

    Muy buen video

  • @icedev8078
    @icedev8078 ปีที่แล้ว

    Que fuerte

  • @stylersito
    @stylersito 6 วันที่ผ่านมา

    alguien sabe cual es la biblioteca de iconos que utilizan? 03:24

    • @CodelyTV
      @CodelyTV  5 วันที่ผ่านมา

      Es la que viene por defecto en IntelliJ 🙌

  • @initiald2297
    @initiald2297 ปีที่แล้ว +4

    En el caso de un proyecto de front seguiría la misma estructura de carpetas?

    • @kodenix
      @kodenix ปีที่แล้ว

      Por si te pudiera ayudar, yo lo he aplicado en front igual, la infraestructura tiene la misma razón de ser, solicitar y persistir datos pero en vez de a una BD puede ser a una api o memoria o lo que tu necesitas.

    • @initiald2297
      @initiald2297 ปีที่แล้ว

      @@kodenix Entiendo y en cuanto a por ejemplo components/pages/hooks/contexts etc entraria en la carpeta de cada uno o en un directorio nuevo llamado por ejemplo ui

    • @kodenix
      @kodenix ปีที่แล้ว

      @@initiald2297 Todos los elementos que comentas forman parte de tecnología especifica de la capa de boundary,presentacion o como quieran verlo segun que arquitectura. En cualquier caso podrías crear un directorio "presentation" y meter ahí todo lo que interactúa con el usuario. ¿Por que no UI?, porque si fueces otro tipo de aplicación, ejemplo una API no le llamarías vistas a los controladores que manejan las peticiones HTTP o lo que sea que realiza un actor ->"otra aplicacion" (pero en el fondo son las vistas que ataca el cliente), por lo tanto podrias llamarle presentation o boundary, como quieras. pienso que mas importante es entender que pongas el nombre que ponga sepas que responsabilidades cumplen los elementos que se encuentran en cada capa.

    • @kodenix
      @kodenix ปีที่แล้ว

      Olvidé comentar que en el caso de un framework ya sea backend o frontend, ya traen una estructura de proyecto pero eso no quita que todos los elementos que crees una organizacion de tus capas dentro de la carpeta de codigo de tu framework, un ejemplo que vale para Angular y Nest es crear la estructura de carpetas presentation, infrastructure, domain, application dentro de src y mover los componentes, modulos, servicios, controladores por defecto que tare el framework a presentation. De esta forma aprovechas el esquema de herramientas del framework y tienes tu lógica aislada de tecnología

  • @johngualteros3868
    @johngualteros3868 ปีที่แล้ว +1

    alguien sabe el nombre de la fuente que usa en intellij?

  • @fjmn2001
    @fjmn2001 ปีที่แล้ว

    Excelente!

  • @jacobgonzalez4746
    @jacobgonzalez4746 ปีที่แล้ว

    Muy brutal

  • @federicofigueroa3205
    @federicofigueroa3205 ปีที่แล้ว +5

    Estoy trabajando actualmente para una startup, definiendo todo tipo de lineamientos técnicos y el valor que me aportan para poder avanzar es increíble. Desde Argentina, MUCHISIMAS GRACIAS CODELYTV!

    • @CodelyTV
      @CodelyTV  ปีที่แล้ว

      Muchas gracias por tu mensaje!!

  • @migmartin
    @migmartin ปีที่แล้ว

    En la parte final del video cuando dentro de la capa de Aplicación llaman a userRepository que es parte del Dominio, ¿Como es que el Dominio hará el guardado si está desacoplado de la capa Infraestructura? Entiendo que el dominio no debe conocer nada de Infraestructura.

    • @migmartin
      @migmartin ปีที่แล้ว

      Leyendo un poco más entendí que el Dominio no se conecta directamente a Infraestructura si no que usa un puerto o interfaz que se conecta a un adapter y en la infraestructura es donde se hace la implementación.

  • @Cristian291011
    @Cristian291011 ปีที่แล้ว +1

    Si utilizo un Framework cómo Nestjs para el manejo de inyección de dependencias en una arquitectura limpia ahí a la final no sería arquitectura limpia por qué estaria dependiendo de ese Framework no? O como se debería manejar o sería una excepción a la regla?

    • @finnelhumano3326
      @finnelhumano3326 ปีที่แล้ว

      Claro tu aplicacion esta acoplada al framework, si quisieras migrarla a otro framework tendrias que reescribir todo devuelta

  • @ernestofuentes9333
    @ernestofuentes9333 ปีที่แล้ว +4

    Buenisimo el resumen Rafa y Nuria, pero tengo una pregunta, en el modelo de organización que proponen uniendo el concepto de screaming architecture con las carpetas por agregado de dominio, como se resolvería la necesidad de implementar casos de uso donde se requiera la intervención de varios agregados, como aplicarían las reglas de dependencia allí?

    • @kodenix
      @kodenix ปีที่แล้ว +1

      Hola Ernesto, buenísima pregunta, yo tambien me la hice en su momento y la solución que encontré fue creando un módulo shared donde a través de un index.ts exporto los agregados que se puedan usar en otros módulos, digamos que un caso de uso que necesita hacer uso de un agregado que pertenece a otro módulo solo lo debería poder importar desde el módulo shared. Evidentemente es una regla que te creas como diseño de tu arquitectura. En caso de usar monorepos existen reglas que se pueden definir donde se especifica que tipo de modulo puede importar elementos del dominio de que otros módulos, en esa regla yo especifico que un módulo estandar(todos menos el shared) pueden importar solo desde shared y al shared le aplico la regla de que puede importar de cualquier otro. Es la solución que yo aplico que seguro no será la mejor pero la idea viene de las propias implementaciones de los monorepos. Igual @CodelyTv crea otro plugin para esto 😉

  • @carloscampos1857
    @carloscampos1857 ปีที่แล้ว

    He visto a dios, y no hablo por el vídeo en si que por conocimiento y experiencia puedo darles la razón, sino por lo de ESLint. Eso me da ideas de crear extensiones para visual studio que ayuden a la correcta aplicación de los conceptos clave de la programación.

  • @fcarrero
    @fcarrero ปีที่แล้ว +1

    esperando el linter para Go

  • @ArturoDevA
    @ArturoDevA 10 หลายเดือนก่อน

    En Android clean architecture es lo más adecuado

  • @josergdev
    @josergdev ปีที่แล้ว

    Me recuerda a ArchUnit para java. Muy interesante.

  • @SonHoang-jv8dy
    @SonHoang-jv8dy ปีที่แล้ว

    All of my computers got the softwares here. I first install them on virtual environnt to make sure they're not malware. So I can assure

  • @luisstiventrujilloortiz8734
    @luisstiventrujilloortiz8734 ปีที่แล้ว

    La clean architecture tiene sub arquitecturas? Y la hexagonal es una de estas o no entendí

    • @CodelyTV
      @CodelyTV  ปีที่แล้ว +1

      Correcto! Clean Architecture es un tipo de arquitecturas, entre las que se encuentra la hexagonal 😊

  • @lmarts
    @lmarts 7 หลายเดือนก่อน

    Súper claro y recomendable el vídeo! Una pregunta: Conocéis algún linter como el que habláis aplicado a PHP?

  • @frochaol
    @frochaol ปีที่แล้ว

    Muchas gracias por la explicación, tendrían el repo del ejemplo que han creado que tiene el uso de lint.

  • @jorgebuitrago2
    @jorgebuitrago2 8 หลายเดือนก่อน

    Hola,gracias por el video,donde puedo encontrar un ejemplo con vertical slice? Necesito pasar un proyecto a hexagonal, gracias

  • @axomme
    @axomme ปีที่แล้ว

    Es más lo que mostráis en el 7:02 que es la buena forma es en verdad el paso previo a pasar a una arquitectura de microservicios con lo cual dabuten.

  • @thedarsideofit
    @thedarsideofit ปีที่แล้ว

    Gracias por el contenido! Tienen algo similar pero para aplicarlo en un proyecto PHP?

  • @Kat8dev
    @Kat8dev 9 หลายเดือนก่อน +5

    Siempre es mejor enseñar el código en lugar de hablar de las teorías. y al menos enseñando el código escrito con tecnologías modernas.

  • @sainz-5318
    @sainz-5318 ปีที่แล้ว

    entonces se recomienda utilizar primero fetch antes que axios?

  • @theblack014
    @theblack014 ปีที่แล้ว

    Hola crack, tengo una duda y es algo que no me quedo muy claro usando el plugin, si tengo varios caso de uso pero en cada caso de uso estoy usando logger por ejemplo como hago para usarlo en todos esos casos de uso y que no se me repita por ejemplo la clase que cree usando logger

  • @hassleribanez9462
    @hassleribanez9462 ปีที่แล้ว

    Una pregunta, cuando un puerto externo ya sea un consumo de authenticacion o login que devuelve tókens y cosas así. El caso de uso quedaría con la respuesta asociada a ese token ?

  • @cesardmora86
    @cesardmora86 ปีที่แล้ว +1

    Se oye bonito pero hay casos donde tienes que ponerte el arma en la cabeza y acoplar tu código con un framework:
    - si usas angular por ejemplo, hasta los html están plagados por su sintaxis y javascript ni se diga...
    - si usas hibernate/spring sus anotaciones están regadas por todo el código...
    La arquitectura expuesta te ayuda a migrar librerías, versiones y extender servicios cómodamente, pero cambiar de frameworks es otra cosa, porque por lo general ellos se ramifican en todo el código y no en un único punto... por ejemplo si el módulo de "ventas" depende del módulo "productos" y quieres eliminar spring en este último, lo más seguro es que vas a tener que modificar "ventas" también y todos los que dependen de "productos"

    • @FuranGameplays
      @FuranGameplays ปีที่แล้ว

      Hexagonal está bien para sacar lo del dominio y de la capa de aplicación y poco más. Lo que tengas acoplado a la infraestructura, ahí se queda.

  • @lidiaramirezn
    @lidiaramirezn ปีที่แล้ว +4

    Dios mio, al fin ejemplos para el frontend, mayormente todo esta enfocado a Backend, espero sigan sacando temas orientados a Frontend. Gracias por el aporte.

  • @Daviidscovers
    @Daviidscovers ปีที่แล้ว

    Interesante ver un ejemplo con python

  • @luisrivero1474
    @luisrivero1474 ปีที่แล้ว

    CodelyTV por qué no tienen un podcast alguna plataforma con Spotify o Apple podcast?

  • @tusbackingtrackes
    @tusbackingtrackes ปีที่แล้ว +2

    Los frameworks permiten cambiar de base de datos

    • @sebastiansantelices6855
      @sebastiansantelices6855 ปีที่แล้ว

      Acoplarse a un framework es en síntesis lo mismo que acoplarse a una base de datos. Ambas pertenecen a la capa de infra

    • @finnelhumano3326
      @finnelhumano3326 ปีที่แล้ว +1

      En realidad el orm que te brinda el framework permite cambiar de base de datos, podrias hacer tu app sin depender de un framework e integrando el orm que vos quieras manualmente a tu proyecto

  • @andrescastillo5684
    @andrescastillo5684 ปีที่แล้ว

    Cuando hablan del error casi al final del video, era porque la capa de aplicación estaba importando de la capa de infraestructura, cierto? Es decir la capa de Aplicación solo debe tener conocimiento de ella misma y de dominio...

  • @devfreemax3578
    @devfreemax3578 ปีที่แล้ว

    Thanks

  • @joselozano4661
    @joselozano4661 ปีที่แล้ว

    Me sorprende mucho que digan que se enseñe mal y ese primer scafolding que pusieron para ejemplificar, siempre la he usado como la tercera imagen, se puede mejorar su verificador? No se mucho javascript pero de algoritmo si y de logica cual es su repo?

  • @ezequielguzman4972
    @ezequielguzman4972 ปีที่แล้ว

    @CodelyTv los cursos en su pagina estan en español? en que lenguaje se enseña lo de los patrones ?

    • @CodelyTV
      @CodelyTV  ปีที่แล้ว

      Exactamente, todo en español 🙂

    • @ezequielguzman4972
      @ezequielguzman4972 ปีที่แล้ว

      @@CodelyTV y en qué lenguaje explican el de patrones de diseño ?

  • @alexdevorigin1
    @alexdevorigin1 ปีที่แล้ว +1

    Inyección de dependencias basicamente... deberian es hacer un breve ejemplo real o con arquitecturas que muestren no tan de imagenes y explicaciones.

  • @hamelhmc
    @hamelhmc ปีที่แล้ว

    Donde esta el curso?

    • @CodelyTV
      @CodelyTV  ปีที่แล้ว

      bit.ly/linting-js 🙂

  • @Ronwarlock79
    @Ronwarlock79 ปีที่แล้ว +2

    Esta genial, me gustaria ver un ejemplo en angular

  • @mjerez6029
    @mjerez6029 ปีที่แล้ว

    Tipica optimization temprana que caus mas problemas de los que soluciona.

  • @diegoguevaravillalobos9143
    @diegoguevaravillalobos9143 ปีที่แล้ว

    ohhhh, feline

  • @geserrato
    @geserrato ปีที่แล้ว

    Hola tengo una duda la Hexagonal es la misma que Onion ?

    • @kodenix
      @kodenix ปีที่แล้ว +1

      Yeah!!, y que Clean y que la futura nueva arquitectura. Si miras con perspectiva de principios de diseño a todas las arquitecturas por capas, verás los principios de alta cohesión, bajo acoplamiento, de dependencias y abstracciones estables, etc, etc, etc.

  • @luisfcastilla
    @luisfcastilla ปีที่แล้ว +1

    Amé el resumen y la herramienta. Creo que igual la fusión o explicación al detalle de hexagonal en Frontend sería algo genial así sea en los cursos de CodelyTV

  • @davidmontoya2787
    @davidmontoya2787 ปีที่แล้ว +2

    Genial el video, sería bueno que hagan un ejemplo para frontend de manera general para uno saber aplicarlo al framework que usa, busco mucho arquitectura del frontend pero no encuentro mucha info sobre esto, un saludo al equipo, gracias por el contenido. ❤

  • @kodenix
    @kodenix ปีที่แล้ว

    Por si a alguien le vale, para aplicarlo con cualquier framework tanto en frontend como backend, yo uso dos formas (con o sin monorepo). Con monorepo es sencillo, una aplicacion ej: Angular, React, NestJS, etc y en librerias dejo la aplicación POTOJO (Plain Object Typescript OR Javascript Object 🤣) con los casos de uso, etc. Sin monorepo por ejemplo tanto en Angular como en NestJS, dentro de src me creo un directorio contexts o logic y ahí meto el POTOJO, si el día de mañana me lo tengo que llevar a otro framework, pues es solo copiarlo. Es importante aclarar que todas las implementaciones de acceso a datos, a tecnología, etc las implemento en el propio framework.

  • @emmanuelvalverderamos
    @emmanuelvalverderamos ปีที่แล้ว

    Y los analizadores estáticos

  • @albertmontagutcasero2129
    @albertmontagutcasero2129 ปีที่แล้ว

    Buenas, creo que hacéis muy buenos vídeos, pero siempre se habla de la ley de la dependencia, separar infra de dominio, etc. Lo que pasa es que, al aplicarlo, hay problemas que aún no están claros como resolverlos. Por ejemplo, un problema que me encuentro mucho es... Como desde infrastructura consigo referencias a la application para mandarle mensajes, tengo un service locator? hay un event bus com comandos? Metemos un sistema de inyección de dependencias? Y luego, como avisa la aplicación después de realizar las operaciones de negocio con el dominio a la infrastructura, para que, por ejemplo, muestre algo por pantalla, tenemos todo acoplado a interfaces, pero quien es el encargado de instanciar las implementaciones concretas y asignárselas por el constructor a todos los interactors/controllers/como queráis llamarle a los casos de uso, y eso también con los daos o repositorios, etc. molaría demasiado que resolvierais todas esas dudas.

    • @ivanpartida7467
      @ivanpartida7467 ปีที่แล้ว

      Eso es lo que nunca dicen, porque este tipo de "arquitecturas" o "patrones de diseño" no existen más que en un mundo ideal, sólo sirven para resolver problemas de aprendizaje, en el mundo real la arquitectura se debe de adaptar al proyecto, no al revés.

  • @veelglorie
    @veelglorie ปีที่แล้ว

    🔥🔥🔥🔥🔥

  • @dubekone
    @dubekone ปีที่แล้ว

    Buen vídeo pero ojalá y nos escuchen y hagan un ejemplo más práctico sobre esta arquitectura, también me sorprende que no usan dark theme en nada jaja cuidado con los ojos chicos

  • @melmartinez9916
    @melmartinez9916 ปีที่แล้ว +2

    Estaria muy bueno un ejemplillo con algun framework de frontend :)

  • @clagccs
    @clagccs ปีที่แล้ว

    Hola...hay un problema en la página de cursos con los enlaces ...si uno entra a "DDD en TypeScript: Modelado y arquitectura"
    Y va a abajo y clickea en el enlace de arquitectura hexagonal no va a donde debería...sino que te lleva al curso de SOLID...saludos...

  • @AlejandroMartinezAp
    @AlejandroMartinezAp หลายเดือนก่อน

    Muy buena la explicación pero hay que reducir las dependencias, un plugin que te ayude a forzar una estructura de directorios? Totalmente innecesario

  • @felipemedinasalvatierra2094
    @felipemedinasalvatierra2094 ปีที่แล้ว +1

    No hay nada nuevo, solo cambios de nombres.

  • @eugeniosepulveda4261
    @eugeniosepulveda4261 ปีที่แล้ว

    Me gusto mucho esa estructura de carpetas para las Clean Architectures, pero me quedé con una duda, en esa estructura ¿donde iría la interface del CommanBus? debería ir en la capa de aplicación, pero no pertenece a ninguno de los bounded context, por eso mi duda. Saludos 🤞

  • @laszlo8622
    @laszlo8622 ปีที่แล้ว

    no me gusta el fondo y las letras borrosas con el eflecto glitch quedan horribles

  • @davidgomez-
    @davidgomez- ปีที่แล้ว

    La verdad interesante video pero no se entiende nada

  • @ftwtf
    @ftwtf ปีที่แล้ว

    Rafa hablas muy rápido tío 🤣

    • @CodelyTV
      @CodelyTV  ปีที่แล้ว

      Totalmente 😂

  • @emmanuelvalverderamos
    @emmanuelvalverderamos ปีที่แล้ว +1

    No os olvidéis de PHP 😭, que es como empezasteis

    • @CodelyTV
      @CodelyTV  ปีที่แล้ว +1

      Semana que viene verás cositas de ello 😬

    • @emmanuelvalverderamos
      @emmanuelvalverderamos ปีที่แล้ว

      @@CodelyTV Que ganas tengo

  • @carlosantoniomora
    @carlosantoniomora ปีที่แล้ว +1

    Malísimo el ejemplo de Laravel. Justamente Lo que da la estabilidad e independencia del motor de BBDD es Eloquent, que asume la responsabilidad de envolver la base de datos de manera abstracta. De hecho los repos son casi un antipatrón en Laravel, porque al final terminas usando el repo como un proxy a Eloquent y los modelos. En general hay demasiado overkill tratando de montarse sobre la arquitectura del framework con resultados desastrosos.

    • @carlosantoniomora
      @carlosantoniomora ปีที่แล้ว

      Otro aspecto que sería bueno tratar es que habeis tenido que dar demasiadas explicaciones para establecer el patrón, es decir, no hay ·Convention" y si mucha "Configuration". Just think about this. Usualmente las soluciones buenas son evidentes, obvias, y no requieren de tantos artefactos para arraigar.

  • @mdmarcaassport
    @mdmarcaassport 10 หลายเดือนก่อน

    plandemia coleguis

  • @LeonorMyOlagoke
    @LeonorMyOlagoke ปีที่แล้ว

    Ya veo muchos junior confundiendo y pidiendo ejemplos de arquitecturas en la capa presentacional… 👎