Just finished the Software Engineering for SaaS course on Coursera . Very good, learned a lot about Ruby, Rails, Cucumber and RSpec. Took me about 30 hours, including the book, videos, and course assignments.
One thing to note and that is mentioned everywhere is that the Ruby and Rails segments have what they call an “accelerated pace”. This is important because they really mean it! While I understood enough to keep up with the assignments, they took a lot of web searches to be completed.
Ruby is quite interesting, specially given my main language, Delphi, which is quite formal. I did a lot of web apps with it in late 90s, but Rails is very far away from it. I realized it before learning more about it, but it is incredibly easy to make some very complex stuff up in it.
I really like Cucumber – a BDD (Behaviour Driven Development) tool. It servers as documentation and automated tests at once, and it is really readable:
[box type=”note” style=”rounded”]
Section of a Cucumber test for a site:
Feature: search for movies by director
Background: movies in database
Given the following movies exist:
| title | rating | director | release_date |
| Star Wars | PG | George Lucas | 1977-05-25 |
| Blade Runner | PG | Ridley Scott | 1982-06-25 |
| Alien | R | | 1979-05-25 |
| THX-1138 | R | George Lucas | 1971-03-11 |
Scenario: add director to existing movie
When I go to the edit page for “Alien”
And I fill in “Director” with “Ridley Scott”
And I press “Update Movie Info”
Then the director of “Alien” should be “Ridley Scott”
There is some support code for that, but surprisingly little.
RSpec – the TDD (Test Driven Development) tool – uses regular Ruby code, but the nature of Ruby (plus the RSpec helper functions) makes mocks and several other details incredibly easy. You can just replace method calls with mock functions, and at the same time easily control the results and check how they are called. Awesome.
The course wasn't perfect (in particular, a lot of the videos were hard to read, although they are fixing that for the next edition), but I think it was pretty good, specially for free. Recommended.