関数には、明確に定義された最小限のリターンタイプを使用して、明確に定義された狭い責任が必要です。渡す引数に応じてすべてを実行し、キッチンが沈む「神の関数」を作成し始めると、スパゲッティコードを維持するのが難しい領域に深く入り込んでしまいます。 Xを渡すとAを実行してBを返す関数は必要ありませんが、Yなどを渡すとCを実行してDを返す関数は必要ありません...
コンクリートを開始することをお勧めします 同様のパターンが現れるのを見て、時間をかけて一般化します。したがって、実際に必要なメソッドを作成します。
public function findUserById($id)
public function findUserByEmail($email)
public function updateCompanyName($id, $newName)
これらの関数間でコードを共有していることがわかった場合は、バックグラウンドでコードを統合して、DRYを維持します。
public function findUserById($id) {
return $this->find('SELECT * FROM user WHERE id = ?', $id);
}
public function findUserByEmail($email) {
return $this->find('SELECT * FROM user WHERE email = ?', $email);
}
protected function find($query, $arg) {
...
}
逆に始めないでください。「X、Y、Zだけが必要」と考えて、1つのメソッドに統合するのに十分似ているように見えます。その後、X、Y、Zの間に小さな違いがあることを確認し、コードを散らかします。それぞれの特別な場合。それは、巨大な、または非常に一般的な機能につながるだけであり、基本的にはそれ自体では何もしません。