121
you are viewing a single comment's thread
view the rest of the comments
[-] canpolat@programming.dev 24 points 1 year ago* (last edited 1 year ago)

Good point. However, approaching this problem from "YAGNI" point of view is a bit misleading, I think. If you are not going to need the timestamp, you shouldn't add it to your code base.

In my opinion, hastiness is the culprit. When a property appears to be a binary one, we jump to the conclusion to use a boolean way too quickly. We should instead stop and ask ourselves if we are really dealing with a situation that can be reduced to a single bit. The point raised by the article is a good example: you may want to record the state change as timestamp. Moreover, in a lot of the cases, the answer is not even binary. The values for is_published may be, "Yes", "No" or "I don't know" (and then we will be too quick to assign null to "I don't know"). Underlying problem is that we don't spend enough time when modeling our problems. And this is a sure way of accumulating technical debt.

[-] alertsleeper@programming.dev 6 points 1 year ago

I think this timestamp-as-a-boolean is a good idea if the field is always going to be interpreted as either True or False and nothing more. If the field in question allows for a 3rd (uncertain) value, then using a timestamp would be extremely confusing.

[-] canpolat@programming.dev 2 points 1 year ago

And it all depends on the problem at hand. Any of those solutions can be acceptable as long as you have a well thought out model.

[-] rmam@programming.dev 0 points 1 year ago* (last edited 1 year ago)

Good point. However, approaching this problem from “YAGNI” point of view is a bit misleading, I think. If you are not going to need the timestamp, you shouldn’t add it to your code base.

I don't agree it was a good point. It sounds like the blog author missed a requirement a few times, and after getting repeatedly burned in the requirements gathering stage he now overcompensates previous failing with I'll advised usages of timestamps instead of booleans.

YAGNI is always true. Always. The author's point, even when timestamps end up being required, are moot.

Also, if state changes are required them you don't tack on a timestamp to a row. You instead track events, including switching stuff on and off.

I feel this blog post is bad advise fueled by trauma.

this post was submitted on 29 Jun 2023
121 points (97.6% liked)

Programming

17314 readers
138 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 2 years ago
MODERATORS