Comprende tu base de código para innovar más rápido

Rate this content
Bookmark

La transición de una arquitectura monolítica a un enfoque basado en servicios comenzó hace varios años. La ventaja de un enfoque basado en servicios es aumentar la agilidad y acortar el ciclo de desarrollo de construcción y lanzamiento. Y más recientemente, el surgimiento de micro frontends significa que este enfoque no solo abarca la aplicación backend, sino también el desarrollo frontend. Sin embargo, un efecto secundario es el aumento de la complejidad de la base de código. Esto resulta en desafíos en términos de visibilidad sobre cómo se relacionan los componentes, quién es el propietario de un componente y el impacto de las actividades en los componentes dependientes. Esta sesión abordará estos desafíos y lo que se necesita para mantener la velocidad de desarrollo individual.

FAQ

Simon Walter es un desarrollador de software que trabaja en Microsoft. Se dedica a mejorar la eficiencia de los desarrolladores al ayudarles a comprender mejor sus bases de código.

Según Simon, inicialmente las bibliotecas disponibles eran las incluidas con el sistema operativo o las que venían con una herramienta de desarrollo. Ahora, los desarrolladores tienen acceso a una amplia gama de bibliotecas tanto para el front-end como para el back-end.

Simon destaca el paso de metodologías de tipo cascada a enfoques más iterativos y rápidos. Esto permite reducir los ciclos entre la construcción y la entrega de software, y facilita la obtención de retroalimentación temprana de los interesados.

La computación en la nube elimina la necesidad de preocuparse por la infraestructura básica como redes, permitiendo a los desarrolladores acceder a servicios de bases de datos y middleware bajo demanda, lo que agiliza el proceso de desarrollo.

Simon sugiere que tanto la computación en la nube como el software de código abierto proporcionan bloques de construcción adicionales que permiten a los desarrolladores centrarse más en problemas y funciones comerciales específicas, aumentando el valor a sus clientes.

Sourcegraph es una plataforma de búsqueda universal que permite a los desarrolladores buscar en todos sus códigos y repositorios. Ayuda a los desarrolladores a obtener un contexto más rápido y completo, facilitando así un desarrollo más eficiente.

Sourcegraph optimiza el 'ciclo interno' de desarrollo, permitiendo a los desarrolladores encontrar rápidamente respuestas y entender mejor el código, lo que reduce las interrupciones y mejora la productividad.

Simon Waterer
Simon Waterer
19 min
24 Oct, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Podemos mejorar la eficiencia de los desarrolladores ayudando a las personas a comprender el código de manera más efectiva a través de software de código abierto, desarrollo iterativo, infraestructura en la nube, integración continua y arquitectura basada en servicios. El ciclo de vida del desarrollo de software consta de un bucle externo centrado en los esfuerzos del equipo y un bucle interno para los desarrolladores individuales. Una plataforma de búsqueda universal ayuda a los desarrolladores a comprender y buscar código, reduciendo el tiempo dedicado a la comprensión del código. Herramientas de navegación y automatización de código como Sourcegraph permiten a los desarrolladores navegar por el código, adherirse a las mejores prácticas y automatizar cambios en múltiples repositorios.

1. Introducción al Desarrollo de Software

Short description:

Estamos aquí para responder sus preguntas y compartir sus ideas. Hola a todos. Mi nombre es Simon Walter. Soy un desarrollador de software en Microsoft y estoy aquí para contarles un poco sobre cómo podemos mejorar la eficiencia de los desarrolladores ayudando a las personas a comprender su base de código de manera más efectiva. En cuanto a la preparación para esta charla, he estado involucrado en tecnología de desarrollo de software durante algún tiempo. Así que aquí está mi lista de cinco puntos. Su lista puede ser diferente. Entonces, el software de código abierto, cuando comencé en el desarrollo de software, básicamente las APIs, las bibliotecas que tenías disponibles eran las que se incluían con el sistema operativo o venían con una herramienta de desarrollo o plataforma en la que habías invertido. Y, por supuesto, ha habido grandes cambios en cuanto a cómo las personas construyen aplicaciones de software. Hemos pasado a un enfoque más iterativo. Y, por supuesto, el cambio a la nube, donde ya no tienes que preocuparte por obtener infraestructura o redes a un nivel básico, donde puedes obtener un servicio de base de datos o middleware bajo demanda sin tener que preocuparte por cómo configurarlo, implementarlo o administrarlo. Y, obviamente, esto proporciona bloques de construcción adicionales en términos de construir y entregar soluciones de software. Y los dos últimos en términos de integración continua, entrega, muy alineados con el desarrollo ágil. Y finalmente, en términos de arquitectura basada en servicios.

Estamos aquí para responder sus preguntas y compartir sus ideas.

Hola a todos. Mi nombre es Simon Walter.

Soy un desarrollador de software en Microsoft,

y estoy aquí para contarles un poco sobre

cómo podemos mejorar la eficiencia de los desarrolladores

ayudando a las personas a comprender su base de código de manera más efectiva.

En cuanto a la preparación para esta charla,

he estado involucrado en tecnología de desarrollo de software durante algún tiempo.

y cómo son relevantes para el desarrollo de software,

y cómo realmente entregamos aplicaciones de software,

y cómo podemos acelerar ese proceso.

Entonces, aquí está mi lista de cinco.

Su lista puede ser diferente.

Entonces, el software de código abierto,

cuando comencé en el desarrollo de software,

básicamente las APIs, las bibliotecas que tenías disponibles

eran esencialmente las que se incluían con el sistema operativo

o venían con una herramienta de desarrollo o plataforma en la que habías invertido.

Ahora tenemos bibliotecas desde el front-end,

estamos en una conferencia de React, por supuesto,

hasta el back-end en términos de proporcionar bases de datos,

herramientas de búsqueda, muchas bibliotecas,

y tal vez los desafíos en términos de decidir

qué biblioteca o framework deseas usar.

Y, por supuesto, ha habido grandes cambios en términos

de cómo las personas construyen aplicaciones de software.

Entonces, hemos pasado de un enfoque de Gran Explosión

o de metodologías tipo cascada,

donde capturamos nuestros requisitos, lo cual lleva tiempo.

Trabajé durante algún tiempo para una empresa de investigación.

Hicimos mucho trabajo para grandes organizaciones gubernamentales.

Teníamos enormes documentos de requisitos

que teníamos que leer o preparar.

Entonces, hemos pasado a un enfoque más iterativo.

Estaremos trabajando con fragmentos más pequeños

en términos de las capacidades que queremos entregar.

Y eso es genial porque nos permite reducir ese ciclo

entre la construcción y entrega de aplicaciones

o capacidades, funciones adicionales,

y obtener comentarios de nuestros interesados o clientes.

Entonces, un enfoque más iterativo y rápido.

Entonces, básicamente, nos permite corregir la dirección mucho antes

en el ciclo de vida de una aplicación o solución en particular.

Y, por supuesto, el cambio a la nube,

donde ya no tienes que preocuparte por obtener infraestructura

o redes a un nivel básico,

donde puedes obtener un servicio de base de datos

o middleware bajo demanda

sin tener que preocuparte por cómo configurarlo,

implementarlo o administrarlo.

Y, obviamente, esto proporciona bloques de construcción adicionales

en términos de construir y entregar soluciones de software.

Y, tal vez diría que hay un paralelismo entre la computación en la nube

y el software de código abierto.

Nuevamente, se trata fundamentalmente de proporcionar bloques de construcción adicionales

para permitir a los desarrolladores de software

centrarse en sus problemas comerciales,

en sus funciones y capacidades comerciales

donde realmente pueden agregar valor

a sus clientes.

Y los dos últimos en términos de integración continua,

entrega, muy alineados con el desarrollo ágil.

Nuevamente, el enfoque está en las pruebas,

lo que implica entregar software con mayor frecuencia

o entregar e implementar software de manera más rápida.

Nuevamente, reduciendo ese ciclo,

pero también permitiéndonos probar con cambios más pequeños,

obtener comentarios adicionales más rápidamente.

Idealmente, cuando te encuentres con problemas,

el conjunto de cambios que debes evaluar

para encontrar la causa raíz es más pequeño.

Y finalmente, en términos de arquitectura basada en servicios.

2. Construcción de Software y el Ciclo Interno

Short description:

Desde cliente-servidor hasta aplicaciones de tres niveles y aplicaciones de múltiples servicios, el objetivo es mejorar la encapsulación y desacoplar la lógica de la aplicación. El ciclo de vida del desarrollo de software consta de un ciclo externo y un ciclo interno. El ciclo externo se centra en los esfuerzos del equipo, mientras que el ciclo interno se trata de los desarrolladores individuales y sus tareas. El desafío es minimizar las interrupciones y mantener un flujo rápido en la escritura de software.

Entonces, es un gran cambio en términos de cambios en términos de cómo construimos realmente el software desde un punto de vista arquitectónico, desde el modelo cliente-servidor hasta las aplicaciones de tres niveles y las aplicaciones de múltiples servicios. Y nuevamente, donde el objetivo es mejorar o aumentar la encapsulación y desacoplar la lógica de la aplicación. Entonces, nuevamente, esto facilita mucho potencialmente realizar cambios dentro de nuestro código porque los cambios tienen menos impacto o un impacto limitado en otros servicios, etc., porque estamos detrás de una API basada en servicios. Y esto es relevante en términos de aplicaciones de front-end también, donde tal vez haya un movimiento para permitir a las personas crear aplicaciones de micro front-end. Nuevamente, donde tenemos un conjunto de componentes de aplicación componibles que podemos unir fácilmente.

Entonces, diría que obviamente todos estos cambios, iniciativas, obviamente han tenido un impacto en términos de qué tan rápido, qué tan rápido podemos desarrollar software. Pero si realmente pensamos en el ciclo de vida del desarrollo de software, no es solo un gran ciclo. Muchas personas tienden a pensar en él como esencialmente un ciclo externo y un ciclo interno. Entonces, el ciclo externo es esencialmente las versiones, los proyectos, los sprints que estamos realizando. Entonces, es más un esfuerzo de equipo en cierto sentido. Y probablemente argumentaría que en términos de los cinco cambios que mencionamos anteriormente, si bien definitivamente mejoran ese ciclo de vida de desarrollo, se centran más en ese ciclo externo. Ciertamente, si pensamos en el desarrollo ágil, la entrega continua, quiero decir, ese es su enfoque cuadrado en términos de tratar de mejorar la eficiencia de ese ciclo externo. Pero tienen beneficios en términos de ese ciclo interno. Y el ciclo interno se trata realmente de lo que estás haciendo como desarrollador individual. Vale, tengo que hacer algún cambio en ti, tengo que agregar una nueva capacidad. Tengo que solucionar algún problema que apareció en nuestra suite de pruebas. Hay un incidente y tengo que investigarlo, o estoy tratando de eliminar alguna forma de deuda técnica dentro de una aplicación o conjunto de servicios. Entonces, ese es realmente el enfoque en términos de los desarrolladores individuales reales cuando realmente llegas a ese punto, estás escribiendo el código, estás más cerca de la fuente del código. Y, por supuesto, lo que todos queremos hacer es asegurarnos de que seamos tan rápidos, tan eficientes como sea posible dentro de ese ciclo interno. Una vez que tenemos una gran comprensión en términos de la tarea que tenemos por delante, una vez que tenemos un contexto completo, realmente podemos ser muy eficientes, muy productivos. Entonces sabemos exactamente lo que estamos haciendo. Podemos ponernos en marcha, estamos frente a nuestro IDE y realmente podemos escribir nuestro código, probarlo, iterar y hacerlo de manera muy eficiente. Obviamente, hay desafíos en términos de, y supongo que los principales desafíos que enfrenta la gente son interrupciones en términos de ese flujo donde tienes que cambiar de contexto. Obviamente, la mayoría de las organizaciones tienen, tenemos interrupciones planificadas donde tenemos reuniones para actualizar a las personas sobre el progreso, pero podemos tener interrupciones en términos de personas que nos hacen preguntas, ya sea que los miembros de nuestro equipo nos hagan preguntas. Y, por supuesto, puede haber cosas que no entendemos. No tenemos un contexto completo. No tenemos una comprensión completa y luego tenemos que ir y tratar de completar los vacíos en nuestro conocimiento para lograr la tarea que estamos analizando. Y realmente se trata de cómo podemos minimizar esas interrupciones para que todos tengan contexto y tengan ese flujo rápido en términos de cómo están escribiendo software. Es un dibujo animado que uno de mis colegas me señaló. Entonces, en términos de cómo realmente pensamos en cómo escribimos software en términos de hablar de eso en un flujo. Entonces, obviamente, cuando estamos escribiendo software, tenemos algún tipo de pensamiento de cielo azul.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Depuración Web Moderna
JSNation 2023JSNation 2023
29 min
Depuración Web Moderna
Top Content
Pocos desarrolladores disfrutan depurando, y la depuración puede ser compleja para las aplicaciones web modernas debido a los múltiples marcos, lenguajes y bibliotecas utilizados. Pero, las herramientas de desarrollo han avanzado mucho en facilitar el proceso. En esta charla, Jecelyn profundizará en el estado moderno de la depuración, las mejoras en DevTools y cómo puedes usarlas para depurar tus aplicaciones de manera confiable.
El Futuro de las Herramientas de Rendimiento
JSNation 2022JSNation 2022
21 min
El Futuro de las Herramientas de Rendimiento
Top Content
Nuestra comprensión del rendimiento y la experiencia del usuario ha evolucionado mucho a lo largo de los años. Las herramientas de desarrollo web necesitan evolucionar de manera similar para asegurarse de que sean centradas en el usuario, accionables y contextuales donde se refiere a las experiencias modernas. En esta charla, Addy te guiará a través de cómo Chrome y otros han estado pensando en este problema y qué actualizaciones han estado haciendo a las herramientas de rendimiento para reducir la fricción para construir grandes experiencias en la web.
Remix Flat Routes – Una Evolución en el Enrutamiento
Remix Conf Europe 2022Remix Conf Europe 2022
16 min
Remix Flat Routes – Una Evolución en el Enrutamiento
Top Content
Esta charla presenta la nueva convención Flat Routes que probablemente será la predeterminada en una futura versión de Remix. Simplifica la convención existente y también te brinda nuevas capacidades.
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
DevOps.js Conf 2022DevOps.js Conf 2022
31 min
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
Aprenderás sobre uno de los gestores de paquetes más populares para JavaScript y sus ventajas sobre npm y Yarn.Una breve historia de los gestores de paquetes de JavaScriptLa estructura aislada de node_modules creada por pnpmQué hace que pnpm sea tan rápidoQué hace que pnpm sea eficiente en el uso del espacio en discoSoporte para monoreposGestión de versiones de Node.js con pnpm
Cómo hacer un juego web tú solo
JS GameDev Summit 2023JS GameDev Summit 2023
27 min
Cómo hacer un juego web tú solo
Nunca ha sido tan fácil hacer tu propio juego web, pero sigue siendo extremadamente difícil. ¿Qué juego deberías hacer? ¿Qué motor deberías elegir? Vamos a discutir cómo responder a estos problemas y formas de aprovechar la plataforma única que es la web.
Despliegue Atómico para Hipsters de JavaScript
DevOps.js Conf 2024DevOps.js Conf 2024
25 min
Despliegue Atómico para Hipsters de JavaScript
Desplegar una aplicación no es un proceso fácil. Te encontrarás con muchos problemas y puntos de dolor que resolver para que funcione correctamente. Lo peor es: ahora que puedes desplegar tu aplicación en producción, ¿cómo no vas a poder desplegar también todas las ramas del proyecto para tener acceso a vistas previas en vivo? ¿Y poder hacer un revert rápido a pedido?Afortunadamente, el clásico conjunto de herramientas de DevOps tiene todo lo que necesitas para lograrlo sin comprometer tu salud mental. Al mezclar expertamente Git, herramientas de Unix y llamadas a API, y orquestar todo ello con JavaScript, dominarás el secreto de los despliegues atómicos seguros.No necesitarás depender de servicios comerciales: ¡conviértete en el maestro perfecto de las herramientas y netlifica tu aplicación desde casa!

Workshops on related topic

React, TypeScript y TDD
React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Cómo crear experiencias de edición que tu equipo amará
React Advanced Conference 2021React Advanced Conference 2021
168 min
Cómo crear experiencias de edición que tu equipo amará
Workshop
Lauren Etheridge
Knut Melvær
2 authors
El contenido es una parte crucial de lo que construyes en la web. Las tecnologías web modernas aportan mucho a la experiencia del desarrollador en términos de construir sitios impulsados por contenido, pero ¿cómo podemos mejorar las cosas para los editores y creadores de contenido? En este masterclass aprenderás cómo usar Sanity.io para abordar la modelización de contenido estructurado, y cómo construir, iterar y configurar tu propio CMS para unificar los modelos de datos con experiencias de edición eficientes y agradables. Está dirigido a desarrolladores web que desean ofrecer mejores experiencias de contenido para sus equipos de contenido y clientes.