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

  • 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()…
  • Teaching and Learning Domain-Driven Design without Patterns

    by Benjamin Eberlei on Sat, 27 Feb 2016 11:01:20 +0100

    When development teams start to use Domain-Driven Design (DDD) in work projects, then one or more developers read the blue book by Eric Evans and start to apply patterns such as Entity, Repository, Services and Value Objects. In my experience with teams using DDD it can be very distracting to think in patterns. Read about a more practical way to get started…

    Read more on Teaching and Learning Domain-Driven Design without Patterns…
  • Analyze the Quality Of Your PHP Code

    by Kore Nordmann on Fri, 23 Oct 2015 11:23:00 +0200

    In code reviews we often browse metrics, source code and reported code issues together with our customers. This leads to discussions about the current state of the code and possible improvements. First we used a bunch of shells scripts for that. In a second step we developed a simple PHP (Open Source) application helping us to do the job. Now we did the third step and rewrote that application into a React based client side (Open Source) application. Read on for the reasons and benefits…

    Read more on Analyze the Quality Of Your PHP Code…
  • Developers Life is a Trade-Off

    by Kore Nordmann on Wed, 27 May 2015 10:58:03 +0200

    At Qafoo, we train a lot of people on topics like object oriented software design, automated testing and more. It happens quite often that an attendee asks questions like "Which is the best solution for problem class $x?", "What is the optimal tool for task $y" or "There is a new technology $z, is that the future of web development?". Some are disappointed when I reply "It depends" or "That does not exist", but that's the truth.There is no silver bullet and one of the most important skills every developer needs to hone is to assess possibilities and to find the best trade-off for the current challenge.To make that point clear I'm giving three examples from my personal experience, some where it went well and some where it did not.

    Read more on Developers Life is a Trade-Off…
  • Utilize Dynamic Dispatch

    by Tobias Schlitt on Thu, 16 Oct 2014 07:00:50 +0200

    A while ago I replied to the tweet by @ramsey

    Traits are a nice way to provide common functionality to unrelated classes without using static methods on a global Util class.
    with
    Which makes them exactly as evil as static access. Funktionality you dispatch to becomes irreplaceable destroying a fundament of OO: Dynamic dispatch.
    I want to use this blog post to illustrate the concept of dynamic dispatch which I use a lot recently to motivate creating clean OO structures in my trainings. In my experience, this helps people to understand why we want to write code in this way. After that I will show why traits are bad in this direction.

    Read more on Utilize Dynamic Dispatch…
  • Testing Micro Services

    by Tobias Schlitt on Tue, 16 Sep 2014 07:21:39 +0200

    I recently had a short exchange with Ole Michaelis on Twitter about how to end-to-end test micro services. Since I didn't have time to make my whole case, Ole suggested that I blog about this, which I'm happily doing now.

    Read more on Testing Micro Services…
  • Qafoo Profiler Closed Beta

    by Tobias Schlitt on Wed, 25 Jun 2014 16:00:08 +0200

    We are excited to welcome you to the first blog-post about the Qafoo Profiler, a tool for PHP application performance and profiling.Qafoo profiler allows you to collect PHP response times and detailed profiling data on your applications. Gain immediate insights on how to improve your application's performance. Use our knowledge on open-source PHP libraries, content-management-systems and ecommerce platforms to find performance bottlenecks.

    Read more on Qafoo Profiler Closed Beta…
  • Why you need infrastructure and deployment automation

    by Benjamin Eberlei on Fri, 28 Feb 2014 12:12:20 +0100

    The amount of time wasted on setup, synchronization and deployment of applications is often ignored by teams and managers. Manual server management and application deployment are a huge waste of time and ultimately money. In addition, manual work is often prone to error and a big risk for uninterrupted uptime of production.Software quality does not stop with tests and good CodeSniffer and PHP Mess Detector scores. The deployment and setup is equally important to the quality of an application. From our experience, this is a field where many teams could still achieve huge productivity gains.

    Read more on Why you need infrastructure and deployment automation…
  • Learn OOD - to unlearn it again

    by Tobias Schlitt on Tue, 11 Feb 2014 07:09:59 +0100

    One topic we regularly teach in workshops for our customers is object oriented design (ODD), i.e. the art of crafting classes/interfaces in a way that the result is an easy-to-understand, maintainable and flexible code base. With the agile focus on shipping working software, some might consider the skill of OOD less important. One popular argument is that quick reaction to change is more important than designing objects and their interaction carefully. I personally look at it the exact other way around. This blog post summarizes why you need to learn OOD first, in order to avoid it to some degree again.

    Read more on Learn OOD - to unlearn it again…
1 - 2 - 3 - 4 - 5 - 6 ... - 9