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

  • Outside-In Testing and the Adapter and Facade Patterns

    by Benjamin Eberlei on Fri, 02 Sep 2016 07:59:09 +0200

    Outside-In Testing benefits a lot from the facade and adapter patterns, which will separate your code from third-party libraries and simplify the APIs of your system.

    Read more on Outside-In Testing and the Adapter and Facade Patterns…
  • How To Synchronize a Database With ElasticSearch?

    by Kore Nordmann on Sat, 10 Sep 2016 10:35:21 +0200

    Since search engines like Apache Solr and ElasticSearch are easy to use and setup more and more applications are using them to index their content and make it searchable by the user. After all the underlying Lucene index engine provides far more powerful features then a plain MySQL full text search or similar solutions. With Apache Solr and ElasticSearch you can enhance the performance and the functionality of your website. What we often stumble across, though, is the naiive approach of synchronizing both data storages which tends to fail in multiple ways. Let me show how you can fix this.

    Read more on How To Synchronize a Database With ElasticSearch?…
  • How To Refactor Without Breaking Things

    by Tobias Schlitt on Wed, 01 Jun 2016 12:46:18 +0200

    Refactoring means to change the structure of your code without changing its behavior. Refactoring is an essential part of everyday programming and should become knee-jerk for your whole development team. It is very helpful to cleanup feature spikes, revise earlier decisions and keep a maintainable code base in the long run. In a perfect project world - with extensive automated tests of various types - this is just a matter of getting used to. But there are only very few such projects, so getting into proper refactoring is much harder. This article will show you important tips to master this challenge with your team.

    Read more on How To Refactor Without Breaking Things…
  • When To Abstract

    by Kore Nordmann on Tue, 17 May 2016 12:30:54 +0200

    One of the most difficult challenges in a developers life is finding the "right" abstraction, or at least the best one given the current circumstances. The core problem is that abstraction is a bet on the future development of the software and we know that future is volatile. The circumstances will change, so will the view on the best abstraction change.

    Read more on When To Abstract…
  • Never Use null

    by Kore Nordmann on Tue, 03 May 2016 08:58:13 +0200

    When doing code reviews together with our customers we see a pattern regularly which I consider problematic in multiple regards – the usage of null as a valid property or return value. We can do better than this.

    Read more on Never Use null…
  • Common Bottlenecks in Performance Tests

    by Kore Nordmann on Tue, 19 Apr 2016 09:16:27 +0200

    Most developers by now internalized that we should not invest time in optimizations before we know what happens exactly. This is true for optimizations in your PHP code but also for optimizations regarding your infrastructure. We should measure before we try to optimize and waste time. How can this be done?

    Read more on Common Bottlenecks in Performance Tests…
  • Using Mink in PHPUnit

    by Benjamin Eberlei on Tue, 05 Apr 2016 08:06:36 +0200

    Another day for a short PHPUnit trick. If you want to use PHPunit to control a browser for functional or acceptence tests, then you can easily do this using the Mink library. Mink is well known from the Behat community to facilitate Behaviour-Driven Development (BDD), but it is a standalone library that can be used with PHPUnit just as easily.

    Read more on Using Mink in PHPUnit…
  • Launching the Tideways Company

    by Benjamin Eberlei on Thu, 31 Mar 2016 12:42:30 +0200

    Today we have a very exciting announcement: Qafoo and I have launched a new company together to turn my side project Tideways into a fully-fledged business.

    Read more on Launching the Tideways Company…
  • Why Architecture Matters

    by Kore Nordmann on Tue, 22 Mar 2016 09:35:38 +0100

    We experience that the system architectures of our customers grow more and more complex. This is either because of scaling requirements or because developers like to try out new technologies like implementing Microservices. What are the challenges with this and how can we overcome them?

    Read more on Why Architecture Matters…
  • Testing Effects of Commands With Phake::capture()

    by Benjamin Eberlei on Tue, 08 Mar 2016 10:33:33 +0100

    Today I want to share a simple trick for the excellent Mocking library Phake (I wrote about it before) when testing state on APIs that don't return values.

    Read more on Testing Effects of Commands With Phake::capture()…
1 - 2 - 3 - 4 - 5 ... - 9