this post was submitted on 02 Nov 2023
1141 points (98.0% liked)

Programmer Humor

32571 readers
447 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] Alexc@lemmings.world 38 points 1 year ago (1 children)

This is why you write the test before the code. You write the test to make sure something fails, then you write the code to make it pass. Then you repeat this until all your behaviors are captured in code. It’s called TDD

But, full marks for writing tests in the first place

[–] oce@jlai.lu 48 points 1 year ago (6 children)

That supposes to have a clear idea of what you're going to code. Otherwise, it's a lot of time wasted to constantly rewrite both the code and tests as you better understand how you're going to solve the task while trying. I guess it works for very narrowed tasks rather than opened problems.

[–] moriquende@lemmy.world 17 points 1 year ago (1 children)

100%. TDD is just not practicably applicable to a lot of scenarios and I wish evangelists were clearer on that detail.

You could replace "TDD" with pretty much any fixed methodology and be completely accurate.

The only projects I've ever found interesting in my career was the stuff where nobody had any idea yet how the problem was going to be handled, and you're right that starting with tests is not even possible in this scenario (prototyping is what's really important). Whenever I've written yet another text/email/calling/video Skype clone for yet another cable company, it's possible to start with tests because you already know everything that's going into it.

[–] time_fo_that@lemmy.world 10 points 1 year ago

This is the reason I dislike TDD.

[–] homoludens@feddit.de 6 points 1 year ago* (last edited 1 year ago)

constantly rewrite both the code and tests as you better understand how you’re going to solve the task while trying

The tests should be decoupled from the "how" though. It's obviously not possible to completely decouple them, but if you're "constantly" rewriting, something is going wrong.

Brilliant talk on that topic (with slight audio problems): https://www.youtube.com/watch?v=EZ05e7EMOLM

[–] Alexc@lemmings.world 3 points 1 year ago

The tests help you discover what needs to be written, too. Honestly, I can’t imagine starting to write code unless I have at least a rough concept of what to write.

Maybe I’m being judgemental (I don’t mean to be) but what I am trying to say is that, in my experience, writing tests as you code has usually lead to the best outcomes and often the fastest delivery times.

[–] loutr@sh.itjust.works 0 points 1 year ago

Everything is made up of narrow tasks, you "just" need to break it down more :)