Alineación de Patrones entre Diseño y Desarrollo

Rate this content
Bookmark

Los flujos de trabajo de diseño a veces pueden estar en desacuerdo con el desarrollo, pero establecer patrones comunes entre disciplinas puede sentar las bases para la automatización y permitir que los equipos diseñen y lancen más rápido. Figma te permite obtener lo que necesitas del diseño y volver a escribir código, ya sea construyendo front-end por primera vez o construyendo con un sistema de diseño reutilizable en tu base de código.

This talk has been presented at React Summit US 2024, check out the latest edition of this React Conference.

Jake Albaugh
Jake Albaugh
8 min
19 Nov, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Soy Jake, defensor de desarrolladores en Figma, y hoy hablaré sobre la alineación de patrones entre diseño y desarrollo. La colaboración entre diseñadores y desarrolladores requiere reconocer nuestras diferentes perspectivas. El objetivo es cerrar la brecha entre diseño y desarrollo, pero esto a menudo es aspiracional. El camino óptimo entre diseño y desarrollo está en algún punto intermedio, dependiendo de factores como la fricción o las olas. Al reconocer las áreas de resistencia de cada uno, podemos encontrar formas de hacer que la colaboración sea más efectiva. Code Connect de Figma llena la brecha entre la lógica de componentes de Figma y la lógica de código al permitir que los equipos publiquen fragmentos de código de componentes informados por código. CodeConnect actualmente admite HTML, Web Components, Angular, Vue, React, SwiftUI y Jetpack Compose, y busca admitir más lenguajes.

1. Introduction to Aligning Patterns

Short description:

Soy Jake, un defensor de desarrolladores en Figma, y hoy hablaré sobre la alineación de patrones entre diseño y desarrollo. El diseño se centra en el efecto deseado de un patrón, mientras que los ingenieros consideran tanto la superficie como la construcción subyacente. La colaboración entre diseñadores y desarrolladores requiere reconocer nuestras diferentes perspectivas. El objetivo es cerrar la brecha entre diseño y desarrollo, pero esto a menudo es aspiracional. Presentaré el principio del menor tiempo de Pierre Dufourmat para arrojar luz sobre este tema.

♪♪ {{^}}♪♪ Soy Jake. Soy un defensor de desarrolladores en Figma. Para aquellos que no lo saben, Figma es una plataforma para que los equipos diseñen y construyan productos juntos, construida en la web. Un producto bastante genial si lo digo yo mismo. Antes de esto, fui ingeniero de software durante 12 años. Recientemente estuve trabajando en una biblioteca de componentes de React y TypeScript para una plataforma de reservas de restaurantes. Pero basta de eso. Solo tenemos tanto tiempo. Así que voy a hablar sobre la alineación de patrones entre diseño y desarrollo.

Así que este cubo aquí representa un patrón. Esto podría ser un token, un componente, una página. Es un concepto que se comparte tanto en diseño como en desarrollo mientras pensamos en cómo vamos a construir esta cosa juntos y hacerla realidad. El diseño a menudo mira el efecto deseado de este patrón. ¿Cómo se puede presentar de una manera que sea efectiva y convincente? Y por supuesto, como sabemos, como ingenieros, ¿verdad? estamos pensando en esa superficie, pero también estamos pensando en la construcción implícita e inferida, lo que está debajo del capó, detrás de escena. Y así, mientras los colaboradores buscan construir este patrón juntos, venimos de diferentes puntos de origen.

