Software Design

The SOLID SW design principles are well known; I have noticed, however, that many find them unintuitive and hard to remember. Aren’t they? Well, not when put together as a whole.

But who loves rules?
Nobody does.
Those endless, evil lists one has to memorize and act upon as if they were produced by some sarcastic bureau.

So someone’s decided that SOLID is a nice acronym (“My app is rock-SOLID, huh-huh!”, right?) and stated five rules its dictates. Why five? Why not seven, or three, or 42? Go figure. Why are there exactly twenty-three design patterns? Because. Why must a semicolon follow some types of blocks but not others? Are class definition and function definition that different? (you Pythonists, don’t laugh at us now!)
Rules. Rules. Rules.
Rules rule!

Well, let…


A short analysis of the recent proposal draft for adding generics to Golang — what’s included, what’s excluded and how it will affect the language.

A few days ago, a new proposal draft for generics implementation in Golang was submitted. This is a short analysis of that draft. If you know what generics are and aware of the implications of their absence from Go, you might skip the first section and go directly here.

What are “Generics” and what Needs do they Solve?

It is a long time that the language has been lacking the ability of defining functions and other entities based on generic, parametrized types rather than concrete types. Thus, for example, the functions for finding minimum and maximum — math.Min() and math.Max() — are only defined in the standard library for…

Why are constructors such important elements in programming languages, and how can we use them to increase reliability while improving performance?

Many years have passed since the introduction of Object Oriented Programming concepts, and many programming languages have decided to adopt that approach, reject it or pick some parts of it while leaving others out. Yet, it still seems that the common description of the Three Principles of OOP has not been changed for decades, and it is still firm and valid in the various courses, books and even job interviews. Those three are, obviously, encapsulation, inheritance and polymorphism. …

Mike (Michael) Lindner

Programming and design enthusiastic ••• Architect in Slippers:

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store