Blog (5 of 14)
-
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 ➞ -
Object lifecycle control
From time to time I trip over APIs, which do not allow me to control the object lifecycle of the used objects myself. Let me discuss why this is a bad thing…
Tuesday 5 April 2011Read more ➞ -
Generating XML schemas from XML data
Already some time ago I published a tool on Github which allows you to generate (or learn) XML schemas from XML data. You provide the tool with a set of XML files and you get a nice, human readable, XML schema (XSD, DTD, …) from that. Read more for the details.
Tuesday 29 March 2011Read more ➞ -
[object Object]
This is a provoking title, but, in my honest opinion, a very valid rule of thumb. During the last years of teaching other developers, developing PHP libraries and applications and doing quality assurance on other peoples software I came to this rather abrasive conclusion - let me tell you why…
Wednesday 2 March 2011Read more ➞
Subscribe to updates
There are multiple ways to stay updated with new posts on my blog: