Qafoo GmbH - passion for software quality ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :Author: www-data :Date: Wed, 31 Oct 2018 10:07:55 +0100 :Copyright: All rights reserved ======================= PHP Hypertext Processor ======================= - 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. - Confoo: Testing, Performance, Metrics and APIs Kore and me are currently attending Confoo in Montreal (Canada), one of the largest and a really awesome conference on web technologies. With our talks, we shared some of the Qafoo knowledge on Building Testable PHP Applications, Continuous Performance Testing, Understand and use software metrics and Designing Beautiful APIs. Find our slides for download here. - 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 for many aspects effective, method of exercise to the world of programming. - Speaking at ConFoo.ca 2013 in Montreal By the end of the month, ConFoo.ca Web Techno Conference will take place again in in Montreal Canada. Qafoo experts are part of this outstanding experience for several years and will be again from February 25th to March 1st 2013. This year, Kore and Toby will be on-site to share a bit of Qafoo experience with you on the following topics. - Testable Code and SOLID at PHPBNL PHPBenelux was, as usual, the first conference of the year and, also as usual, it was a really great conference. As a 3rd "usual" thing, I did a tutorial and a talk there: On how to write Testable Code and to Make Your Project SOLID by applying these 5 fundamental principles of object oriented design to your code. - Black Magic with Regular Expressions We are happy to announce the availability of my second Regular Expression webinar recording.It was a fun event, which I used to explain all the attendees a little bit more about the PCRE Regular Expression engine available in PHP and some other languages. I am covering some slightly advanced topics, like subpattern options, unicode and backtracking aka. greediness and performance. - Benjamin Eberlei Joins Qafoo Today we are happy to announce that Benjamin Eberlei will join the Qafoo family as a consultant and trainer in the beginning of 2013. Benjamin is lead developer of the Doctrine project, part of the Symfony 2 community, well known speaker and trainer. Beside that, he is an expert in software architecture and design, especially in the area of business logic modelling. - 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. - 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. - Browser SOA / HTTP Debugger Did you ever try to debug a system with multiple interacting web services? We just released a tool, which we developed internally to be able to debug complex HTTP based SOA stacks (REST). It offers the same listening capabilities like Wireshark, but displays the HTTP requests in a far more readable way and makes it easy to reproduce single requests. Read moreā€¦