Hola muy buen video te felicito, en mi caso me ha parecido muy buena la experiencia de trabajar con Event Storming, DDD, TDD y Cell Based Architecture, así se aterriza la funcionalidad independientemente de la tecnología a usar POO o programación funcional y se centra más en las necesidades del cliente y el entendimiento de su contexto, saludos!
@@ManuelZapata Me gustaria si podes, que hagas un video explicando sobre que es lo que realmente se hace en la etapa de DISEÑO del desarrollo de software. Cuando alguien quiere diseñar software, por donde empieza? cuales son las herramientas que existen para encararlo? (ya sean diagramas uml, casos de uso, diagrama de flujo de datos, redes de petri, diagrama de transicion de estados.. etc) esas que nombre son las que conozco, pero se que hay muchas mas y me gustaria que las nombres todas... cuales son los problemas que pueden surgir? cuantas personas trabajan en la parte de diseño comunmente en una empresa? un diseñador gana mas dinero que un desarrollador? para ser diseñador hay que tener experiencia previa en programacion o se puede serlo sin saber hacer una linea de codigo? son algunas de las preguntas que me gustaria saber su respuesta ! Muy bueno el contenido :)
Ufff... de verdad, excelente retroalimentación! Esas preguntas dan tranquilamente para un curso o una buena serie de videos. Ya las anoté todas. Voy a ver como las organizo con los otros contenidos del canal y del blog. Gracias!
Estimado Manuel Zapata que programas open source o de costo nos recomiendas para el diseño de arquitectura del modelo C4 y otros diagramas de software?
Hola Manuel, de antemano gracias por la información. Un par de dudas: Haciendo un comparativo con UML, no me queda muy claro en C4 : 1) La fase sobre los requerimientos del usuario...lo que en UML seria los casos de uso 2) Obligatoriamente tenemos que programar para realizar los diversos diagramas 3) respecto al control de las actividades (workflow) especificas de cada programador..como lo manejas?... Gracias
Buen video, pero me queda la siguiente duda: En un equipo pequeño de 4 desarrolladores donde cada uno se encarga de frontend, backend, mobile y (cualquier otro rol relacionado al desarrollo) y cada uno aplica TDD con sprints de 1 semana, ¿quién y en qué momento debe hacer estos diagramas? En el ejemplo de diagrama de componentes veo ya algo medianamente grande. Lo que no me cuadra de hacer diagramas es que hay que estar actualizandolos a la par del desarrollo, y si se usa herramientas colaborativas como miro o draw.io me pasa que el que hoy hace mobile va a consumir algunos metodos que el de backend definió hoy en alguna clase, pero el de backend mañana va a renombrar/agregar/eliminar algunos métodos de la clase que usa el de mobile.. y se debe volver a actualizar el diagrama (otro flujo de trabajo extra al ya apretado sprint)
Tocas unos puntos muy interesantes aquí, Gustavo. Aquí mis comentarios: - Los diagramas no necesariamente tienes que actualizarlos a la par del desarrollo. Yo prefiero hacerlo cuando ya tengo una funcionalidad estable. ¿Por qué? Porque la funcionalidad va a ir cambiando hasta que se estabilice. - Los diagramas no tienen que representar absolutamente. Solo que sea importante para que alguien entienda el sistema. Por ejemplo, si los CRUD no añaden mayor detalle, esas interacciones se podrían eliminar. - ¿Quién hace los diagramas? Por lo general, solo hay un diagrama de contexto y uno de contenedores. Esos los puede hacer cualquiera en el equipo. Luego, yo asignaría la actualización de los diagramas de componentes a quien tocó una funcionalidad. - No todas las funcionalidades afectan los diagramas.
Hola Manuel, es bueno poner las descripciones containers, persons, en ingles y en español? lo pienso por si en un futuro lo puedan presentar en cualquier parte. Gracias Manuel.
Gracias por la explicación. Solo quiero comentar que se ve que no se sabe mucho de UML. UML no es rígido, al contrario, da muchas posibilidades tanto para personas técnicas como personas no técnicas. El problema es que la gente no lo estudió en profundidad.
Hola Manuel, muy bueno el video gracias! Una critica solamente para aclarar, en el diagrama de componentes el zoom esta hecho a la aplicacion API no a la WEB. Saludos!
Hola buen día Manuel. Descubri hace poco tu canal y me parece que explicas muy bien. Felicidades por no ser egoista y por compartir tus conocimientos. Soy nuevo en este mundo y quiero hacer una pregunta. Espero poder hacerme entender. Es posible desarrollar un sistema que cumpla con lo siguiente: 1. Que contenga una aplicacion para movil android (que funcione sin acceso a internet), la cual pueda recopilar y almacenar datos en la memoria del movil. Posteriormente estos datos sean enviados atraves de internet. (Aqui tengo la duda de a donde deberian ser enviados estos datos para poder revisarlos antes de almacenarlos en una base de datos) 2. Una aplicacion web donde se puedan recolectar el mismo tipo de datos que con el movil. 3. una base de datos para posteriores consultas. Agradezco tus comentarios. Feliz Día
Seguro ya resolviste la pregunta. Totalmente posible lo que mencionas. Necesitas que la aplicación móvil implemente una base de datos local para que guarde los datos y luego sean sincronizados con el servidor.
C4 es solo para diagramar. Es totalmente independiente de la arquitectura que uses. DDD no es una arquitectura, pero puedes aplicar algunos de sus conceptos con Arquitectura Hexagonal. Sería genial hacer un video del tema, pero te adelanto parte de la respuesta.
Buenas, como conocedor avanzado de UML te digo que estoy en desacuerdo con tu planteamiento inicial respecto al mismo. Con UML puedes modelar todo lo que necesites, incluso tu vida real porque UML es para modelar objetos y eso es lo que tenemos en nuestro día a día. Ahora, que muchos ingenieros y desarrolladores no le hayan prestado la atención necesaria, no quiere decir que no siga siendo la mejor forma de expresar lo que quieres hacer a la hora de desarrollar. C4 es un invento como casi todo lo actual, para que la gente no piense. Repito; no existe en el mundo del modelado de software nada mejor que UML .
@@ManuelZapata mi estimado parece que expresas que UML es una "metodología" que tienes que seguir reglas, y ese lenguaje puedes adaptarlo a como a ti te pueda ser mas fácil, es decir no hay una regla estricta de como debas usarlo y se puede adaptar a varias herramientas o especificaciones como C4.
Interesante discusión @aoim123. Si en algún momento dije o se entendió que UML es una metodología, claramente es un error. Pero UML es un lenguaje, con reglas y versiones muy claras. Puedes adaptarlo? Por supuesto. Pero creo que nos estaríamos yendo en contra de la idea original de UML: crear un lenguaje estándar para diseñar. De ahí que creo que puedes tomar sus elementos más útiles, y donde no te de o sea demasiado estricto, buscar otras opciones (como C4). Saludos!!
⚠️¿Quieres aprender más del modelo C4? Inscríbete a mi Curso de Arquitectura de Software 👇👇👇
cursosmz.co/inscripcion-curso-arquitectura-software/?
¿Cuál seria el orden correcto para aprender todos los cursos de su plataforma?
Nuevo suscriptor, soy de Administración y te entendí todo lo explicas de forma sencilla algo que es muy técnico.
Excelente profe, muchas gracias por crear este tipo de contenido, me quedo muy claro el c4-model!
Hola muy buen video te felicito, en mi caso me ha parecido muy buena la experiencia de trabajar con Event Storming, DDD, TDD y Cell Based Architecture, así se aterriza la funcionalidad independientemente de la tecnología a usar POO o programación funcional y se centra más en las necesidades del cliente y el entendimiento de su contexto, saludos!
Un video explicativo bastante útil para comprender esa tendencia en la arquitectura de software. ¡Gran aporte!
Gracias Jesús!
Gracias rey , muy bien explicado y deja re claro el tema 👏🏼👏🏼🙏🏼
Parece tan fácil cuando lo explicas.
Gracias por compartir tu valioso conocimiento Manuel.
Gracias por esas palabras, Ricardo.
interesante, el modelo C4 se mira como muy buena opción a utilizar....
Muy buena. Super recomendada!
Buenísimo Manuel, muchas gracias por la explicación.
Es con mucho gusto Mauricio.
excelente video, saludos desde La Paz,Bolivia
Gracias. Saludos desde Medellín, Colombia! :)
Excelente contenido, me servira bastante para comenzar a usar Diagramas C4
He aprendido cosas que no sabía hermano, gracias, slds
Es con todo gusto Juan David.
Excelente explicación 🎉
Excelente video!! gracias por compartir este conocimiento!!Saludos desde Argentina.
Es con el mayor de los gustos, Martín!
Que buenos vídeos viejo! Muchas gracias por toda esta info. Saludos colega!
Saludos Patricio!
Me encanta este tipo de contenido !!!
Gracias Finn El Humano! Si tienes sugerencias de temas que te gustaría aprender, las recibo con mucho gusto.
@@ManuelZapata Me gustaria si podes, que hagas un video explicando sobre que es lo que realmente se hace en la etapa de DISEÑO del desarrollo de software. Cuando alguien quiere diseñar software, por donde empieza? cuales son las herramientas que existen para encararlo? (ya sean diagramas uml, casos de uso, diagrama de flujo de datos, redes de petri, diagrama de transicion de estados.. etc) esas que nombre son las que conozco, pero se que hay muchas mas y me gustaria que las nombres todas... cuales son los problemas que pueden surgir? cuantas personas trabajan en la parte de diseño comunmente en una empresa? un diseñador gana mas dinero que un desarrollador? para ser diseñador hay que tener experiencia previa en programacion o se puede serlo sin saber hacer una linea de codigo? son algunas de las preguntas que me gustaria saber su respuesta ! Muy bueno el contenido :)
Ufff... de verdad, excelente retroalimentación! Esas preguntas dan tranquilamente para un curso o una buena serie de videos. Ya las anoté todas. Voy a ver como las organizo con los otros contenidos del canal y del blog. Gracias!
Antes del ver el video ya me he suscrito con la esperanza de que me sirva
Si me sirvio, gracias crack! :D
Excelente!!
Compadre!!! Excelente video, gracias😁
Con todo gusto Federico!
Excelente video! gracias!
Magistral como siempre....
Gracias por compartir tus conocimientos :)
Gracias Giancarlo. Saludos!
buen video muchas gracias
Excelente explicación.
Gracias!
Excelente trabalho Manuel recién descubri tu canal gracias sigue así saludos desde Ecuador
Con gusto Cesar! No olvides suscribirte 😀
Estoy aprendiendo un monton, gracias!! 😄
Me alegra mucho. Saludos!
Muy buena explicación, gracias
Con todo gusto Lilian!
Excelente!!!
Gracias!
Estimado Manuel Zapata que programas open source o de costo nos recomiendas para el diseño de arquitectura del modelo C4 y otros diagramas de software?
Jefferson, ahora estoy usando draw.io, y le instalo este plugin para el modelo C4: tobiashochguertel.github.io/c4-draw.io/
Hola Manuel, gracias por el aporte, pregunta, cuando hablan de diseño técnico de un requerimiento, que típo de diagrama se aplica?.
Pueden aplicar varios. Del modelo C4, los diagramas de componentes. De UML, podría ser un diagrama de clases o un diagrama de secuencia.
Hola, gracias por el video, quisiera hacerte una pregunta ¿tendras porseacaso un video donde hables de la metodologia xp?
Lo siento. No tengo nada sobre el tema.
muy agradecido!!!
🙌
muy interesante, gracias.!
Con todo gusto!
Hola Manuel, de antemano gracias por la información. Un par de dudas: Haciendo un comparativo con UML, no me queda muy claro en C4 : 1) La fase sobre los requerimientos del usuario...lo que en UML seria los casos de uso 2) Obligatoriamente tenemos que programar para realizar los diversos diagramas 3) respecto al control de las actividades (workflow) especificas de cada programador..como lo manejas?... Gracias
Genial el video, una duda. ¿Qué software usas para diagramar? Gracias
Uso draw.io
Este modelo C4 me sirve si el sistema a desarrollar se hace con herramientas low Code? Cómo puedo implementar?
Por supuesto. También sirve si en el ecosistema hay herramientas Low Code. Absolutamente nada cambia.
Muy buen video. Algún software modela el C4.
Varios. diagrams.net es uno.
Gracias Manuel
Con gusto Andres!
Buen video, pero me queda la siguiente duda:
En un equipo pequeño de 4 desarrolladores donde cada uno se encarga de frontend, backend, mobile y (cualquier otro rol relacionado al desarrollo) y cada uno aplica TDD con sprints de 1 semana, ¿quién y en qué momento debe hacer estos diagramas?
En el ejemplo de diagrama de componentes veo ya algo medianamente grande. Lo que no me cuadra de hacer diagramas es que hay que estar actualizandolos a la par del desarrollo, y si se usa herramientas colaborativas como miro o draw.io me pasa que el que hoy hace mobile va a consumir algunos metodos que el de backend definió hoy en alguna clase, pero el de backend mañana va a renombrar/agregar/eliminar algunos métodos de la clase que usa el de mobile.. y se debe volver a actualizar el diagrama (otro flujo de trabajo extra al ya apretado sprint)
Tocas unos puntos muy interesantes aquí, Gustavo. Aquí mis comentarios:
- Los diagramas no necesariamente tienes que actualizarlos a la par del desarrollo. Yo prefiero hacerlo cuando ya tengo una funcionalidad estable. ¿Por qué? Porque la funcionalidad va a ir cambiando hasta que se estabilice.
- Los diagramas no tienen que representar absolutamente. Solo que sea importante para que alguien entienda el sistema. Por ejemplo, si los CRUD no añaden mayor detalle, esas interacciones se podrían eliminar.
- ¿Quién hace los diagramas? Por lo general, solo hay un diagrama de contexto y uno de contenedores. Esos los puede hacer cualquiera en el equipo. Luego, yo asignaría la actualización de los diagramas de componentes a quien tocó una funcionalidad.
- No todas las funcionalidades afectan los diagramas.
Hola Manuel, es bueno poner las descripciones containers, persons, en ingles y en español? lo pienso por si en un futuro lo puedan presentar en cualquier parte. Gracias Manuel.
Gracias por la explicación. Solo quiero comentar que se ve que no se sabe mucho de UML. UML no es rígido, al contrario, da muchas posibilidades tanto para personas técnicas como personas no técnicas. El problema es que la gente no lo estudió en profundidad.
Excelente video, saludos amigo!
Saludos Alonso!
Hola Manuel muy buen video, todos en tu canal. Envié una consulta a través de tu sitio web.
👌
Excelente, aporte.
Gracias Juancio.
Buen vídeo, gracias!
Con gusto!
Cuando un video de las vistas de kruchten o modelo 4+1 por favor
Lo anoto en la lista de temas!! Gracias por la sugerencia Jefferson.
@@ManuelZapata Si por favor Manuel, sería genial un video sobre las vistas de Kruchten que es diagramación de arquitectura.
Muy bueno el vídeo. Pero que herramienta se utiliza para hacer el diagrama C4? Por favor y saludos
diagrams.net es la que estoy usando desde hace un tiempo.
Kruchten!!! Queremos saber!
No son muy fan de las vistas de Kruchten, pero por honor al conocimiento, haré este año ese video!
Excelente video!
Gracias Fernando!
Gracias, muy buen video
🙌
Hola Manuel, muy bueno el video gracias! Una critica solamente para aclarar, en el diagrama de componentes el zoom esta hecho a la aplicacion API no a la WEB. Saludos!
Gracias por la observación, Manuel!
@@ManuelZapata Gracias de nuevo por este y los demás videos sigo aprendiendo!
Crack
Excelente! Dónde haces los diagramas?
Uso draw.io con un plugin para C4. Saludos Juan!
donde puedo hacer un curso de C4
En mi curso de Arquitectura de Software hablamos a fondo de C4: cursosmz.co/inscripcion-curso-arquitectura-software/
Hola buen día Manuel.
Descubri hace poco tu canal y me parece que explicas muy bien. Felicidades por no ser egoista y por compartir tus conocimientos.
Soy nuevo en este mundo y quiero hacer una pregunta. Espero poder hacerme entender.
Es posible desarrollar un sistema que cumpla con lo siguiente:
1. Que contenga una aplicacion para movil android (que funcione sin acceso a internet), la cual pueda recopilar y almacenar datos en la memoria del movil. Posteriormente estos datos sean enviados atraves de internet. (Aqui tengo la duda de a donde deberian ser enviados estos datos para poder revisarlos antes de almacenarlos en una base de datos)
2. Una aplicacion web donde se puedan recolectar el mismo tipo de datos que con el movil.
3. una base de datos para posteriores consultas.
Agradezco tus comentarios.
Feliz Día
Seguro ya resolviste la pregunta. Totalmente posible lo que mencionas. Necesitas que la aplicación móvil implemente una base de datos local para que guarde los datos y luego sean sincronizados con el servidor.
Recién descubrí el canal, está de más, me estoy preparando para un rol de arquitectura. Que libros me recomiendas ??
saludos.
Aquí van los libros recomendados, Norbert: manuelzapata.co/libros-recomendados-arquitectura-de-software/
@@ManuelZapata Muchas gracias por la info y éxitos en tu canal, saludos.
Hola Manuel, alguna herramienta (gratis por supuesto) que nos ayude con estos diagramas? gracias, saludos!
Hola Oscar, hay varias. La que más me gusta, por su simplicidad es draw.io, junto con un plugin de C4: github.com/tobiashochguertel/c4-draw.io
hay alguna herramienta que implementa el modelo C4
diagrams.net (draw.io) lo tiene incluido.
Sería interesante hacer un paralelismo entre C4 y Arquitectura Hexagonal y DDD
C4 es solo para diagramar. Es totalmente independiente de la arquitectura que uses. DDD no es una arquitectura, pero puedes aplicar algunos de sus conceptos con Arquitectura Hexagonal.
Sería genial hacer un video del tema, pero te adelanto parte de la respuesta.
Buenas, como conocedor avanzado de UML te digo que estoy en desacuerdo con tu planteamiento inicial respecto al mismo. Con UML puedes modelar todo lo que necesites, incluso tu vida real porque UML es para modelar objetos y eso es lo que tenemos en nuestro día a día. Ahora, que muchos ingenieros y desarrolladores no le hayan prestado la atención necesaria, no quiere decir que no siga siendo la mejor forma de expresar lo que quieres hacer a la hora de desarrollar. C4 es un invento como casi todo lo actual, para que la gente no piense. Repito; no existe en el mundo del modelado de software nada mejor que UML .
¿porque no encuentro nada de información del modelo Mierdisoft, perdón quise decir microsoft? -.-
Confundir la metodología de trabajo RUP con lenguaje de UML, UML no te limita mi estimado y puedes adaptarlo a tu método de trabajo
No te sigo muy bien. Por qué crees que se confunde RUP con UML?
@@ManuelZapata mi estimado parece que expresas que UML es una "metodología" que tienes que seguir reglas, y ese lenguaje puedes adaptarlo a como a ti te pueda ser mas fácil, es decir no hay una regla estricta de como debas usarlo y se puede adaptar a varias herramientas o especificaciones como C4.
Interesante discusión @aoim123. Si en algún momento dije o se entendió que UML es una metodología, claramente es un error.
Pero UML es un lenguaje, con reglas y versiones muy claras. Puedes adaptarlo? Por supuesto. Pero creo que nos estaríamos yendo en contra de la idea original de UML: crear un lenguaje estándar para diseñar.
De ahí que creo que puedes tomar sus elementos más útiles, y donde no te de o sea demasiado estricto, buscar otras opciones (como C4). Saludos!!
hola
Arquitectura de servicios no, arquitectura orientada a servicios
Creo que confundes UML y C4, uno es lenguaje de modelado y el otro es método o técnica para describir la arquitectura. Gracias por el vídeo 😃
soy gay