PHP UK Conference 2017
It is that time of the year again: PHP UK Conference. This is the 12th year that it has been running and the 5th year that I have been, as you can see from the lanyards that I have collected in that time:
Each year I come away full of inspiration and ideas for things to try out and this year was no different. There is a lot of that I could mention here but that would be too much to read. So here are some key things that stuck with me.
I should note, that all the talks that I went to were great and the fact that they are not mentioned here is not a reflection on their quality or my enjoyment of them!
Progressive Web Apps
Prior to seeing this talk by Rowan Merewood, I thought progressive web apps (PWAs) were simply websites that have offline availability and are installable on mobile device home pages. Whilst this is partially true, PWAs are simply web applications that follow a long checklist of standards.
A lot of these standards are just good practices (serve only HTTPS requests, be mobile responsive, to name a couple). But ultimately being a PWA is a scale not "you are or you are not". You can use a tool called Lighthouseto test your website's "PWAness".
You can also see the full list of what makes an app "progressive" here.
This was a fun talk by Rouven Weßling revolving around the Amazon Echo. It was one of those talks that didn't actually have PHP, but he gave a live demonstration around the basics of creating a custom app for it - in this case a trivia game.
I personally don't have much use for an Echo, but I found this so fun, that I invested in one just so I see what I can code for it after this talk!
I saw a couple of talks based around testing. Everyone knows that you should "test", but it is not always done and it is good to be reminded of some of the concepts and importance of it.
The first talk about this that I went to was by Anna Filina.
Anna gave a great overview of how and when to write Unit Tests including examples. As you can see from the recap, write tests when you write code.
One thing to remember though is that when you are starting out, don't expect to get 100% code coverage straightaway. Take it step by step covering more and more of the code.
Another interesting talk was from Sebastian Thoss, who spoke about "smoke testing" his servers before putting the code live.
I drew the above diagram instead of taking a photo of the slide. This type of test basically comes when they are ready to go live with some code.
They deploy the code to a live server and then hit that server using a library (that Sebastian has kindly made available here), via their load balancer. As soon as it passes, they make that server accessible with live traffic.
Contributing to Open Source Projects
Every year for the past 3 years, at least one of the keynotes is something to do with the community as a whole. These always are great and remind me of the bigger picture and always inspires me.
This year was no different and Gary Hockin did a great closing keynote that focused specifically on open sourced projects. I have always wanted to contribute in some way to some project, but never know how. But this talk really made me make the effort to find a project and find a way to contribute.
As a direct consequence of this talk, practically a week after seeing it, I am pleased to say that I made my first open source contribution. To Twig of all things! Not even a one liner, but an entire feature!
I had a lot of help from their existing contributors who reviewed the Pull Request, but they were all great and it was not at all scary. I definitely look forward to doing more in the future.
Driving Design by Example
I had previously heard the term "Domain Driven Design" (DDD) but never fully grasped what it was all about. Ciaran McNulty combined DDD with Behaviour Driven Development (BDD) to show an interesting way of designing and developing code.
By encouraging the writing of concrete examples when spec-ing a project, you can directly translate these examples into tests, functional code and ultimately the final product.
This enables code to be clean and well tested. It also enables a universal language to be agreed upon between developers and business owners (which cuts the need for translating business terms back and forth) and you have a clearly defined definition of "done".
I have to mention these that came out in the afternoon break:
In case you didn't know, I love cheesecake. The one on the top was a red velvet cheesecake brownie. It was amazing. On the bottom was a key lime tart which was also exquisite. But combine cheesecake and brownie in one desert was just amazing and the cheesecake part was just right in consistency.
Not a defining part of the conference, but they had to be mentioned.
Hopefully See You Next Year
I always look forward to this conference every year and I always hope to come back the next year. But a year is a long time to plan ahead for, so we shall see!
Thank you to the organisers and the speakers for putting on a great one this year!