Heim > Web-Frontend > js-Tutorial > Hauptteil

Code-Geruch – Hanlons Rasiermesser

PHPz
Freigeben: 2024-08-18 07:23:32
Original
1025 Leute haben es durchsucht

Machen Sie es nicht zu kompliziert: Halten Sie es einfach

TL;DR: Übermäßiger Code führt zu unnötiger Komplexität.

Probleme

  • Unnötige Komplexität

  • Verwirrende Logik

  • Versteckte Fehler

  • Schwierigere Wartung

  • Langsamere Leistung

  • Überladener Code

Lösungen

  1. Überprüfungen vereinfachen

  2. Vertrauen Sie Ihrer Logik

  3. Konzentrieren Sie sich auf das Wesentliche

  4. Folgen Sie dem K.I.S.S. Prinzip

  5. Regelmäßig umgestalten

Kontext

Übermäßiges Nachdenken und Überdesign Ihres Codes kann zu unnötiger Komplexität führen.

Möglicherweise müssen Sie sich gegen jedes mögliche Szenario verteidigen, aber dieser Ansatz führt oft zu aufgeblähtem, verwirrendem Code.

Hanlon's Razor legt nahe, dass Sie keine Bosheit annehmen sollten, wenn einfache Fehler oder Missverständnisse wahrscheinlicher sind.

Vermeiden Sie eine übermäßig defensive Programmierung und konzentrieren Sie sich auf eine klare, unkomplizierte Logik.

Sie könnten zukünftige Probleme vorhersehen, die möglicherweise nie auftreten, oder versuchen, Ihren Code zu flexibel zu gestalten.

Einfacher Code ist einfacher zu warten, zu debuggen und zu verstehen.

Beispielcode

Falsch

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;
}
Nach dem Login kopieren

Rechts

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));
}
Nach dem Login kopieren

Erkennung

[X] Handbuch

Komplizierter Code hat normalerweise mehr Zeilen und lange Methoden sind ein möglicher Hinweis.

Schlagworte

  • Aufbläher

Ebene

[x] Mittelstufe

KI-Generierung

KI-Generatoren können diesen Geruch hervorrufen, wenn sie versuchen, jeden möglichen Randfall zu berücksichtigen.

Der Umgang mit NULL-Werten ist beispielsweise unnötig, wenn Sie sie vollständig vermeiden.

KI-Erkennung

KI-Tools können dabei helfen, übermäßig defensiven Code zu erkennen, indem sie die Logik analysieren und mit der richtigen Anleitung Vereinfachungen vorschlagen.

Diese Tools empfehlen oft, unnötige Prüfungen zu entfernen oder sie aus Gründen der Übersichtlichkeit zu kombinieren.

Abschluss

Vermeiden Sie übermäßiges Nachdenken und Übergestalten Ihres Codes.

Konzentrieren Sie sich auf die wahrscheinlichsten Szenarien und schreiben Sie eine klare, unkomplizierte Logik.

Einfachheit führt zu besserer Codequalität und einfacherer Wartung.

Beziehungen

Weitere Informationen

Wikipedia

Defensive Programmierung

Haftungsausschluss

Code Smells sind meine Meinung.

Credits

Foto von Nacho Fernández auf Unsplash


Einfachheit ist die ultimative Raffinesse.

Leonardo da Vinci


Dieser Artikel ist Teil der CodeSmell-Reihe.

Das obige ist der detaillierte Inhalt vonCode-Geruch – Hanlons Rasiermesser. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage