Heim >Web-Frontend >js-Tutorial >Code Smell – DirName und File

Code Smell – DirName und File

Patricia Arquette
Patricia ArquetteOriginal
2024-11-11 07:17:03622Durchsuche

Vermeiden Sie mehrdeutige Benennungen für Pfadvariablen

TL;DR: Verwenden Sie klare Namen, um den Code besser zu verstehen.

Probleme

  • Unklarer Variablenzweck
  • Bijektionsfehler
  • Irrführender Kontext
  • Repetitiver Code
  • Schwierigere Wartung
  • Eingeschränkte Lesbarkeit
  • Abkürzungen
  • Erhöhte kognitive Belastung

Lösungen

  1. Ehre die Bijektion
  2. Verwenden Sie genaue Namen
  3. Mehrdeutigkeiten vermeiden
  4. Halten Sie den Kontext klar
  5. Wiederverwendbaren Code extrahieren
  6. Befolgen Sie die Namenskonventionen
  7. Namen mit ihren Regeln verifizieren

Kontext

Beim Umgang mit einem einzelnen Dateinamen oder Verzeichnispfad sorgen vage Namen wie Datei oder Verzeichnisname für Verwirrung.

  • Eine Datei sollte eine Datei
  • darstellen
  • Ein fileName sollte den Namen einer Datei darstellen
  • fileContents sollte den Inhalt einer Datei darstellen
  • Ein fileHandler sollte einen Zeiger auf eine externe Ressource darstellen
  • dirName sollte directoryPath sein

Eindeutige Namen wie fileName für Namen und directoryPath für Verzeichnisse kommunizieren die Rolle jeder Variablen.

Wenn Sie einer Variablendatei einen Namen geben, kann dies andere über ihren Zweck verwirren. Speichert es ein Dateiobjekt oder nur den Dateinamen?

Wenn Sie eine Variable dirName statt „directoryName“ benennen, führt dies zu Mehrdeutigkeiten.

Klare und beschreibende Variablennamen verbessern die Lesbarkeit und Wartbarkeit des Codes, insbesondere in kollaborativen Umgebungen.

Beispielcode

Falsch

function importBoardGameScores(file) {
  if (file) {
    const data = fs.readFileSync(file, 'utf-8');
    // Process board game scores...
  }
}

function importDirectoryScores(dirName) {
  // 'dir' is an abbreviation
  const files = fs.readdirSync(dirName);
  files.forEach(file => {
    const data = fs.readFileSync(`${dirName}/${file}`, 'utf-8');
    // Process each file's board game scores...
  });
  }
}

Rechts

function importBoardGameScores(fileName) {
  if (fileName) {
    const data = fs.readFileSync(fileName, 'utf-8');
    // Process board game scores...
  }
}

function importDirectoryBoardGamesScores(directoryPath) {
    const fileNames = fs.readdirSync(directoryPath);
    // Note the variable holding filenames 
    // and not files

   fileNames.forEach(filename => {
        const fullPath = path.join(directoryPath, filename);
        const scores = importBoardGameScores(fullPath);
        allScores.push(scores);
   });

   return allScores.flat();


// You can also reify the concept of a filename
// And avoid repeating the rules everywhere

class Filename {
    value;

    constructor(value) {
        this.validateFilename(value);
        this.value = value;
    }

    validateFilename(value) {      
        const invalidCharacters = /[<>:"/\|?*\x00-\x1F]/g;
        if (invalidCharacters.test(value)) {
            throw new Error
              ('Filename contains invalid characters');
        }

        if (/^[. ]+$/.test(value)) {
            throw new Error
              ('Filename cannot consist only of dots or spaces');
        }

        if (value.length > 255) {
            throw new Error
              ('Filename is too long');
        }
    }

    toString() {
        return this.value;
    }

    get value() {
        return this.value;
    }
}

Erkennung

[X] Halbautomatisch

Suchen Sie im Code, der Dateien oder Verzeichnispfade verarbeitet, nach generischen Namen wie Datei oder dirName.

Schlagworte

  • Benennung

Ebene

[x] Anfänger

KI-Generierung

KI-Modelle verwenden möglicherweise standardmäßig mehrdeutige Namen wie Datei oder Verzeichnisname ohne spezifische Anweisungen.

Das Hinzufügen beschreibender Benennungs- und Code-Extraktionsrichtlinien kann die Ausgabe der KI verbessern.

KI-Erkennung

KI-Tools können diesen Geruch beheben, indem sie klare Namenskonventionen verwenden und bei Aufforderung eine Codeextraktion vorschlagen, um redundanten Code zu vermeiden.

Probieren Sie sie aus!

Denken Sie daran: KI-Assistenten machen viele Fehler

Without Proper Instructions With Specific Instructions
ChatGPT ChatGPT
Claude Claude
Perplexity Perplexity
Copilot Copilot
Gemini Gemini

Abschluss

Durch die Verwendung präziser Namen wie Dateiname und Verzeichnispfad und das Extrahieren wiederverwendbarer Methoden verbessern Sie die Klarheit und Wartbarkeit des Codes.

Diese einfachen Vorgehensweisen tragen dazu bei, Redundanz zu reduzieren und Ihren Code verständlich zu halten.

Beziehungen

Code Smell  - DirName and File

Code Smell 33 – Abkürzungen

Maxi Contieri ・ 24. November 2020

#oop #codenewbie #Programmierung #tutorial

Haftungsausschluss

Code Smells sind meine Meinung.

Credits

Foto von Gabriel Heinzer auf Unsplash


Code sollte so geschrieben werden, dass er zuerst von Menschen und dann von Maschinen gelesen werden kann.

Don Laabs

Code Smell  - DirName and File

Tolle Software-Engineering-Zitate

Maxi Contieri ・ 28. Dezember 2020

#codenewbie #Programmierung #Zitate #Software

Dieser Artikel ist Teil der CodeSmell-Reihe.

Code Smell  - DirName and File

So finden Sie die stinkenden Teile Ihres Codes

Maxi Contieri ・ 21. Mai '21

#codenewbie #tutorial #codequalität #Anfänger

Das obige ist der detaillierte Inhalt vonCode Smell – DirName und File. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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