Re:Learning Ruby: Things I Like, Things I Miss from Python
by ysavir on Tuesday February 16, 2021 @02:25PM
(#26157709)
That's a horrible usecase for single use private methods, agreed. But I think they're an excellent way to breakdown a complex chunk of code into smaller components, using the method names to describe what they're doing. That requires good naming, though; without good names, the effort is moot.
Re:Learning Ruby: Things I Like, Things I Miss from Python
by ljm on Tuesday February 16, 2021 @05:25PM
(#26159542)
I think they serve a good purpose once you realise you've stepped out of OOP. You have the idea of a command, or a service, and it does a bunch of procedural things as part of its execution. It only has one public method, so the private methods are a way to describe the steps of the command.
But that's an architectural decision, it's not code style. If rubocop tells you how to write a function then you're going to see nonsense like the example in our parent comment.
Re:Learning Ruby: Things I Like, Things I Miss from Python
by ysavir on Tuesday February 16, 2021 @05:49PM
(#26159784)
> I think they serve a good purpose once you realise you've stepped out of OOP. You have the idea of a command, or a service, and it does a bunch of procedural things as part of its execution. It only has one public method, so the private methods are a way to describe the steps of the command.
It doesn't have to be a step out of OOP, and their usage is not limited to "Single Public Method Objects". Single use methods are just a convenient and clean way to make complicated code easy to digest, OOP or not.
"Single use private methods" is a little triggering to me... not even rubocop's fault. I've seen the likes of this before (single use):
Why!?? (that is a rhetorical "why")