• Frontenderos
  • Posts
  • #72 Diseñando documentación para diseño web

#72 Diseñando documentación para diseño web

El abismo entre Diseño e Ingeniería

Diseñando documentación para diseño web

Necesitamos replantear cómo debería funcionar la documentación para proyectos de diseño web. Tenemos las herramientas, pero no las metodologías, y este articulo habla sobre cómo podemos comenzar a construirlas.

El abismo entre Diseño e Ingeniería

Cat Working GIF by Looney Tunes

Gif by looneytunes on Giphy

Los frontenderos a veces somos los que estamos más cerca de los equipos de diseño y de ingeniería, y entendemos la separación y la unión de ambas disciplinas. O, al menos es lo que deberíamos entender. En este articulo exponen porqué a veces los proyectos fallan cuando no hay coordinación entre diseño e ingeniería y cómo podemos remediarlo.

Como iniciar un nuevo trabajo

En este articulo, Amy Hupe hace una breve guía de cómo afronta nuevos trabajos y lo que representa. ¡Muy útil para tu primer semana de trabajo nuevo!

HERRAMIENTA
MeltUI

MeltUI, es una biblioteca para construir componentes accesibles y de calidad para Svelte, y tiene una pinta bien chula.👌 Recomendación Frontendera de la semana.

Kinde

Kinde, es una herramienta para proveer autenticación a tus proyectos y ¡es gratuita hasta 7500 usuarios!, así que, si estas buscando una alternativa a Auth0. deberías probar esta.

NOTICIA
Prettier 3.1

Nueva versión de Prettier que trae los siguientes cambios: identacion para ternarios anidados, soporte para los cambios en Angular 17 ¡y más!

VACANTE
Desarrollador Sr Frontend React

Si tienes inglés avanzado y llevas al menos 3 años desarrollando frontend en aplicaciones con stacks tecnológicos como; JavaScript, HTML 5, React, Typescrpt, entre otros, en Baufest, tienen una buena oportunidad para ti.

CHALLENGE

Escenario del Desafío: Imagina que estás creando un juego que incluye un laberinto. El laberinto se representa como una matriz 2D, donde 0 representa una pared y 1 representa un camino. Tu tarea es escribir una función que encuentre un camino desde la esquina superior izquierda hasta la esquina inferior derecha del laberinto.

Descripción del Reto:

  • Dada una matriz 2D que representa el laberinto, escribe una función findPath en JavaScript que encuentre un camino a través del laberinto.

  • La función debe devolver el camino como una serie de coordenadas (por ejemplo, [[0,0], [1,0], [1,1], ...]), o un mensaje indicando que no hay camino.

  • Puedes asumir que el punto de inicio siempre será [0, 0] y el punto de destino [matriz.length - 1, matriz[0].length - 1].

Ejemplo de un Laberinto:

let maze = [
    [1, 0, 1, 1, 1],
    [1, 0, 1, 0, 1],
    [1, 1, 1, 0, 1],
    [0, 0, 0, 1, 1]
];

RESULTADO

Para resolverlo, se puede utilizar el algoritmo de búsqueda en profundidad (Depth-First Search, DFS).

function findPath(maze) {
    const rows = maze.length;
    const cols = maze[0].length;
    const path = [];
    const visited = Array.from({ length: rows }, () => Array(cols).fill(false));

    function dfs(x, y) {
        // Si la posición está fuera del laberinto o es una pared, retornamos false
        if (x < 0 || y < 0 || x >= rows || y >= cols || maze[x][y] === 0 || visited[x][y]) {
            return false;
        }

        path.push([x, y]);
        visited[x][y] = true;

        // Si hemos llegado a la esquina inferior derecha, retornamos true
        if (x === rows - 1 && y === cols - 1) {
            return true;
        }

        // Explorar arriba, abajo, izquierda y derecha
        if (dfs(x + 1, y) || dfs(x, y + 1) || dfs(x - 1, y) || dfs(x, y - 1)) {
            return true;
        }

        // Si no se encuentra un camino, retrocedemos y marcamos la celda como no visitada
        path.pop();
        visited[x][y] = false;
        return false;
    }

    if (dfs(0, 0)) {
        return path;
    } else {
        return "No hay camino disponible";
    }
}

¡Hasta mañana! 🤟