In 2015 I attended and spoke at Arrrrcamp which is a 2 day pirate themed Ruby Conference in Belgium (arrr me hearties). I was one of 12 speakers for an audience of approximately 150 developers. I had a great time, here is the video of my talk together with my slides.
Arrrrcamp is run every year and it's been one that I had on my list to at least attend at some point. When I saw the CFP had opened this year I decided to submit a talk. Luckily enough, I was accepted!
There is the abstract of my talk…
Opening up to change
The one constant in software is change.
Your code will need to change and adapt over time. We should try to write code that is easy to change in the future. If possible, change without having to edit existing code.
This talk is all about the O in SOLID: the Open-Closed principle. I'll explain what the Open-Closed principle is, why this is important and how to structure and refactor code to make it "open for extension but closed for modification".
In this talk I'll show you, by example, how to make your code more changeable. In fact, so changeable that you will be able to extend what your program does and how it behaves without modifying a single line of existing code. Starting with a real world example that is painful to extend, I’ll refactor it over many iterations until it truly is Open-Closed. I'll show techniques, trade-offs and some gotchas from real world experience which will help you write more flexible programs in the future.
If you’ve never heard of the Open-Closed principle or are unsure how to put it into practice then this talk is for you. I would love to help open the door of this technique and give you the ability to alter your system in a painless way by opening it up to change.
Here is the video, recorded on 2nd October 2015…
To accompany the video, here are my slides. I hope you find them useful.
A few people asked me about the source code to the project that I showed during the talk. Well, here you go:
I debated with myself if I should watch my talk back and in the end decided that I should as it's a good way to improve. I think I have a number of things that I could have done better:
- I move around too much. I did feel nervous up on stage but I think the moving around makes me look more nervous than I actually was.
- Syntax highlighting. I built my slides using Deckset (which is awesome) and used one of the built in themes that includes syntax highlighting. On my machine at home the colours looked ok, but watching the video back the blue code was pretty hard to read. Next time, I'll make sure there is plenty of contrast between the code and the background.
- I'm wondering if the last code example was a little too complex for a talk. Watching it back, I'm not sure how easy it was for the audience to follow. I'd be interested in what people think.
I'd like to take this opportunity to thank the organisers for looking after us and putting on a great conference. I'd also like to thank my employers at the time LoyaltyLion for sponsoring me for the conference which was super great and I really appreciated it. I know they are hiring at the moment, so if you are on the lookout for a new role with a great company with interesting problems to solve then you should check them out!