Blog (5 of 14)
-
Finding 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 regularly leads to heated discussions. One reason for this is that both TDD and unit-testing combined are by some people seen dogmatically as the only way to do software development.
Monday 19 August 2013Read more ➞ -
Ducks 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…
Thursday 11 July 2013Read more ➞ -
PHP project room at FrOSCon 2013
This years FrOSCon – one of the most awesome open source software conferences – is right ahead and we are organizing a PHP project room again this year. Read more for details…
Saturday 25 May 2013Read more ➞ -
PHP Refactoring Browser Alpha Release
Constant refactoring is a cornerstone of TDD and an important technique to learn and apply during development. With the PHP Refactoring Browser we are releasing a tool that allows to automate common refactorings with a command line tool.
Monday 8 April 2013Read more ➞ -
Code Coverage with Behat
Code coverage does not make much sense for Behat tests, except for if you use them on legacy code as wide-coverage test cases, before starting to refactor. This blog post shows you how to generate code coverage information for your Behat test scenarios.
Wednesday 3 April 2013Read more ➞ -
Mocking 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 test dummies are used during automobile safety tests so humans aren't harmed.
Wednesday 13 March 2013Read more ➞ -
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 important aspect: the customer. None of these methods verify that developers actually implement what the customer desires. Behavior Driven Development (BDD) can help to bridge this gap.
Friday 8 March 2013Read more ➞ -
Coding in Katas
In almost any kind of sports you hone your skills by repeating a small piece of practice over and over again. Pretty much the same works for learning to play a musical instrument. The idea of Code Katas applies this simple but effective method of exercise to the world of programming.
Monday 18 February 2013Read more ➞ -
Code Review Tool
We, at Qafoo, do Code Reviews quite often together with our customers. This often focusses on dicussing metrics, browsing the associated code and discussing solutions for the issues found. We started using a bunch of shell scripts for that, like everyone else, but at some point we came up with a webinterface to do this in a more comfortable way. Now we want to share this tool with you.
Monday 5 November 2012Read more ➞ -
Abstract Classes vs. Interfaces
Features of object oriented languages are often use from a purely technical perspective, without respect to their actual semantics. This is fine as long as it works for you, but might lead to problems in the long run. In this article I discuss the semantical differences between abstract classes and interfaces. I also outline why following the semantics of those language constructs can lead to better code.
Tuesday 2 October 2012Read more ➞ -
Zeta Components retired from Apache
The Zeta Components project retired from Apache and is now available on Github. All components are now installable via Composer. Read more for details…
Tuesday 29 May 2012Read more ➞ -
PHP Subconference at FrOSCon 2012
This years FrOSCon - one of the most awesome open source software conferences - is right ahead and we are organizing a PHP ubconference gain this year. Read more for details.
Monday 7 May 2012Read more ➞
Subscribe to updates
There are multiple ways to stay updated with new posts on my blog: