Olvida el mal código, concéntrate en el sistema

Rate this content
Bookmark

El prop drilling está bien. La duplicación es genial. Las funciones largas son amor.

Hablamos mucho sobre el mal código complicado porque es fácil ver el problema. Pero la investigación muestra que los ingenieros pueden trabajar bien con el mal código autónomo. Lo que realmente los confunde es algo completamente diferente: la complejidad arquitectónica.

La complejidad arquitectónica hace que tu código sea difícil de trabajar, causa 3 veces más errores, reduce a la mitad la productividad y puede incluso hacer que los desarrolladores abandonen por frustración. En esta charla exploramos lo que puedes hacer.

FAQ

La charla enfatiza que, más allá de concentrarse solo en el código bueno o malo, es crucial enfocarse en cómo se configura todo el sistema y la arquitectura para mejorar la eficiencia y la gestión del mismo.

JSX es una extensión de sintaxis para JavaScript usada en React para describir la interfaz de usuario. Inicialmente, fue recibido con escepticismo y críticas por mezclar HTML con JavaScript, lo que fue visto como una violación de la separación de preocupaciones.

Se utiliza el ejemplo de los sets de LEGO, donde la organización de las piezas por etapas del montaje del Saturno 5 ofrece una forma más eficiente y divertida de construir, comparada con la clasificación detallada de cada pieza pequeña.

La construcción modular, que implica prefabricar piezas completas de un edificio y ensamblarlas, ofrece beneficios como reducción de costos, mayor velocidad de construcción y simplificación del proceso constructivo.

La alta complejidad arquitectónica puede llevar a una caída del 50% en la productividad, un aumento de tres veces en la densidad de defectos y un aumento de la rotación de personal, según un estudio citado en la charla.

Se menciona una herramienta llamada 'madge' que puede visualizar importaciones y dependencias, ayudando a analizar la complejidad arquitectónica.

Se sugiere identificar módulos naturales y moverlos organizadamente, utilizando herramientas como TypeScript y VSCode para facilitar y corregir las importaciones automáticamente durante la reorganización.

Swizec Teller
Swizec Teller
27 min
13 Nov, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Configurar el sistema y separar las preocupaciones son importantes en el desarrollo de software. La construcción modular y las unidades prefabricadas son una nueva tendencia que hace que la construcción sea más rápida y fácil. La complejidad arquitectónica puede llevar a una caída en la productividad y un aumento en los defectos. Medir la complejidad arquitectónica puede ayudar a identificar módulos naturales en el código. Las mejores prácticas para evitar la complejidad arquitectónica incluyen organizar el código por dominio empresarial y usar prop drilling. El diseño atómico y la organización de un monorepo son enfoques recomendados para gestionar la complejidad arquitectónica.

1. Configuración del sistema y separación de preocupaciones

Short description:

Deberías centrarte en cómo configuras todo tu sistema, tu arquitectura. JSX de React y CSS en JS causaron preocupaciones similares en el pasado. Separar las preocupaciones por dominio empresarial es un enfoque diferente.

Esperamos que disfrutes el resto de la charla. Gracias, y nos vemos la próxima vez. Adiós.

Así que voy a intentar convencerte hoy de que te estás centrando en lo incorrecto. Hablas demasiado sobre el código bueno o malo, y en lo que realmente deberías estar enfocado es en cómo configuras todo tu sistema, tu architecture.

Ahora, ¿alguien ha visto esta diapositiva de la Conferencia de NextJS que se hizo bastante popular en Twitter? Esto es una acción de servidor, y lo que está pasando es que tienes un componente de React con SQL justo ahí en el componente de React, lo cual es un poco extraño. Y más temprano hoy, David de Redwood también anunció que ahora pueden hacer lo mismo, donde tienes cosas de SQL mezcladas con cosas de JSX. Ahora, ¿cómo te hace sentir esto cuando lo ves? ¿Cómo te sientes? ¿Alguien se siente enfadado? Sí, de acuerdo. ¿Alguien se siente molesto, como algo raro, como si esto fuera algo malo y extraño que hacer? De acuerdo. Ahora, ¿qué pasaría si te dijera que así es exactamente como nos sentimos acerca de JSX hace 10 años. React se lanzó, inventaron JSX, y todos los barbones en internet estaban como, oh Dios mío, ¿estás mezclando HTML y JavaScript? ¿Qué demonios te pasa? ¿Por qué harías eso? Es la separación de preocupaciones, todo eso. Y luego llegó CSS, CSS en JS y el internet se volvió loco de nuevo. ¿Por qué estás mezclando todo esto? Y ¿qué pasaría si te dijera que todo el punto de todo esto es, de hecho, la separación de preocupaciones.

Ahora, se siente, ya sabes, digo separación de preocupaciones, y podrías estar pensando, espera, pero estás mezclando todas las preocupaciones. Tienes el estilo mezclado con la lógica de la database, tienes la búsqueda mezclada con todo lo ‑‑ ¿puedo ver mis notas? De acuerdo. Así que estás mezclando todo. Eso no parece una separación de preocupaciones. Pero hay una forma diferente de pensar en la separación de preocupaciones. ¿Y si separaras tus preocupaciones por dominio empresarial, no por la tecnología que estás utilizando? La palabra negocio está haciendo mucho trabajo aquí. Nos gusta ‑‑ no sé, ¿quién aquí ha trabajado con arquitectos sofisticados y personas que tienen títulos que suenan muy altos como ingeniero principal y cosas así? Solo da un grito. Vale. Algunos de ustedes. Vale. ¿Quién aquí ha escuchado hablar de modelado de dominio o negocio esto, negocio aquello, ese tipo de cosas? De acuerdo. Perfecto. Así que esto es mucho trabajo y ‑‑ oh, maldita sea, me falta ‑‑ se suponía que había otra diapositiva allí. Vale. Así que la palabra dominio de negocio está haciendo mucho trabajo allí. Lo que quiero decir con eso es un buen ejemplo de eso es Lego. Así que estos son dos sets de Lego.

2. Sets de Lego y Proceso de Construcción

Short description:

El super coche de Lego de los 90 venía en una caja grande con 1.300 piezas. Ordenarías las piezas en diferentes cajas. El Saturno 5, mi segundo set de Lego, tenía 1.969 piezas y venía en bolsitas. Construir el cohete Saturno 5 fue más fácil y divertido porque las piezas estaban separadas por etapa, lo que facilitaba su búsqueda y construcción.

Ambos resultan ser mis primeros grandes sets de Lego. A la derecha tienes cómo solían ser los grandes sets de Lego en los 90. Aquí está el super coche de Lego. Viene en una caja realmente grande. Me encantó. Como niño esto era como oh, Dios mío, obtienes 1.300 piezas y lo primero que haces, lo abres y clasificas cada pequeña pieza en su propia cajita. Toma un tiempo. Y luego finalmente puedes empezar a construir tu Lego y puedes encontrar todas las piezas. Si necesitas un engranaje, está en la caja de engranajes. Si necesitas una rueda, está en la caja de ruedas.

Ahora, más tarde, cuando me di cuenta de que, hey, ahora soy un adulto, puedo simplemente comprar Lego cuando quiera. Lo sé, como una idea loca. Compré el Saturno 5, que fue mi segundo set de Lego. Ese tiene 1.969 piezas, que creo que está cuidadosamente calibrado para coincidir con cuando Apollo 1 aterrizó en la luna y todo eso, porque subió en el Saturno 5. Ese no venía con una caja en la que clasificar los Legos. Venía en un montón de bolsitas. Construyes el cohete Saturno 5 yendo etapa por etapa. Para aquellos de ustedes que no lo saben, los cohetes son multi-etapa. Se lanza. La primera etapa quema su combustible. Suelta la primera etapa, y el resto del cohete sigue adelante. Así es como construyes el Saturno 5. En cada bolsita, obtienes exactamente las piezas para una etapa del cohete. Lo construyes desde el suelo, y todas las piezas están mezcladas. Tienes piezas que son del revestimiento exterior. Tienes piezas que van para la estructura interna y todo eso. Todo está revuelto. Lo realmente genial es que es mucho más fácil y mucho más divertido de construir que el super coche porque nunca tienes que buscar entre más de 200 o 300 piezas, lo cual es mucho más fácil de hacer. Puedes esparcirlas sobre una mesa y dices, oh sí, esa, esa, esa, y simplemente la construyes y disfrutas del proceso de construcción en lugar de pasar mucho tiempo buscando el Lego correcto. Ahora sé que algunas personas dicen que esa es la parte divertida.

QnA

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

