Raimund Krämer

Software Craftsman, Consultant, Coach

Category: Software Design

  • The Purpose of Getters and Setters

    The Purpose of Getters and Setters

    First of all, I don’t advocate for getters and setters at all. Don’t use them (especially setters) if you find an alternative. There usually is a better design. I won’t go into that here. I want to focus on a bigger, very common problem: Many of the people who use…

    Read more

  • SOLID Principles: Common Misconceptions

    SOLID Principles: Common Misconceptions

    The SOLID principles for software design can be a helpful thinking and communication tool of a software developer, even if perhaps just as a reason to think about software design from another perspective. While there are many more software design principles that are arguably at least as important, the SOLID…

    Read more

  • SRP Misunderstood

    SRP Misunderstood

    The Single Reponsibility Principle (SRP) is commonly misunderstood. Often you might hear explanations like “a class should do only one thing”, sometimes even extended to methods. Here’s a heuristic that I think might help: This may not only lead to less-bad code, but as a side effect also to a…

    Read more

  • Technical Empathy

    Technical Empathy

    Technical empathy is one of those concepts that seemed so obvious once I was aware of them, and yet it was quite a revelation when I first heard of it from Michael Feathers a few years ago. “The ability to see the system from the point of view of the…

    Read more

  • The SRP is not SoC

    The SRP is not SoC

    The Single Responsibility Principle (SRP) aims to increase cohesion and to minimize the risk of breaking functionality through seemingly unrelated code changes. However, many misunderstand the SRP, thinking it means a class should only do one thing, or that the SRP can be applied to functions or architectural layers rather…

    Read more