Desplegar en Heroku una App en Go

¡Volvemos a la carga! Esta vez con un post un poco más técnico que los últimos. Hace tiempo que llevo dandole vuelta a como mejorar la manera en la que desplegamos el software, sobre todo desde que vi la charla de “Deliveritis Aguda de Carlos Buenosvinos.

Así que me he puesto manos a la obra analizando como desplegamos nosotros y como automatizar al máximo posible el deploy. Después de ver distintas opciones la que más sencilla me ha parecido para proyectos personales es Heroku.

Crear cuenta en Heroku

Lo primero es crear una cuenta en Heroku. Tiene una capa gratuita que es suficiente para hacer pruebas.

01 cuenta heroku

Una vez que tengamos la cuenta lista, tenemos que instalar en nuestro ordenador Heroku CLI, en mi caso he optado por la instalación de brew

Continúa leyendo “Desplegar en Heroku una App en Go”

Charlas interesantes Enero 2020

Estas son algunas de las charlas que más me han gustado últimamente: Cómo mejorar como desarrollador, no te fíes, es justo al revés, por Jorge Franco y Angélica Sanz https://www.youtube.com/watch?v=y2k0Zl1xrLg Javier Abadía – Refactorizar rima con Simplificar, o por qué el miedo conduce a código inmantenible https://www.youtube.com/watch?v=iytUjwSfjDE Juanjo Montiel – ¡Se me ha roto la … Continúa leyendo Charlas interesantes Enero 2020

Retrospectiva y objetivos 2020

Aunque con un poco de retraso creo que es hora de echar la vista atrás y analizar todo lo que ha pasado este año. Si tuviera que resumir todo 2019 con una frase sería: se me ha pasado volando el año y creo que no me ha dado tiempo a hacer todo lo que me hubiese gustado.

Esa era la sensación que tenía cuando fui a escribir el post, luego me puse a buscar y recopilar información de todo lo que me había pasado este año… En realidad, ha sido un año en el cual he ido priorizando a medida que iba avanzando el año, por lo que no he cumplido los objetivos que me propuse al principio, pero no me importa he hecho otras cosas que me han molado más.

Continúa leyendo “Retrospectiva y objetivos 2020”

Trabajando en remoto

Remoto, teletrabajo, trabajar desde casa, trabajar desde cualquier sitio… es el concepto de moda entre todos los programadores que conozco. Llevo un tiempo trabajando desde casa y en este post voy a contar algunos consejos que me han funcionado (y otros que no) en más de un año fuera de la oficina.

Lo primero puntualizar un poco. Cuando hablamos de remoto, nos podemos estar refiriendo a un amplio abanico de posibilidades, es decir, según como yo lo veo hay distintos tipos de remoto:

Continúa leyendo “Trabajando en remoto”

Desarrollo de software en provincias: de Madrid al cielo

2 años desde que dejamos Madrid para volver a Sevilla. En este tiempo han pasado muchas cosas: nuevo trabajo, nuevos compañeros, un par de mudanzas, una hipoteca,… voy a contaros como fue ese “salto”.

Las razones por las que me cambié son claras: queríamos vivir más cerca de la familia (el AVE ya cansaba) y Madrid con un bebé lo veíamos logísticamente “complicado”. En cuanto al salto… son muchas dudas empezando por: yo me voy con lo que parece un buen trabajo (incluso en las entrevistas hice preguntas que no se me hubiesen ocurrido hacer en otro caso), pero ¿qué pasa con mi pareja?

Continúa leyendo “Desarrollo de software en provincias: de Madrid al cielo”

¿Cómo saber si encajaré con la cultura de empresa? Pregunta en la entrevista

Se habla mucho de cultura empresarial, de tener una cultura de empresa sana, de talento y de como retenerlo,… pero cuando estamos en una entrevista de trabajo como candidato ¿cómo saber si vamos a encajar? ¿la cultura será acorde a mis valores? ¿Cómo averiguarlo?

