sql >> Database >  >> RDS >> Mysql

meerdere functies is één grote functie in PHP?

Een functie moet duidelijk gedefinieerde, enge verantwoordelijkheden hebben met duidelijk gedefinieerde, minimalistische retourtypen. Als je begint met het creëren van "god-functies" die alles doen en het aanrecht doen, afhankelijk van de argumenten die je doorgeeft, begeef je je zwaar op het gebied van moeilijk te onderhouden spaghetti-code. U wilt geen functie die A doet en B retourneert als u deze doorgeeft aan X, maar wel C doet en D teruggeeft als u deze doorgeeft aan Y enz...

Het is een goed idee om te beginnen met beton en generaliseer in de loop van de tijd als je soortgelijke patronen ziet ontstaan. Creëer dus de methoden die u echt nodig heeft:

public function findUserById($id)
public function findUserByEmail($email)
public function updateCompanyName($id, $newName)

Als je merkt dat je code hebt gedeeld tussen deze functies, verenig dan de code achter de schermen om het DROOG te houden:

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) {
    ...
}

Begin niet andersom, denkend dat je "alleen X, Y en Z nodig hebt", die voldoende op elkaar lijken om in één methode te worden verenigd, om er later achter te komen dat er kleine verschillen zijn tussen X, Y en Z en je code vol te gooien met speciale gevallen voor elk. Dat leidt alleen maar tot functies die ofwel gigantisch zijn, ofwel zo algemeen dat ze eigenlijk niets uit zichzelf doen.



  1. Een Accent Sensitive-zoekopdracht uitvoeren in MySql

  2. Controleer of een tekenreeks een subtekenreeks bevat in SQL Server 2005, met behulp van een opgeslagen procedure

  3. Wat is de SQL-specifieke programmeertaalnaam van MySQL?

  4. Maak verbinding met een externe postgresql-server op amazon ec2