Testing Micro Services
I recently had a short exchange with Ole Michaelis on Twitter about how to end-to-end test micro services. Since I didn't have time to make my whole case, Ole suggested that I blog about this, which...
View ArticleUtilize Dynamic Dispatch
A while ago I replied to the tweet by @ramseyTraits are a nice way to provide common functionality to unrelated classes without using static methods on a global Util class.withWhich makes them exactly...
View ArticleDevelopers Life is a Trade-Off
At Qafoo, we train a lot of people on topics like object oriented software design, automated testing and more. It happens quite often that an attendee asks questions like "Which is the best solution...
View ArticleFixing Legacy Code
Working on a green-field project where you can start from scratch and avoid all the annoyances you experienced in earlier projects is fun. However, most developers cannot enjoy this pleasure but work...
View ArticleContainerAware Considered Harmful
A while ago I tweetedContainerAware is the new Singleton.While many people agreed by retweeting and faving. I feel the need to elaborate some more on this statement and safe the explaination for the...
View ArticleTracking Changes in PHP Projects
Since quite some time I've talked to people about the idea for a tool that tracks changes in the classes and methods of your PHP project in order to detect which entities are changed most frequently,...
View ArticleCode Reuse By Inheritance
To me, inheritance has two properties:Defining an is-a relationshipMaking it possible to share code between classes by extending from a common base classThe is-a relationship between classes is one...
View ArticleLearn OOD - to unlearn it again
One topic we regularly teach in workshops for our customers is object oriented design (ODD), i.e. the art of crafting classes/interfaces in a way that the result is an easy-to-understand, maintainable...
View ArticleQafoo Profiler Closed Beta
We are excited to welcome you to the first blog-post about the Qafoo Profiler, a tool for PHP application performance and profiling.Qafoo profiler allows you to collect PHP response times and detailed...
View ArticleTesting Micro Services
I recently had a short exchange with Ole Michaelis on Twitter about how to end-to-end test micro services. Since I didn't have time to make my whole case, Ole suggested that I blog about this, which...
View ArticleUtilize Dynamic Dispatch
A while ago I replied to the tweet by @ramseyTraits are a nice way to provide common functionality to unrelated classes without using static methods on a global Util class.withWhich makes them exactly...
View ArticleDevelopers Life is a Trade-Off
At Qafoo, we train a lot of people on topics like object oriented software design, automated testing and more. It happens quite often that an attendee asks questions like "Which is the best solution...
View ArticleAnalyze the Quality Of Your PHP Code
In code reviews we often browse metrics, source code and reported code issues together with our customers. This leads to discussions about the current state of the code and possible improvements. First...
View ArticleTeaching and Learning Domain-Driven Design without Patterns
When development teams start to use Domain-Driven Design (DDD) in work projects, then one or more developers read the blue book by Eric Evans and start to apply patterns such as Entity, Repository,...
View ArticleTesting Effects of Commands With Phake::capture()
Today I want to share a simple trick for the excellent Mocking library Phake (I wrote about it before) when testing state on APIs that don't return values.
View ArticleWhy Architecture Matters
We experience that the system architectures of our customers grow more and more complex. This is either because of scaling requirements or because developers like to try out new technologies like...
View ArticleLaunching the Tideways Company
Today we have a very exciting announcement: Qafoo and I have launched a new company together to turn my side project Tideways into a fully-fledged business.
View ArticleUsing Mink in PHPUnit
Another day for a short PHPUnit trick. If you want to use PHPunit to control a browser for functional or acceptence tests, then you can easily do this using the Mink library. Mink is well known from...
View ArticleCommon Bottlenecks in Performance Tests
Most developers by now internalized that we should not invest time in optimizations before we know what happens exactly. This is true for optimizations in your PHP code but also for optimizations...
View ArticleNever Use null
When doing code reviews together with our customers we see a pattern regularly which I consider problematic in multiple regards – the usage of null as a valid property or return value. We can do better...
View Article