1.2 KiB
title | date | permalink | tags | cta | snippet | |||
---|---|---|---|---|---|---|---|---|
Don't add boolean arguments | 2024-05-03 | daily/2024/05/03/dont-add-boolean-arguments |
|
~ | Don't add boolean arguments to your methods. |
A convention I like from the Laravel framework is to avoid adding boolean arguments to methods.
For example, if I have this function:
public function getPosts() { ... }
If I wanted to only get published posts, one way would be to add a boolean argument:
public function getPosts(boolean $onlyPublished) { ... }
Then, I'd need to use that within the method body to add another condition (this is referred to as control coupling, where one method affects another).
The non-boolean approach would be to create a separate method with its own distinct name.
For example, getPosts()
could be named getAllPosts()
and there could be a separate getPublishedPosts()
method for only getting published posts:
public function getAllPosts() { ... }
public function getPublishedPosts() { ... }
Whilst we have two methods now instead of one, it's much clearer what each does and there aren't any random true
or false
s wherever the method is used.