On the 18th and19th of May I had the privilege to participate at the Italian PHP day in Verona with my workmates for the 2nd time.
Why @PHP day?
As a software engineer programming in PHP, it’s really important to follow the active international community. PHP day’s conferences offer the possibility to learn really interesting things from the international PHP gurus that are dedicated exclusively to PHP development and its related technologies.
Here is my experience of the two days I spent in Verona:
PHP day speakers are foremost as cool programmers as we are
The first thing I have undeniably noticed is that the PHP programmers are really cool guys 🙂 It was really important to feel in a context where people are like me. All the speakers have a great sense of humor and that’s very important. Look for example at this introduction of Ciaran Rooney – CTO at Skimlinks and President of PHP London, who shared with us his experience at his company.
What you should keep in mind
During these two days I heard different talks speaking about different things. It is obvious then that I made my own preferences among them but in general I would like to underline that from all I learned something. Some of them for instance talked less about code but are more focused on PHP among big existing projects.
For example the talk from two Swedish guys, Emanuel Winblad and Tobias Josefsson of Sports Editing Sweden “Real-time sports statistics with node.js, web sockets and symfony2” was very interesting. Even though we do not necessarily use all of the technologies mentioned by them at Onebip it is still a concrete example from which we can all learn. Their problem actually was to be able to offer their customers high performances during ice hockey matches. They explained that they’d decided to use different programming languages (not only PHP). Another important thing for them was to decouple and to scale their existent platform in order to make the code easy to maintain and easy to test. I definitely think that those problems are things we (software engineers) will sooner or later face so it’s interesting to hear and learn these experiences from “others”.
Importance of memory usage in PHP
When programming, especially if your company owns big servers, you don’t necessarily care about the memory usage. In a nice talk from my fellow compatriot, Julien Pauli, I could actually see in a deeper level “how it does work under the bridge”. I said we don’t necessary care until “we” programmers have this issue:
This is an example of wrong usage of memory. I have found it interesting to see that PHP memory is handled by a component called Zend Memory Manager and to see how we can use it to optimize our memory allocations.
Some good suggestions about how to improve monitoring
We all wish to have a system without any problems. It’s the dream of every programmer I suppose. We must somehow acknowledge that since by definition we are humans and not machines we can make mistakes. That’s the reason why we have the responsibility to anticipate what can happen by using monitoring tools. This is why I appreciated the talk from Lorenzo Alberton, Chief Technical Architect at Datasift, regarding how often we use it in the wrong way and don’t see when a real problem is happening.
Look at this example very explicit:
From how to parallelize your unit tests to how automated your acceptance tests
The talks respectively from Richard Tuin of Enrise and my co-worker at Onebip, Giorgio Sironi were the ones I was essentially expecting. First and foremost because at Onebip we use and write tests everyday, second because I hardly think that a good and safe system is a system under tests so we need to be informed about all the possibilities we have to optimize it.
Automated acceptance testing with behat and mink
On May 8th I had the opportunity to follow a webinar driven by Tobias Schlitt, Co-founder of Qafoo GmBH, where I learnt aboutBehat and how to write automated tests. During the PHP Day I took part in Richard Tuin’s talk regarding tools like Behat and Mink. Richard underlined first of all something that very often we hear at conferences and that is basically one of the fundamentals of the agile manifesto: “Business people and developers must work together daily throughout the project.”
It is totally true; we all have the same and a common objective that’s why since Behat is a tool supposed to be written in a language understandable by all (included non tech people), one of the imperatives is to have good customer collaboration. Since at Onebip we are used to writing user stories together with the client it is so far suitable for us to write an acceptance test with Behat.
Mink is also an interesting tool and can actually be combined with Behat. It is a framework used to emulate user interactions on web applications (on browser). This way from the test written in Behat language with the client we can also add interactions assertions like “clicks” or any other actions on web pages that asserts that the behavior is the one expected.
The test suite is slow
When we work on big systems covered by thousands and thousands of unit tests we must take into consideration the optimization. Optimizing a test somehow has its limits. By giving concrete examples Giorgio Sironi gave us tools and strategy to measure and parallelizes the test suite in order to optimize the velocity of execution.
Example of parallelization with Phpunit
The icing on the cake “Grab yourself an alibi” by Jacopo Romei
As I said in my introduction at the PHP day we are happy to find a community of programmers, business people that want to share with each other their passion with PHP. The last talk I heard was hosted by Jacopo Romei a PHP programmer and Agile coach member from Ideato.
I enjoyed his “happy end’s” talk because it made all of the participants cogitating over an interesting concept we faced, we are facing or probably will face in the future: “we are perfect but the others aren’t”.
By giving examples Jacopo actually demonstrated that very often we pass the blame on to others for not being like us, “perfect”. This is actually an interesting problem because instead of accepting that no one is perfect, not even ourselves of course, we just point the finger on other peoples inefficiencies: “If I don’t achieve my accomplishment it’s because the others are not like me perfect”.
Jacopo suggested as a conclusion that we should all accept, starting from now , that we are all imperfect and that it is much better to work in collaboration with one another.
By Aurelien Lair, Onebip Tech team