IA y Desarrollo Web: ¿Hype o Realidad?
JSNation 2023JSNation 2023
24 min
IA y Desarrollo Web: ¿Hype o Realidad?
En esta charla, echaremos un vistazo a la creciente intersección entre la IA y el desarrollo web. Hay mucho revuelo en torno a los posibles usos de la IA en la escritura, comprensión y depuración de código, y su integración en nuestras aplicaciones se está volviendo más fácil y asequible. Pero también hay preguntas sobre el futuro de la IA en el desarrollo de aplicaciones y si nos hará más productivos o nos quitará nuestros trabajos.
Hay mucha emoción, escepticismo y preocupación sobre el aumento de la IA en el desarrollo web. Exploraremos el verdadero potencial de la IA en la creación de nuevos marcos de desarrollo web y separaremos los hechos de la ficción.
Entonces, si estás interesado en el futuro del desarrollo web y el papel de la IA en él, esta charla es para ti. Ah, y este resumen de la charla fue escrito por IA después de que le diera algunos de mis pensamientos no estructurados.
Confesiones de un Impostor
JSNation 2022JSNation 2022
46 min
Confesiones de un Impostor
Top Content
¿Sabes lo que es el síndrome del impostor, verdad!? Casi todos nosotros hemos sentido esa sensación persistente de que estamos fingiendo y que estamos seguros de ser descubiertos por todos los expertos que nos rodean en cualquier momento.Pero antes de que asumas que esta charla es la misma canción y baile lleno de platitudes que te animan a ignorar ese síndrome, permíteme darte una pequeña pista: no hay expertos a tu alrededor. El impostorismo no es un síndrome en absoluto, es una mentalidad y perspectiva pragmática, una que todos deberíamos abrazar y de la que deberíamos estar orgullosos. De hecho, es vital para que podamos hacer nuestro trabajo.
Mejorando la Felicidad del Desarrollador con IA
React Summit 2023React Summit 2023
29 min
Mejorando la Felicidad del Desarrollador con IA
GitHub Copilot es un programador en pareja de IA que puede ayudarte a escribir código más rápido y pasar menos tiempo escribiendo código repetitivo. Esta sesión cubrirá algunos casos de uso interesantes para Copilot que podrían revelar sus posibilidades. Esto va desde pedirle a Copilot que sugiera una función basada en un comentario, aprender a usar un nuevo marco de trabajo, abordar un error de seguridad o accesibilidad, documentar mejor tu código, traducir código de un lenguaje a otro, etc.Agenda:
Introducción a Copilot
- ¿Qué es Copilot?
- Cómo puedes usarlo
- Cómo puede ayudarte a escribir código más rápido
- Características experimentales de Copilot LabsTomaré ejemplos del ecosistema de React y mostraré cómo podemos solucionar vulnerabilidades de seguridad y problemas de accesibilidad en algunos componentes.
¡VS Code puede hacer eso!
JSNation Live 2021JSNation Live 2021
28 min
¡VS Code puede hacer eso!
¿Cómo depuras tan fácilmente en VS Code? ¿Cómo funcionan los codespaces? ¿Cuáles son esas combinaciones de teclas para editar código tan rápidamente? ¿Qué extensiones son las que no debería codificar sin ellas? Prepárate para empezar a toda velocidad en esta charla llena de demostraciones que te llevará a través de algunos de los mejores y más efectivos consejos y trucos en VS Code. Aprende cómo configurar tu entorno y personalizarlo a tu gusto. Saldrás con varios consejos sobre cómo ser más eficiente con una de las herramientas más populares en la web hoy en día!
Una Guía Rápida y Completa para Medir tu Deuda Técnica y Utilizar los Resultados
TechLead Conference 2023TechLead Conference 2023
27 min
Una Guía Rápida y Completa para Medir tu Deuda Técnica y Utilizar los Resultados
Casi nadie en el mundo de la tecnología disfruta cuando hay mucha deuda técnica. Y a la mayoría de nosotros nos gustaría que no haya demasiada. Pero, ¿cómo entendemos cuánta tenemos exactamente? ¿Dónde se encuentra exactamente? ¿Qué parte de ella es realmente la más molesta? ¿Cuál sería el beneficio para nosotros si dedicamos tiempo a deshacernos de ella? Cuando se trata de planificar cómo abordar tu deuda técnica, todas estas preguntas merecen respuestas. Especialmente cuando nos preguntan sobre el retorno de la inversión en nuestros esfuerzos para eliminar cosas antiguas molestas y construir un nuevo módulo o servicio brillante. Además, cuando trabajamos en la deuda técnica, queremos abordar primero las partes más impactantes, ¿verdad? Esta charla trata sobre todo eso: cómo medimos nuestra deuda técnica, cómo interpretamos los resultados de estas mediciones para que nos den las respuestas a las preguntas correctas, y cómo guiamos nuestra toma de decisiones con esas respuestas.
Desarrollo web adaptado para 2024
React Summit 2024React Summit 2024
7 min
Desarrollo web adaptado para 2024
La mayoría de los desarrolladores siguen de cerca las guerras de los frameworks. Tan ocupados con estos juegos, que olvidamos revisar las nuevas características que HTML, CSS y JavaScript nos ofrecen. ¡Los modales nativos, las unidades de vista dinámicas y el encadenamiento opcional son solo algunas de las características que ya deberías estar utilizando! Si dejaste de seguir el desarrollo de la Plataforma Web en 2015, es hora de actualizar tus conocimientos. Te enseñaré a construir aplicaciones adaptadas a 2024 y te prepararé para las nuevas características de la Plataforma Web que aparecerán en los próximos años.