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!
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, 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
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 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.
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.
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.
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 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.
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!!