Tdd con go: punteros, errores y el típico ejemplo de wallet

Ya hemos aprendido a usar structs para modelar figuras. Ahora vamos a ir un poco más allá usaremos struct para administrar el estado.
Vamos a realizar el típico ejemplo de una cuenta de banco. ¡El mundo fintec es nuestro!

Vamos a hacer una cartera en al que podremos depositar fondos. Como siempre en toda esta serie implementaremos nuestra cartera haciendo TDD.

Continúa leyendo “Tdd con go: punteros, errores y el típico ejemplo de wallet”

Go con TDD: Visibilidad y naming

Continuamos con la serie de aprendiendo Go Con TDD.
Esta vez el post va a ser un poco especial. Vamos a hablar de visibilidad de los métodos y de por qué Go es especial en ese sentido.
Además comprobaremos que tener buenos tests y saber utilizar un buen IDE nos permiten hacer cambios en nuestro software de manera sencilla.

Si recordamos solo en el primer post de la serio 1. “Aprendiendo Go con TDD” hemos escrito código ejecutable que no fuesen tests. En otras palabras, no hemos hecho ninguna función main todavía.

Continúa leyendo “Go con TDD: Visibilidad y naming”

A fondo con go: structs, interfaces

Si es cierto, en el post anterior ya hablamos de structs, pero es que todavía nos queda mucho por aprender.
Ya sabemos que los structs son colecciones tipadas de campos y además son muy útiles para agrupar datos juntos.
Así que partiendo del ejemplo anterior de geometría, donde tenemos un struct Triangle con un método para calcular su área
y un struct Rectangle con un método para calcular su área vamos a darle una vuelta de tuerca para saber que son las interfaces y como sacarles partido.

9713407427_90f5f069a8_z
Estación de Chamberí – Antonio Tajuelo

Continúa leyendo “A fondo con go: structs, interfaces”

Poco a poco con Go y TDD: package, funciones, bucles, arrays y cobertura de test

Todo funcionando, $GOPATH, HelloWorld,… ahora vamos a hincar el diente de verdad a Go con TDD.
Crearemos una pequeña calculadora con la que aprenderemos a hacer un package, funciones, tocaremos un poco los arrays y además nos servirá para mejorar nuestras skills de TDD.

Empezando por los test

Para empezar con la calculadora, vamos a crear un package llamado calculator, así que creamos un directorio con ese mismo nombre (calculator) y nuestro primer fichero será calculator_test.go (TDD a tope).

*nota: solo puede existir un package por directorio

El código de ese primer test será algo así:

package calculator

import "testing"

func TestAdder(t *testing.T) {
    sum := Add(2, 2)
    expected := 4

    if sum != expected {
        t.Errorf("expected '%d' but got '%d'", expected, sum)
    }
}

Si nos hemos fijado un poco en el mensaje de error, vemos que ahora utilizamos %d en lugar de %s porque lo que queremos es imprimir por consola un número.

Si ejecutamos go test nos aparecerá que no esta definida la función Add

$ go test
# github.com/jeslopcru/golang-examples/02-calculator
./calculator_test.go:8:9: undefined: Add

Compilation finished with exit code 2
7997258366_7e77afa99d_z
Atardecer – Paula Gonzalez Perez

Continúa leyendo “Poco a poco con Go y TDD: package, funciones, bucles, arrays y cobertura de test”

Aprendiendo Go con TDD

Hace tiempo que quiero hincar el diente a Go, el lenguaje de Google. Empecé jugando un poco con exercism.io y creo que es hora de empezar Go con test. Vamos a intentar explicar como testear un ejemplo sencillo con Go, para más adelante evolucionar ese ejemplo con usando un enfoque de TDD. La idea es conocer como funciona el lenguaje: declarar variables, crear funciones, hacer test, usar constantes…

5803193649_18e29b5b0e_z
Micah Camara – Go

Continúa leyendo “Aprendiendo Go con TDD”

Cómo saber qué preguntas hacer en una entrevista

Pasar por un proceso de selección es algo complicado, inviertes tiempo, esfuerzo en hacer las entrevistas, las pruebas técnicas… ya hemos hablado antes de Preguntas sobre… en una entrevista a un “desarrollador” y Como preparar una entrevista de trabajo. Esta vez es diferente, estoy al otro lado y créeme cuando te digo que saber que preguntas hacer es más complicado de lo que parece.

Exif_JPEG_PICTURE

Continúa leyendo “Cómo saber qué preguntas hacer en una entrevista”

¿Cuánto vas a tardar? Técnicas para estimar

  Estimar, ¿cuanto cuesta hacer esto?¿como lo estimamos? No tengo ni idea de como cuanto voy a tardar y predecir el futuro nunca ha sido lo mío. Las técnicas de estimación “ágiles” son colaborativas, todas las personas involucradas en el proceso deberían colaborar. Del mismo modo, estas técnicas están pensadas para ser rápidas y que … Continúa leyendo ¿Cuánto vas a tardar? Técnicas para estimar

Requisitos, tareas, historias, prioridades, objetivos,… distintas técnicas para priorizar un product backlog

Requisitos, tareas, historias, prioridades objetivos,… una de las cosas más difíciles a la hora de desarrollar un producto software no es la arquitectura, ni los test, ni siquiera el lenguaje de programación, los más complicado es saber que hacer en el momento adecuado. Qué tenemos que construir, por qué vamos a hacerlo, como lo haremos y que es lo que va primero.

Sí, estoy hablando de priorizar, de objetivos. Así que aquí voy a intentar descubrir algunas técnicas para priorizar un product backlog o al menos intentarlo. No vamos a entrar en detalle de como hacerlo, hay miles de recursos que seguro lo explican mucho mejor que yo, solo quiero tener una pequeña lista de técnicas y un par de pinceladas de cómo funcionan.

6350781099_18e39fc20e_z

Continúa leyendo “Requisitos, tareas, historias, prioridades, objetivos,… distintas técnicas para priorizar un product backlog”

Makefiles como dejar de memorizar comandos en docker – Developer Vago

Si has trabajado con docker, o si lo has probado, seguro que te has dado cuenta de la cantidad de comandos que tiene y la cantidad de opciones posibles. Para simplificarme un poco la vida he estado buscando información y lo que más util me resulta es crear un pequeño Makefile con los comandos que más utilizo.

making waves
Elizabeth Donoghue – making waves

Así que hoy voy a contar algunos trucos y consejos sobre Makefiles y para que veáis la cantidad de comandos que hay aquí os dejo la lista:

Continúa leyendo “Makefiles como dejar de memorizar comandos en docker – Developer Vago”