N'écrivez pas de code en double (DRY)


Essayez de suivre le principe DRY

Faites de votre mieux pour éviter de dupliquer du code, c'est un très mauvais comportement, la duplication de code signifie généralement que lorsque vous devez changer une logique, vous devez modifier à plusieurs endroits.

Imaginez si vous dirigez un restaurant et que vous enregistrez les achats et les ventes de votre entrepôt : toutes les pommes de terre, oignons, ail, poivrons, etc. Si vous disposez de plusieurs listes pour gérer vos achats et vos ventes, vous devrez toutes les mettre à jour lorsque vous cuisinerez avec certaines pommes de terre. Si vous n’avez qu’une seule liste, il n’y a qu’un seul endroit pour mettre à jour.

Habituellement, lorsque vous copiez du code, vous devriez avoir deux ou plusieurs logiques légèrement différentes, la plupart d'entre elles sont identiques, mais en raison de leurs différences, vous devez en avoir deux ou plus, mais pour la plupart les mêmes, en supprimant le code en double. en utilisant une fonction/module/classe pour créer une abstraction capable de gérer les différences. function/module/class创 建一个能处理差异的抽象。

用对抽象非常关键,这正是为什么你必须学习遵守在类章节写 的SOLID

Utiliser la bonne abstraction est très critique, c'est pourquoi vous devez apprendre à respecter les principes SOLID écrits dans le chapitre de la classe. Une abstraction déraisonnable est pire que la copie de code, alors soyez prudent ! Cela dit, si vous pouvez concevoir une abstraction raisonnable, alors faites-le ! N'écrivez pas de code en double, sinon vous constaterez que chaque fois que vous souhaitez modifier un élément de logique, vous devez le modifier à plusieurs endroits.

Mauvais :

function showDeveloperList(array $developers): void
{
    foreach ($developers as $developer) {
        $expectedSalary = $developer->calculateExpectedSalary();
        $experience = $developer->getExperience();
        $githubLink = $developer->getGithubLink();
        $data = [
            $expectedSalary,
            $experience,
            $githubLink
        ];
 
        render($data);
    }
}
 
function showManagerList(array $managers): void
{
    foreach ($managers as $manager) {
        $expectedSalary = $manager->calculateExpectedSalary();
        $experience = $manager->getExperience();
        $githubLink = $manager->getGithubLink();
        $data = [
            $expectedSalary,
            $experience,
            $githubLink
        ];
 
        render($data);
    }
}
Bon :

function showList(array $employees): void
{
    foreach ($employees as $employee) {
        $expectedSalary = $employee->calculateExpectedSalary();
        $experience = $employee->getExperience();
        $githubLink = $employee->getGithubLink();
        $data = [
            $expectedSalary,
            $experience,
            $githubLink
        ];
 
        render($data);
    }
}
Excellent :

Il est préférable de garder le code compact🎜
function showList(array $employees): void
{
    foreach ($employees as $employee) {
        render([
            $employee->calculateExpectedSalary(),
            $employee->getExperience(),
            $employee->getGithubLink()
        ]);
    }
}