07 July 2019 — Comments
For a long time, I have been trying to include tests in every project in which I've worked on.
There are several types of automated tests (or what should actually be called automated checks). From unit tests, integration and functional tests, to end-to-end tests.
Each one of them differs from the rest by the scope they try to cover. From small units of code which are tested completely detached from external dependencies, to a whole app which is tested as a black box like if an end consumer was using it.
I'm not going to deeply discuss the semantics behind this, or where an integration test ends and an end-to-end test starts, because it's quite frequently a blurry line.
27 April 2019 — Comments
I've been wanting to write this article for a while, but it is a subject complex to approach.
Lately I've had some "conflicts" with users in some of the open source software (OSS) projects I maintain, and I have also seen some of the people I follow on Twitter dealing with the same.
Because of that I wanted to share my point of view on what should be the attitude and considerations when using OSS.
The first thing you have to take into account when using OSS, is that there are two kinds of projects which usually have different goals.
It is very common that companies which activity is related with software or make a deep use of technology, publish their own OSS projects.
14 December 2018 — Comments
Take into account that this is my relative point of view, from a community which is still quite new to me, so if you find that something I say makes no sense at all, you are more than welcome to leave a comment.
At the moment of writing this article, I have made some research, and my feeling is that only very strict object-oriented projects based on
Typescript introduce the concept of Dependency Injection.
16 November 2018 — Comments
A couple years ago I wrote a post about how to improve PHP applications performance by using
zend-servicemanager lazy services.
In that article I explained how the
ServiceManager takes advantage of the proxy design pattern to delay the creation of services, when they are marked as lazy.
That can improve performance if the object is resource consuming, but that is not the only advantage behind proxies.
Some days ago I was working on a new feature for Shlink, an open source project I maintain.
The feature consisted on adding support to geolocate IP addresses by using GeoLite2, an IP address database which is updated every month.
14 July 2018 — Comments
I have written a lot of posts about Zend Framework in general and Zend Expressive in particular, but I have noticed that I have never talked about one of the things that, from my point of view, makes Expressive so game-changing, Interoperability.
In the past, PHP frameworks used to be very big libraries, which tried to provide solutions to any possible problem in order to retain users.
At that time, you had to decide which framework you wanted to use, by weighing pros and cons. People ended up saying "I prefer framework foo, because it has a better templating system", "ok, but framework bar has a better performance and its dependency injection approach is delightful".