I have a blog where I talk mostly about all things JavaFX, but this is one of the rare times that I write about something more general:

It’s All About (Loose) Coupling

I have about 35 years professional programming experience, and I’ve read literally millions of lines of code in that time. I’ve seen some great code, but mostly tons and tons of horrible code (a lot of that my own code from some time past) that I’ve been tasked with somehow fixing or enhancing. Over that time, I’ve often pondered what makes some code “good” and others “bad”.

My experience has shown me that excessive coupling is just about the worst thing that can happen to a code base in terms of sharing it and maintaining it. Yet, almost no new programmers (and a lot of experienced ones) seem to understand how important it is, and how to avoid it.

In this article, I review the kinds of coupling that I see all the time in projects that I look at. I try to explain how each type of coupling causes issues, how to recognize it and strategies to avoid or remove it.

Take a look, and let me know what you think.

  • @HamsterRage@programming.devOP
    link
    fedilink
    24 months ago

    That looks cool, but I have no idea what it does.

    Anticipating complexity is a critical core concept that isn’t taught in school either. Nothing of value ever stays simple. Unfortunately, it takes years of experience before you figure that out.

    • Ben Matthews
      link
      Français
      124 days ago

      Hi, excuse me for replying so late, but i’ve been away from lemmy for.a while. Well, to summarise, the model calculates the future trajectories, of population, economy, emissions, atmospheric gases, and climate response etc., according to a set of (hundreds of) diverse options and uncertainties which you can adjust - the key feature is that the change shows rapidly enough to let you follow cause -> effect, to understand how the system responds in a quasi-mechanical way.
      Indeed you are right, complexity is beautiful, but hard. A challenge with such tools is to adjust gradually from simple to complex. Although SWIM has four complexity levels, they are no longer systematically implemented - also what seems simple or complex varies depending where each person is coming from, so i think to adapt the complexity filter into a topic-focus filter. Much todo …