La Ley de Conway, que establece que los sistemas de software tienden a reflejar las estructuras de comunicación de las organizaciones que los construyen, juega un papel crucial en la forma en que se estructura el desarrollo web moderno. La evolución desde las primeras prácticas hasta los sistemas más complejos de hoy, como microfrontends y arquitecturas basadas en componentes, ha estado determinada en gran medida por este principio. Al observar cómo se separaron históricamente las preocupaciones en el desarrollo web, podemos comprender mejor cómo surgieron las prácticas actuales y por qué tienen el aspecto actual.
En los primeros días del desarrollo web, diferentes equipos solían ser responsables de tecnologías específicas. Un equipo manejaba el HTML, otro estaba a cargo de CSS y otro equipo se encargaba de JavaScript y la lógica del lado del servidor, como PHP. Esta clara separación de responsabilidades, o "separación de preocupaciones", fue impulsada por las distintas habilidades que poseía cada equipo. Los diseñadores entregarían archivos de Photoshop con píxeles perfectos a un equipo, quien luego los convertiría en plantillas HTML y CSS. Una vez que las plantillas estaban listas, el siguiente equipo las integraba en la aplicación, y a menudo encontraba fricciones cuando las cosas no encajaban perfectamente.
Un diseñador podría entregar un archivo .psd con las nueve esquinas de una tabla meticulosamente diseñadas, y el equipo de HTML/CSS lo dividiría en un diseño funcional. Pero estaban en gran medida desconectados de la lógica real de la aplicación o de las interacciones del usuario. Su trabajo era simplemente asegurarse de que las imágenes funcionaran. El equipo de backend, que se ocupaba de PHP y JavaScript, luego integraba estas plantillas estáticas en la aplicación en funcionamiento, y a menudo encontraba que las soluciones presentadas por los equipos anteriores no eran ideales para las necesidades de la aplicación. Esto fue un reflejo de cómo estaban estructuradas las organizaciones, donde cada equipo era dueño de una parte diferente del proceso sin mucha comunicación cruzada.
Hoy en día, la forma en que separamos las preocupaciones ha cambiado drásticamente. En lugar de dividir las responsabilidades por tecnología (como un equipo para HTML y CSS, y otro para JavaScript y PHP), es más probable que los equipos modernos sean responsables de toda la pila de partes específicas de la aplicación. Por lo general, cada equipo posee una porción vertical de la aplicación, que incluye todo, desde los componentes frontend hasta la lógica backend. Este cambio está impulsado por el aumento de las arquitecturas basadas en componentes, donde los componentes autónomos y reutilizables son los componentes básicos del sistema.
Por ejemplo, en lugar de que un equipo se centre en todo el HTML y CSS en todo el sitio, y otro equipo se encargue de JavaScript y la integración del lado del servidor, ahora tiene equipos que son responsables de distintas características o componentes, como ,
Esta nueva separación de preocupaciones, por característica o componente en lugar de por tecnología, permite a los equipos iterar más rápido. Un equipo responsable de un widget de chat, por ejemplo, puede implementar cambios tanto en la interfaz de usuario como en la API de backend sin esperar a que otro equipo maneje una parte del sistema. La diferencia clave ahora es que en lugar de tener equipos especializados centrados únicamente en HTML o JavaScript, tienes equipos multifuncionales que se apropian de sus componentes o características en su totalidad.
Uno de los resultados más significativos de este cambio es el aumento de los microfrontends, donde diferentes equipos poseen diferentes partes del frontend, al igual que poseen partes del backend. Esto permite un nivel de independencia que no era posible en los primeros días. Una arquitectura de microfrontend refleja la independencia que ahora tienen los equipos a la hora de gestionar sus componentes.
Por ejemplo, un equipo responsable de
Por el contrario, en el antiguo modelo de separación entre HTML, CSS y JS PHP, los cambios en cualquier parte del sistema requerían coordinación entre varios equipos. Si la interfaz necesitara una nueva característica, el equipo de HTML/CSS tendría que trabajar con el equipo de JavaScript para garantizar que el nuevo diseño o funcionalidad funcionara según lo previsto. Hoy en día, como los equipos poseen componentes o funciones específicas de arriba a abajo, esta necesidad de coordinación entre equipos se reduce considerablemente, lo que permite ciclos de desarrollo e implementación más rápidos.
La Ley de Conway sigue siendo tan relevante como siempre. La forma en que construimos software hoy en día todavía refleja la forma en que están organizados nuestros equipos, pero la diferencia es que las estructuras de equipos modernas están más centradas en las funciones y menos aisladas en la tecnología. El antiguo método de dividir responsabilidades por tecnología (HTML CSS vs. JS PHP) ha dado paso a un modelo en el que cada equipo es responsable de una característica o componente completo.
Esta moderna separación de preocupaciones permite una mejor comunicación dentro de los equipos y una propiedad más centrada. Las microfronteras, las arquitecturas basadas en componentes y los equipos centrados en funciones son reflejos de la visión de Conway: que su software inevitablemente reflejará la estructura de su equipo. A medida que las estructuras de nuestro equipo evolucionan, también lo hacen los sistemas que construimos, volviéndose más flexibles, modulares e independientes.
El cambio de la separación de preocupaciones basada en la tecnología a la separación basada en características ha revolucionado la forma en que creamos aplicaciones web. La Ley de Conway explica por qué ocurrió esta evolución: a medida que los equipos se han vuelto más autónomos y centrados en las funciones, la arquitectura de nuestros sistemas ha seguido su ejemplo. Los microfrontends, las bibliotecas de componentes internos y el desarrollo basado en componentes reflejan la necesidad moderna de equipos independientes y multifuncionales que sean propietarios tanto del frontend como del backend de sus características o componentes específicos.
Si bien las herramientas y los marcos han evolucionado, el principio fundamental sigue siendo el mismo: la forma en que se estructuran los equipos influye directamente en el software que crean. Al comprender la Ley de Conway y la historia de la separación de preocupaciones, podemos apreciar mejor los sistemas con los que trabajamos hoy y anticipar cómo podrían seguir evolucionando.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3