NRUG might die there and then. This is not the case. The group is now in the very capable hands of Matthew Bennett-Lovesey.
There were lots of new faces tonight or at least faces that were new to me at this NRUG event. Ben Hammond works at Further and has moved from Perl to Ruby. Mark Hannant is a senior SEO consultant, also at Further. Kieron Johnson is a freelance ruby developer. Rob Anderson works for Payment Card Solutions, a Rails and Ruby shop, who also sponsored the refreshments this evening.
The venue for this NRUG was Further, an award-winning online marketing & SEO agency. Their offices are in The Old Church on St. Matthews Road in Norwich. They were very nice indeed.
Rapid Development with Ruby, Sinatra, Bootstrap CSS, DataMapper and SQLitePhil Howard
Sinatra is an alternative to Rails. Phil took us through a simple example of how to create a basic web application, complete with security. The process looked very quick and easy and the application itself was aesthetically pleasing, but then Sinatra use Bootstrap, so you would expect it to be.
Data Mapper is an ORM (Object Relational Mapper) implementation of Active Record. Unfortunately it is no longer being developed. Phil took us through an example where he use Data Mapper to persist Fox objects and Badger objects, both types of Animal object to a database. In true ORM style, Data Mapper took care of creating the database tables and relationships and generated the code to persist and retrieve them. Phil modified the retrieval code to bring back either animal randomly and then pitched them against each other in a Top Trumps style.
There was lots of discussion about how ORMs work and how people either did or didn't like writing SQL. The example Phil demonstrated used single table inheritance and there was some discussion on about the pros and cons versus multiple table inheritance.
One drawback of Data Mapper is that it doesn’t support pagination. Surely every ORM should support that?
Beer Driven DevelopmentMatthew Bennett-Lovesey
There appear to be two camps of people when it comes to BDD. Those who see it as a better TDD and those who see it as more than a development practice and as a wider process of requirements capture that involves lots of collaboration between the customer and the development team.
Matt started off by describing to us what TDD is and then went on to describe how it differed from BDD at a practical level. There were lots of examples, including lots of Ruby code. Ruby is often described as being better than Java for one reason or another, but I think Java has the upper hand in unit testing frameworks due to its use of annotations, while Ruby still uses inheritance to create test fixtures.
There was a lot of discussion on the real benefits of using TDD over not using it. Some people still struggle with the idea that the extra time taken to write the tests can save you exponentially more time later that would otherwise be lost to bug fixing.
These really were two excellent presentations and with all the banter and audience participation it was 10.30pm before people started to leave.