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.

Qafoo Team Blog

  • 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…
  • eCommerce und Softwarequalität?

    by Tobias Schlitt on Fri, 16 Sep 2016 11:44:49 +0200

    Auf dem Shopware Community Day 2014 hielt ich eine kurze Präsentation darüber, warum Softwarequalität wichtig ist für Betreiber von Online-Shops und IT-Spezialisten, die beim Betrieb unterstützen. In diesem Post möchte ich weitere Einblicke gewähren.

    Read more on eCommerce und Softwarequalität?…
  • Released bepado Demo-Shop

    by Tobias Schlitt on Fri, 14 Mar 2014 11:08:31 +0100

    bepado is a distrbuted product-sharing- and checkout-platform we are developing with Shopware. Additionally to the SDK which was open source last week, we now released a demo-shop that shows the necessary integration steps in detail.

    Read more on Released bepado Demo-Shop…
  • 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…
  • 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…
  • Grasp - Structural Search and Replace for JavaScript

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

    About a week ago I came across a new JavaScript-related utility called grasp. Grasp is a commandline utility to search and replace content in JavaScript files. It has a certain similarity to tools like grep or sed.

    Read more on Grasp - Structural Search and Replace for JavaScript…
  • 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…
1 - ... - 3 - 4 - 5 - 6 - 7 ... - 10 - ... - 11