Engineering Software as a Service

Parte 1

La primera parte de este curso fue un poco decepcionante. No porque el curso no sea bueno, sino porque tenía demasiadas expectativas. La primera vez que lo vi no lo pude seguir, y empecé a investigar sobre Ruby on Rails para la siguiente iteración. Al final terminé aprendiendo bastante sobre Rails con dos tutoriales excelentes (Pragmatic Programmer y Rails Tutorial de Michael Hartl), así que los Homeworks de este fueron relativamente sencillos. Igual es importante resaltar que el foco del curso no es aprender Rails, sino buenas prácticas para hacer aplicaciones Saas (Agile, TDD, etc.).

Aparte de eso, el curso tiene bastantes puntos de quizzes y un examen. Como quería sacar el certificado, hice todos los requerimientos y me saqué 90%.  A continuación algunos detalles de cada assignment:

HW0) Intro to Ruby

Algunos ejercicios bastante simples para familiarizarse con Ruby. Nada del otro mundo, problemas chicos a nivel de cualquier sitio interactivo (Code School, Codewars, etc.)

HW1) Hangman

Esto es una app en Sinatra. La parte de las sessions fue un poco más compleja de lo que esperaba, porque no conocia Sinatra. Armando tiene un video donde explica algunas cosas que hubiera sido bueno saber antes de empezar a programar. Me di la cabeza contra la pared más de lo necesario por no leer la documentación.

HW2) Rotten Potatoes

Esta app se usa en varios Assignments del curso, es una base de datos con reviews de pelis. Para este problema implementamos la funcionalidad de ordenar la lista de películas por dos criterios. La idea es enfocarse en hacer que la API siga la arquitectura REST, codificando todo el estado de la aplicación en la URL.

HW3) BDD and Cucumber

En este Homework, nos presentan a Cucumber, una dsl para escribir User Stories que se parezcan lo más posible a lenguaje humano. Esto permite que los clientes no técnicos esten más involucrados en el desarrollo de la aplicación. El ejercicio es una modificación sencilla a la aplicación Rotten Potatoes.

HW4) TDD CyclE

En este assignment, la idea es familiarizarse con el ciclo TDD (Red, Green, Refactor) usando Rspec. Si bien el ejercicio es bastante fácil, no es trivial adaptarse al ritmo de escribir tests primero.

Varias veces empecé a escribir programas que no parecían suficientemente complicados para hacerlos con TDD, e invariablemente se complica. La regla que estoy tratando de adoptar es: si no vale la pena programarlo con TDD,  no vale la pena programarlo.

 

Anuncios