I attended BathRuby conference last Friday, it was held in Bath UK.
At the same time, there was Wrocloverb conference organized in Wrocław. Some of my colleagues chose to go there instead. I asked them to note down which talks were worth watching later. I did the same for them, so here’s a list of talks I recommend watching as soon as they are published if you didn’t attend the conference.
Let’s go through them one by one:
Ben walked us through refactoring of Ruby code. We refactored step by step a class that parsed CSV and sent emails. We ended up doing inversion of control. I found his talk interesting and amusing, Ben is very confident speaker and easily communicates with audience. He seemed very well prepared and I could see that he tried practised it a couple of times.
Katrina Owen “Here Be Dragons”
I liked Katrina’s talk very much, it was entertaining. She made a presentation that resembled a game of fighting bugs. She told a story of fixing a simple bug, one that revealed more and more nasty code. This code had to be refactored, and she showed us her thinking process.
After that we were encouraged to think how does it happen, why programmers commit code which they aren’t proud of. She presented a rules of prisoner’s dilemma game. It consists of rounds in which players can defect or cooperate. Katrina pointed out that similar things might happen in software development teams. While coding people often do the same, defect or cooperate. Defecting, commiting low quality changes affects the whole team. It’s an easy way to get things done quickly and look productive, but later other team members have to patch bugs and refactor code and they waste time while doing that. When cooperating, all team members have to invest time and effort to increase codebase quality, but they all succeed the same time.
Conclusion was that quality is important and the only way to succeed as a team is to cooperate.
Tom Stuart “A Lever for the Mind”
Tom talked a lot about abstractions. We started with absolute basics, how number “3” is an abstraction of number of elements. For me the pace was a bit too slow at the beginning, but I understand that Tom wanted to provide context. Slowly we moved on from abstractions to why they help us, why we build layers and layers of abstractions and why they are important in OOP. My takeaway from this presentation was that if we abstract, we can use it as levers to solving very complex problems.
Sandi Metz “Nothing is Something”
Sandi started with some background information about her Ruby beginnings. One of reserved Ruby words that bothers her is the ‘if’ statement. The ‘if’ statement in code she presented was responsible for hiding a null object pattern. You can read more about it in her blog post.
Next example was an exercise she uses while teaching, a poem that children often recite. She showed us a class that built this poem, and then simulated a client that came with new requirements. It was fun to watch and I was impressed by how clearly she communicated her thoughts.
She explained that sometimes when we need shared behaviour. One way to extract differing parts is inheritance, but it doesn’t work in all cases. Finally we used composition, with ‘role’ objects. It’s nothing new, but I liked very much the way Sandi presented her line of thought.
This was the first time time this conference was organized, and I can sincerely say that it was organized very thoughtfully. Every detail was polished, there were no hiccups and talks went smoothly, with nice playlist played during breaks. I liked badges design very much:
I hope that there will be next year edition of Bathruby, it was a great experience and a lot of fun!
What are your thoughts on this conference?