Maison > interface Web > js tutoriel > le corps du texte

Code Smell - Le rasoir de Hanlon

PHPz
Libérer: 2024-08-18 07:23:32
original
1027 Les gens l'ont consulté

Ne compliquez pas trop : restez simple

TL;DR : Un code trop défensif conduit à une complexité inutile.

Problèmes

  • Complexité inutile

  • Logique déroutante

  • Bogues cachés

  • Entretien plus dur

  • Performances plus lentes

  • Code encombré

Solutions

  1. Simplifier les contrôles

  2. Faites confiance à votre logique

  3. Concentrez-vous sur l'essentiel

  4. Suivez le K.I.S.S. principe

  5. Refactor régulièrement

Contexte

Réfléchir et concevoir trop votre code peut conduire à une complexité inutile.

Vous devrez peut-être vous défendre contre tous scénarios possibles, mais cette approche produit souvent un code volumineux et déroutant.

Hanlon's Razor suggère que vous ne devriez pas présumer de la méchanceté lorsque de simples erreurs ou malentendus sont plus probables.

Évitez une programmation trop défensive et concentrez-vous sur une logique claire et directe.

Vous pourriez anticiper des problèmes futurs qui pourraient ne jamais se produire ou essayer de rendre votre code trop flexible.

Un code simple est plus facile à maintenir, à déboguer et à comprendre.

Exemple de code

Faux

function processData(data) {
    if (typeof data === 'undefined') {
        throw new Error('Data is undefined');
    }

    if (typeof data !== 'object') {
        throw new Error('Data is not an object');
    }

    if (data === null) {
        throw new Error('Data is null');
    }

    if (Array.isArray(data)) {
        throw new Error('Data should not be an array');
    }

    if (!data.hasOwnProperty('items')) {
        return [];
    }

    if (!Array.isArray(data.items)) {
        throw new Error('Items should be an array');
    }

    if (data.items.length === 0) {
        return []; 
    }

    let processedItems = [];
    for (let item of data.items) {
        if (typeof item === 'undefined') {
            continue; // Skip undefined items
        }

        if (typeof item !== 'object') {
            continue; // Skip non-object items
        }

        if (item === null) {
            continue; // Skip null items
        }

        processedItems.push(processItem(item));
    }

    return processedItems;
}
Copier après la connexion

Droite

function processData(data) {
    if (!Array.isArray(data.items)) {
        throw new Error('Invalid data');
    }

    return data.items
        .filter(item => typeof item === 'object' && item !== null)
        .map(item => processItem(item));
}
Copier après la connexion

Détection

[X] Manuel

Le code compliqué comporte généralement plus de lignes et les méthodes longues sont un indice possible.

Balises

  • Bouffants

Niveau

[x] Intermédiaire

Génération d'IA

Les générateurs d'IA peuvent introduire cette odeur lorsqu'ils tentent de prendre en compte tous les cas extrêmes possibles.

Par exemple, gérer les NULL n'est pas nécessaire si vous les évitez complètement.

Détection IA

Les outils d'IA peuvent aider à détecter un code trop défensif en analysant la logique et en suggérant des simplifications avec des conseils appropriés.

Ces outils recommandent souvent de supprimer les vérifications inutiles ou de les combiner pour plus de clarté.

Conclusion

Évitez de trop réfléchir et de trop concevoir votre code.

Concentrez-vous sur les scénarios les plus probables et rédigez une logique claire et simple.

La simplicité conduit à une meilleure qualité de code et à une maintenance plus facile.

Rapports

Plus d'informations

Wikipédia

Programmation défensive

Clause de non-responsabilité

Les odeurs de code sont mon opinion.

Crédits

Photo de Nacho Fernández sur Unsplash


La simplicité est la sophistication ultime.

Léonard de Vinci


Cet article fait partie de la série CodeSmell.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal