Pero tienes que entender, para volver al punto de Julie sobre eso. Nos movimos un poco por todas partes, y probablemente sea mi culpa, pero tiendo a hacer eso. Pero para volver a enfocar todo esto, tienes que entender qué estás heredando, ¿verdad? Como desarrollador, he estado en muchas organizaciones, heredé el código de otras personas. Todos heredamos, ¿verdad?, en algún momento, algún código. La mayor lucha que he tenido fue exactamente de lo que estamos hablando hoy, es, como, está bien, ¿qué hago con esto, verdad? Así que, es un monorepo, ¿cómo... Vengo del mundo de, desacoplaré las cosas, porque me gustan los fragmentos más pequeños y manejables, ¿verdad? Pero no puedes entrar a una empresa como, no quiero decir el nombre, pero hay un cliente nuestro que es enorme, una empresa enorme, ha estado alrededor por un tiempo, tienen un monorepo que es inmenso, ¿verdad? Si lo rompieran, solo les costaría millones, probablemente miles de millones de dólares. No vamos a hacer eso, así que tenemos que operar dentro de nuestro contexto. Y ese es mi punto, ¿verdad? Como, primero evalúa qué está pasando con tus equipos, tu base de código, ¿se pueden desacoplar las cosas, verdad? Lentamente, tal vez, pero ¿deberías desacoplarlas, verdad? Como, así que si tu monolito está funcionando y es increíble, genial, no veo ninguna razón por la que debas desacoplarlo. Pero si hay mejoras que puedes hacer que hagan las cosas más eficientes, al punto de Luke, bases de código más pequeñas funcionan más rápido. Estoy totalmente a favor de la eficiencia, haciendo que la duración de mis compilaciones sea lo más pequeña posible. Así que, mira las cosas desde esa perspectiva. ¿Cómo puedes optimizar? Pero también tienes ese costo, ¿verdad? Como, ¿va a costarle a la empresa o a la organización millones de dólares implementar un cambio? ¿Y cuál será el retorno de esos cambios? Así que, por eso soy un gran, enorme defensor de, supongo, el híbrido, porque tendrás situaciones donde vas a heredar estos enormes repositorios monolíticos, y luego también tendrás que integrar algún tipo de nuevas tecnologías o nuevos servicios con esa aplicación monolítica, ¿verdad? Así que, ¿acoplas tus nuevos microservicios y los fusionas en esa aplicación monolítica, o simplemente los dejas desacoplados y operas en ese estado híbrido, ¿verdad? Donde tienes este proyecto donde simplemente está funcionando en esta carga, y luego en este repo, donde es mono, y luego tienes estos otros, ya sabes, servicios más pequeños que son quizás recién construidos, y los dejas como desacoplados, ¿verdad? Creo que la respuesta es dejarlos como híbridos, dejarlos desacoplados, si piensas que esa es la forma más óptima. Pero si es más eficiente, ya sabes, acoplarlos y tenerlos en uno, entonces haz eso también. Como, tiene que ser una elección hecha por la organización con sus circunstancias específicas.
Lo dejaré en eso. Está bien, veo. Gracias. Victor, ¿te gustaría compartir algunas estadísticas? Claro, así que creo que es… Si quieres hacer un caso por Polyamore, siempre puedes presentar algunos números para probar el caso. Así que la forma en que… lo que mediría, ¿verdad? Como el rendimiento de las herramientas y luego el rendimiento de la organización. El rendimiento de las herramientas sería cosas como CICD, tiempo promedio, tiempo en el peor de los casos, cosas así, ¿verdad? Y luego, quiero decir, dependiendo de cómo midas, puedes hacer que más de un repo sea más rápido. Por ejemplo, si tienes un sistema que consiste en 40 repos o 4 módulos que pueden estar en un repo, múltiples repos, forman una, digamos, forma de diamante, ¿sí? Harán un cambio en el de abajo. ¿Me importa verificar el de abajo o me importa integrar el de abajo como a través del de arriba, ¿verdad? Y ¿básicamente cuento esta ejecución de CICD en caso de poly-repo o todas las ejecuciones de CICD? Eso será necesario, ¿verdad? Cosas así. Así que, si comienzas a hacer eso, entonces, ya sabes, dependiendo de lo que elijas hacer, ¿verdad? Creo que termina siendo lo mismo, ¿verdad? Y eso, por supuesto, puedes, como, todos distribuyen CI, ¿verdad? Incluso si tienes un repo pequeño que distribuyes CI, no ejecutas en un solo agente. Una vez que comienzas a distribuir CI, realmente no importa si tienes monorepo o poly-repo en que aún ejecutas tu CI en como 30 cajas al mismo tiempo, o 50 cajas, sea cual sea el tamaño de tu repo, ¿verdad? Así que, siempre puedes hacer que tu monorepo o poly-repo sea lo suficientemente rápido. Lo que sea lo suficientemente rápido depende... ¿Quieres decir que es como 20 minutos en el peor de los casos, ¿verdad? Eso se puede hacer para un repo de prácticamente cualquier tamaño, ¿verdad? A menos que tengas un nodo grande que no se puede dividir, en cuyo caso, de nuevo, es un punto irrelevante entre poly- y monorepo, porque tienes el mismo nodo que se puede dividir en cualquiera de los casos, ¿verdad? Así que, creo que realmente no importa. Así que, en términos de, como, el rendimiento de las herramientas puede funcionar con cualquiera. El rendimiento organizacional es una cosa diferente, ¿verdad? Entonces comienzas a medir cosas como, ¿qué pasa si quiero compartir un código, como esta es mi intención como desarrollador, como, ¿cuánto tiempo me lleva compartir un código entre, como, yo mismo y otro miembro del equipo, o como, de un proyecto diferente, por ejemplo, ¿verdad? ¿Toma una hora, un día, una semana, un mes, ¿verdad? Y en un monorepo, eso es mucho más pequeño. Ese es el beneficio del monorepo, ¿verdad? Compartir es más fácil, ¿verdad? Pero si mides cosas diferentes, entonces puedes hacer que el poly-repo se vea mejor. Realmente depende de lo que te importe, ¿verdad? La mayoría de las organizaciones con las que trabajo quieren compartir más, no menos, ¿verdad? Están demasiado divididas en líneas de negocio y cosas así, ¿verdad?, así que para ellos, buscan compartir como algo a optimizar, ¿verdad? Así que el monorepo es bueno en ese caso, ¿verdad?
Pero si tienes uno, ya sabes, pegado, o si quieres dividirlos más, quizás quieras compartir menos, ¿verdad? Por razones organizacionales, en cuyo caso, aún podrías usar un monorepo para hacer eso, pero el polyrepo te da una especie de, de una manera más natural, ¿verdad? Sí, casi nos estamos quedando sin tiempo. Me gustaría preguntar a Julie, Julie, esa es tu última respuesta. ¿Qué piensas sobre esto? Todo depende. Creo que podemos continuar en el chat espacial para las personas que quieran debatir con nosotros. Está bien, creo. Gracias a todos. Eso fue muy interesante.
Comments