La verdad es que no hay una formula secreta, en este post voy a intentar contar algunas preguntas que he hecho para averiguar como sería trabajar en ese sitio y si de verdad la oferta encaja en lo que busco.

Continúa leyendo “¿Cómo saber si encajaré con la cultura de empresa? Pregunta en la entrevista”

go y json

Vamos a seguir aprendiendo un poco más acerca de GO.
En la serie de posts hemos creado una aplicación para ver la puntuación de un jugador y para añadir un punto dado un jugador.
Es la hora de empezar con aprender JSON.
Para ello ampliaremos la API con un nuevo endpoint que nos devuelva la lista de jugadores y sus puntos en formato JSON.

5519473590_20a555fdf9_z.jpg

Añadir el endpoint:

  • GET /league que devuelve la lista de jugadores con sus puntos

Continúa leyendo “go y json”

Retrospectiva y objetivos 2019

Va llegando final de año y es hora de echar la vista atrás, analizar todo lo que ha pasado este año y ver como mejorar para el próximo año. Si tuviera que resumir 2018 en un titular sería: “A velocidad de crucero”.

Cuando vine a Sevilla pensaba que no iba a poder ir a muchos meetups, conferencias,… pero todo lo contrario. Me he encontrado que aquí la peña se mueve un montón y siempre están dispuestos a echar un cable. Así que repasando un poco he ido a: varios PHPSevilla, a varios SVQJUG (incluso uno en inglés de la sevillana Trisha Gee), Databeers, Management 3.0, Taller de organización del backlog con LEGO, Taller de cocina,…  y además me dió tiempo a escaparme a Madrid para la MadridSoftwareCrafter, la TarugoConf + Taller “Programar con escafandra” en la TarugoConf.

Incluso le eché valor y presenté una charla sobre “git y personas” en la Commitconf (la experiencia fue emocionante y aprendí muchísimo).

Continúa leyendo “Retrospectiva y objetivos 2019”

Hacer test de integración a una API en Go

Ha llegado la hora de usar nuestra API hecha en Go. Tenemos la API llena de tests unitarios gracias a TDD, además con las responsabilidades separadas usando inyección de dependencias.
Partiendo de la aplicación de los post anteriores en este vamos a crear un punto de entrada main.go y usaremos test de integración para comprobar que todo funcione.

La API que estamos desarrollando sirve para guardar el numero de partidas ganadas por un jugador.
Tenemos 2 endpoints:

  • GET /player/{name} obtiene la puntuación de un jugador dado su nombre.
  • POST /player/{name} añade un punto al jugador.

De momento, lo que nos importa es seguir el flujo de TDD (test – código – refactor) mientras aprendemos GO. Así que no tenemos base de datos, sino que lo guardamos todo en memoria.

Continúa leyendo “Hacer test de integración a una API en Go”

Crear una API con TDD en GO parte 2

En el anterior post ya creamos una pequeña API en GO aplicando TDD. En ese caso se trataba solo de leer datos con peticiones GET.
Basándonos en esa parte y ya que tenemos el gusanillo de TDD(hacer un test, el código y refactorizar) vamos a implementar una petición POST, que nos servirá para guardar datos.
Si recordamos, la idea de la API es ir guardando el numero de partidas ganadas por una serie de jugadores y poder consultar el numero de partidas ganadas por jugador.
Básicamente tendremos:

  • Obtener la puntuación de un jugador GET /player/{name} ya implementado en el post anterior.
  • Añadir una nueva partida ganada a un jugador POST /player/{name}

Como siempre mantendremos nuestro ciclo de TDD: Red, Green, Refactor. Para ello trabajaremos haciendo una solución iterativa y añadiendo mejoras en cada ciclo de TDD.

30627718347_e5af269af4_z
SanchezM LittleFinland GoldButte2

Continúa leyendo “Crear una API con TDD en GO parte 2”