Y es importante reconocer eso cuando pensamos en cómo colaboramos juntos. Mientras viajamos hacia este destino compartido, ¿verdad? a menudo se piensa que el objetivo es trabajar lado a lado. Pero como la mayoría de ustedes saben, siempre hay este espacio percibido entre nosotros. Una pequeña referencia a Flexbox. A menudo llamamos a ese espacio la brecha, ¿verdad? Y esta es la brecha entre diseño y desarrollo, y vemos el objetivo como cerrar esa brecha. Pero esto a menudo es muy difícil y se siente más aspiracional que realista. Así que tengan paciencia conmigo por un segundo. Vamos a hablar sobre el principio del menor tiempo de Pierre Dufourmat. Así que para aquellos que no lo saben, Pierre Dufourmat, un producto del siglo XVII, un poco de polímata, genio, pensó en muchas cosas. Una de las cosas que hizo fue observar el comportamiento de la luz. Y si no están familiarizados con este concepto, es bastante, es algo en matemáticas, pero en física, pero basándose en observaciones previas, se dio cuenta de que la luz pasa entre dos puntos en el menor tiempo posible mientras viaja a través de diferentes medios, y tiene que ver con la refracción, ¿verdad? Y ese camino es el camino óptimo. La forma en que necesitaba escuchar esto, lo vamos a hacer ahora mismo. Así que aquí estamos. Estamos en el océano, ¿verdad?

2. Optimal Path and Consistency

Short description:

El camino óptimo entre diseño y desarrollo está en algún punto intermedio, dependiendo de factores como la fricción o las olas. Comprender estos factores ayuda a determinar los ajustes necesarios para la colaboración. Al reconocer las áreas de resistencia de cada uno, podemos encontrar formas de hacer la colaboración más efectiva. Por ejemplo, en el diseño de UI, elementos como íconos o variantes de estado tienen diferentes implementaciones en herramientas de diseño y código, pero al nombrar las cosas de manera consistente y optimizar los caminos, podemos cerrar la brecha entre diseño y desarrollo.

Entonces, lo que puedes hacer, la opción B aquí, es reducir la cantidad de natación tanto como puedas, pero para hacer eso, tienes que agregar distancia, distancia total. Y así, lo que Fermat observó es que el camino óptimo está en algún punto intermedio, y depende de factores como la fricción o las olas o la arena o la condición física del salvavidas. Y estos factores, entender cuáles son estos factores, te dicen cuánta distancia necesitas agregar para alcanzar el camino óptimo.

Así que volvamos a esto. Aquí estamos. ¿Qué fuerzas están actuando en este escenario? Bueno, creo que la mejor manera de pensarlo es casi como una atracción gravitacional de vuelta a nuestros puntos de origen, ¿verdad? Los desarrolladores bajando, el diseño subiendo. La clave para la colaboración es entender cuándo las personas con las que estás colaborando están entrando en sus áreas de mayor resistencia, cuando estás agregando la mayor distancia para tus compañeros de equipo, y la realidad es que a menudo un poco de concesión puede ser muy útil. Una adición para ti podría ser una reducción para tu equipo. Así que necesitamos entender esas fuerzas para hacer feliz a Pierre.

Muy bien, hablemos de esto en la práctica. Así que aquí está el elemento de UI favorito de todos, el botón. Aburrido pero hace un gran trabajo al explicar estas cosas de manera simple. Así que clásicamente, si queremos tener un ícono en este botón, en Figma la forma en que lo pensamos es un toggle de visibilidad booleana porque ese nodo necesita existir, y por lo tanto necesitamos desactivar esa visibilidad con un toggle booleano. Pero en el código lo pensamos como una propiedad opcional. Tan pronto como eso se vuelve verdadero, obtenemos una segunda propiedad en Figma. Es un intercambio de instancia es el tipo de propiedad. Y esto es como ergonómicamente para los diseñadores es una realidad increíble para los diseñadores. Les ayuda a adoptar el sistema de diseño, entender lo que está pasando. Es fundamental para la estructura de cómo se crea este archivo de diseño. Pero en el código solo estamos agregando el ícono, ¿verdad? Y así, la forma en que pensamos en esto es similar pero un poco diferente. Otro ejemplo de esto es la variante de estado. Los diseñadores necesitan dar el hover, el focus, ¿verdad? El estado predeterminado que necesita ser diseñado y existir en el componente. Pero eso es como CSS para nosotros en el lado de la ingeniería hasta que llegamos a deshabilitado. Y en este caso, es una propiedad booleana en el código, pero es una variante, un valor enumerado dentro del diseño. Y así, aunque estamos hablando de lo mismo, la realidad es que hay estas diferencias, ¿verdad? Y así, en cierto sentido, cuando volvemos a esto, estamos pensando de manera similar. Nombramos las cosas de la manera correcta. Lo llamamos un ícono y no otra cosa. Lo pensamos como deshabilitado, no otra cosa. Hemos optimizado esos caminos. Hemos dado un poco, recibido un poco.

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

El Potencial Caprichoso de los Marcos de Trabajo de JavaScript
React Summit US 2023React Summit US 2023
28 min
El Potencial Caprichoso de los Marcos de Trabajo de JavaScript
Top Content
The speaker discusses the whimsical and detailed work of Stripe, particularly their interactive and dynamic pages. They explain the use of React for building whimsical details and tracking mouse position. The speaker introduces React Spring for smooth animation and React3 Fiber for creating a 3D egg model. They also mention the use of Framer Motion and React server components for animating CSS properties.
AI + UX: Diseño de Producto para Experiencias Inteligentes
C3 Dev Festival 2024C3 Dev Festival 2024
28 min
AI + UX: Diseño de Producto para Experiencias Inteligentes
AI design challenges include bias, safety, and security. Trust and transparency are important in AI. Design principles for AI include user control, fighting bias, and promoting good decision-making. AI can enable the design process and investors expect to see it included in products. AI empowers individuals to create and share ideas, but managing expectations is crucial.
Diseño Dirigido por Dominio con Aplicaciones Vue
Vue.js London 2023Vue.js London 2023
14 min
Diseño Dirigido por Dominio con Aplicaciones Vue
Top Content
Welcome to this talk on domain-driven design in Vue.js application. Today we are going to look into domain-driven design, its benefits and how it works with Vue.js domain-driven design versus the MVVM model. Vue.js thrives in domain-driven design, a design approach that models software to match a domain. DDD emphasizes understanding business logic and creating a domain that reflects the language and concepts. Integrating DDD in Vue.js offers benefits such as effective modeling of complex business domains, structured code reflecting domain logic, and easier onboarding and ownership.
Patrones Probados de Pinia
Vue.js London 2023Vue.js London 2023
20 min
Patrones Probados de Pinia
Top Content
Pinnia is a lighter, more modular state management solution for Vue apps, offering consistent patterns, TypeScript support, and an intuitive developer experience. PINIA encourages splitting state into manageable domains, improving code splitting, type inferences, team collaboration, and debugging clarity. Pinia provides flexibility in accessing and mutating state, with different approaches for option and setup stores. It also offers features like patch, reset, and onAction methods. Vue Mastery offers comprehensive Pinnia courses and resources for fast learning.
Patrones de Diseño de Componentes
Vue.js London 2023Vue.js London 2023
18 min
Patrones de Diseño de Componentes
The Talk covers clean components and when to create new components, as well as patterns for writing cleaner components and the benefits of VIP patterns. Refactoring and separating code into separate components can make it shorter and easier to read, reducing complexity. The importance of not repeating oneself and the benefits of using smaller components for performance and developer experience are discussed. Composables can help extract logic in large and complex components, and patterns can be incorporated into component libraries and design systems.
Construyendo el Generador de Código de Widgets de Figma
React Advanced 2022React Advanced 2022
19 min
Construyendo el Generador de Código de Widgets de Figma
This Talk introduces Figma's Widget Code Generator and demonstrates how to build a FigJam widget using it. The speaker discusses the implementation of voting functionality, avatar functionality, and remove vote functionality. They also explain how the Widget Code Generator plugin works and how to access properties and modify names using the Figma plugin API.