sql >> データベース >  >> RDS >> Mysql

複数の関数はPHPの1つの大きな関数ですか?

    関数には、明確に定義された最小限のリターンタイプを使用して、明確に定義された狭い責任が必要です。渡す引数に応じてすべてを実行し、キッチンが沈む「神の関数」を作成し始めると、スパゲッティコードを維持するのが難しい領域に深く入り込んでしまいます。 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の間に小さな違いがあることを確認し、コードを散らかします。それぞれの特別な場合。それは、巨大な、または非常に一般的な機能につながるだけであり、基本的にはそれ自体では何もしません。



    1. MySQL/MariaDB用のAzureデータベースをオンプレミスサーバーに移行する

    2. Oracleストアドプロシージャを実行する方法は?

    3. MySQL平日/週末カウント-パートII

    4. スプリングブートでtimeTableを更新しようとしてエラーが発生しました