Behavior Driven Development
While unit, integration and system tests - especially the methodology of Test Driven Development (TDD) - are great ways to push the technical correctness of an application forward, they miss out one...
View ArticleMocking with Phake
The use of Mock and Stub Objects is an important skill to learn when using Test Driven Development (TDD). Mock objects allow you to replace dependencies of an object with lookalikes, much like crash...
View ArticleWin a Ticket for PHP Unconf EU
PHP Unconference Europe is an amazing PHP community meet-up. We would love to help you experience this event and therefore raffle 2 x 1 ticket (viable for non-german as well as german participants).
View ArticleCode Coverage with Behat
There is generally no point in having code coverage for Behat test cases because of their nature: The purpose of an acceptance test is to assert a certain behavior of an application, not to technically...
View ArticlePHP Refactoring Browser Alpha Release
Without continuous refactoring, code maintainability and extensibility will start to decrease fast, even if it has tests. Until now, only IDEs contained functionality to perform automated refactorings....
View ArticleWebinar: Behavior Driven Development with Behat
I've already written two blog posts here about Behat: Behavior Driven Development and Code Coverage with Behat. If that made you curious or you wanted to learn about Behat anyway, I can highly...
View ArticleSlides: Behat & Beautiful APIs
Last Wednesday I did a little talk marathon by first presenting a Webinar on Behavior Driven Development with Behat and afterwards going straight to Cologne for the Symfony Usergroup, where I spoke...
View ArticlePragmatic REST & BDD at IPC
On the train back I'm just uploading the slides of my talks at the International PHP Conference in Berlin, which ended some minutes ago. In my first talk I captured my experience with designing RESTful...
View ArticleDependency Management / Mocks, Stubs and Spies with JavaScript
At this years IPC Spring I gave two sessions about different JavaScript-Topics. Eventhough most of us are PHP-Developers at their heart, in todays world JavaScript has become an integral component of...
View ArticleEmbedding REST Entities
During my talk at IPC Spring I showed an approach for embedding entities in REST responses. This methodology might be useful if the standard use-case for your API is to request multiple related...
View ArticleA tricky Thing: The arguments-object
Incited by a tweet regarding JavaScripts arguments-object, I decided to detail this object in this blog post. A lot of people are somewhat confused about the inner workings of JavaScript engines in...
View ArticleDucks Do Not Type
I consider public methods not originating from an abstract class or interface a code smell – at least when following class based object orientation design principles. Let me explain why…
View ArticleTesting: Find the Sweet Spot
How we need to craft architecture and design in order to significantly reduce the cost for tests. How to escape from the trap of the inner-platform antipattern, where we need to provide all...
View ArticleFinding the right Test-Mix
The topic of Test Driven Development (TDD) and unit-testing usually creates heated discussions among developers. We at Qafoo are not an exception and the topic how to apply TDD in our daily work...
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 Article