53
you are viewing a single comment's thread
view the rest of the comments
[-] hector@sh.itjust.works 9 points 5 hours ago* (last edited 5 hours ago)

EDIT: read the article turns out it's super useful... It gives insight into decision table which is a pattern I did not know about until recently...

Is this really a recurring design pattern for y'all?

I mean, you can just use a switch. anyways I'll read the article and see ;)

[-] jonc211@programming.dev 3 points 5 hours ago

Also take a look at the Specification Pattern for something similar.

That’s something I would only use if the logic becomes very complex, but it can help break things down nicely in those cases.

[-] Carighan@lemmy.world 3 points 5 hours ago

Decision tables are nice. They hide the important part of the logic away out of view of another programmer trying to figure out a bug in the code.

Very helpful! You take longer to find and fix bugs, and potentially miss a few extra ones because of stuff like this. Increased tech debt. Highly recommended! 👍

[-] hector@sh.itjust.works 1 points 2 hours ago

I mean, you can just right click "Definition" in VSCode and see how it works... It's not that inconvenient.

It's easy to read, write and refactor so I don't really see what you mean.

[-] BehindTheBarrier@programming.dev 2 points 48 minutes ago* (last edited 48 minutes ago)

What's fun is determining which function in that list of functions actually is the one where the bug happens and where. I don't know about other langauges, but it's quite inconvenient to debug one-linres since they are tougher to step through. Not hard, but certainly more bothersome.

I'm also not a huge fan of un-named functions so their functionality/conditions aren't clear from the naming, it's largely okay here since the conditional list is fairly simple and it uses only AND comparisons. They quickly become mentally troublesome when you have OR mixed in along with the changing booleans depending on which condition in the list you are looking at.

At the end of the day though, unit tests should make sure the right driver is returned for the right conditions. That way, you know it works, and the solution is resistant to refactor mishaps.

[-] einkorn@feddit.org 1 points 5 hours ago

I can't find it right now, but there is some explanation in "Clean Code" why switches shouldn't be used all over the place.

[-] djnattyp@lemmy.world 3 points 3 hours ago

Google for "replace conditional with polymorphism".

Just checked and it is in "Clean Code" - Chaper 17; Section G23 "Prefer Polymorphism to if/else or switch/case".

[-] einkorn@feddit.org 1 points 2 hours ago
this post was submitted on 24 Sep 2024
53 points (93.4% liked)

Programming

17028 readers
307 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 1 year ago
MODERATORS