Qafoo GmbH - passion for software quality

Help you and your team benefit from new perspectives on cutting-edge quality engineering techniques and tools through the Qafoo team weblog.

PHP Hypertext Processor

  • Code Reuse By Inheritance

    by Kore Nordmann on Mon, 20 Jan 2014 11:19:12 +0100

    To me, inheritance has two properties:

    • Defining an is-a relationship
    • Making it possible to share code between classes by extending from a common base class
    The is-a relationship between classes is one thing I like to use inheritance for. So, to me, a concrete Cache - for example a MemcacheCache implementation - extending from an abstract Cache base class is a very sane thing to do. Implementing an interface means, in my opinion, adding an additional usage aspect / feature to a class, while the base class defines the type of a class. Mind: The base class, most likely, only defines abstract methods and does not provide any implementation in this case. I discussed this in more detail in a dedicated blog post, which is why I skip a detailed explanation now.

    Read more on Code Reuse By Inheritance…
  • Tracking Changes in PHP Projects

    by Kore Nordmann on Wed, 20 Nov 2013 09:20:39 +0100

    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, which are often affected bugs and other statistics. After some hacking, we are now making it available on Github.

    Read more on Tracking Changes in PHP Projects…
  • ContainerAware Considered Harmful

    by Tobias Schlitt on Mon, 07 Oct 2013 11:25:46 +0200

    A while ago I tweeted

    ContainerAware 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 future.

    Read more on ContainerAware Considered Harmful…
  • Fixing Legacy Code

    by Kore Nordmann on Mon, 09 Sep 2013 07:07:03 +0200

    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 with legacy code 99% of their time. Even harder, many green-field projects turn into legacy within months or even weeks.

    Read more on Fixing Legacy Code…
  • Finding the right Test-Mix

    by Benjamin Eberlei on Mon, 19 Aug 2013 10:50:38 +0200

    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.

    Read more on Finding the right Test-Mix…
  • Testing: Find the Sweet Spot

    by Kore Nordmann on Wed, 17 Jul 2013 08:07:58 +0200

    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 infrastructure and business models with an ugly, mocked twin. Simply: How to efficiently write tests? And how to avoid that everyone hates them within 10 months, so that they would rather deactivate them instead of fixing them.

    Read more on Testing: Find the Sweet Spot…
  • Ducks Do Not Type

    by Kore Nordmann on Thu, 11 Jul 2013 14:51:23 +0200

    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…

    Read more on Ducks Do Not Type…
  • A tricky Thing: The arguments-object

    by Jakob Westhoff on Mon, 01 Jul 2013 08:10:13 +0200

    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 general. Every now and then most JavaScript developers can't explain why certain things happen and others don't. One of those mysteries fueling the confusion is the arguments-object. This post will help to solve this mystery once and for all.

    Read more on A tricky Thing: The arguments-object…
  • Embedding REST Entities

    by Tobias Schlitt on Thu, 13 Jun 2013 10:35:27 +0200

    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 entities together. The downside of such an approach is the raised complexity of caching and especially purging logic. In this blog post I will further elaborate on the approach of resource embedding.

    Read more on Embedding REST Entities…
  • Dependency Management / Mocks, Stubs and Spies with JavaScript

    by Kore Nordmann on Fri, 16 Sep 2016 11:44:49 +0200

    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 most webapplications. That's why I give a lot of trainings about JavaScript these days. Take your chance to peek at the two sessions I just presented.

    Read more on Dependency Management / Mocks, Stubs and Spies with JavaScript…
1 - ... - 3 - 4 - 5 - 6 - 7 ... - 9