Artículos

  • Generales 0

    Cargo workspaces y features en Rust: monorepos y compilación condicional

    Aprende a organizar proyectos Rust grandes con Cargo workspaces: un Cargo.toml raíz que unifica dependencias de varios crates. Y a usar features para compilar código condicionalmente y gestionar dependencias opcionales como serde sin coste para quien no las necesita.

  • Generales 0

    Actores en Swift: actor, @MainActor, Sendable y seguridad ante data races

    Aprende a usar actores en Swift para evitar data races: declara actor y accede con await desde fuera, usa @MainActor para el hilo principal, Sendable para tipos seguros entre tareas y crea actores globales propios con GlobalActor.

  • Generales 0

    gRPC streaming en Go: server streaming, client streaming y bidireccional

    Guía práctica de gRPC streaming en Go: server streaming con Send(), client streaming con SendAndClose() y CloseAndRecv(), y streaming bidireccional con goroutines independientes. Ejemplos completos de cada tipo, manejo correcto de io.EOF e interceptores con go-grpc-middleware.

  • Generales 0

    Testing en Rust: unit tests, integration tests, doc tests y benchmarks con Criterion

    Aprende a testear código Rust desde el primer módulo: unit tests con #[cfg(test)] y acceso a funciones privadas, integration tests en tests/, doc tests en comentarios /// y benchmarks de rendimiento con Criterion. Todo con cargo test.

  • Generales 0

    async/await en Swift: Task, structured concurrency y cancelación

    Aprende a usar Task, async let, withTaskGroup y cancelación cooperativa en Swift. Ejemplos prácticos de peticiones en paralelo, Task.sleep, withTaskCancellationHandler y structured concurrency para dominar la concurrencia más allá del async/await básico.

  • Generales 0

    async/await en Swift: Task, structured concurrency y cancelación

    Aprende a usar Task, async let, withTaskGroup y cancelación cooperativa en Swift. Ejemplos prácticos de peticiones en paralelo, Task.sleep, withTaskCancellationHandler y structured concurrency para dominar la concurrencia más allá del async/await básico.

  • Generales 0

    gRPC y Protocol Buffers en Go: definir servicios .proto, generar código y servidor/cliente

    Aprende a usar gRPC con Protocol Buffers en Go: instala protoc y los plugins, define un servicio en .proto con mensajes y métodos rpc, genera código Go, implementa servidor con UnimplementedXxxServer y cliente con llamadas unarias, manejo de errores tipados e interceptores de logging.

  • Generales 0

    serde en Rust: serializar y deserializar JSON, TOML y YAML con derives

    serde es el framework de serialización estándar en Rust. Aprende a usar #[derive(Serialize, Deserialize)] en structs y enums, serde_json para convertir a JSON, atributos de campo como rename o skip, serde_json::Value para JSON dinámico, y cómo reutilizar las mismas derives con TOML y YAML.

  • Generales 0

    Macros declarativas en Rust: macro_rules!, patrones y repetición

    Aprende a escribir macros declarativas en Rust con macro_rules!. Cubre patrones como $x:expr e $i:ident, repetición con $(...)* y ejemplos reales: assert personalizado, constructor de structs, mapa! y un DSL de rutas. Incluye errores típicos y cómo depurar con cargo expand.

  • Generales 0

    reqwest en Rust: cliente HTTP asíncrono, GET/POST, headers, JSON y manejo de errores

    Aprende a usar reqwest, el cliente HTTP asíncrono más usado en Rust. GET simple con reqwest::get(), Client con pool de conexiones y timeout, deserialización JSON con serde, POST con autenticación Bearer, descarga de ficheros y el error típico del feature json sin activar.