Ansätze, um Veralteten Code in JavaScript

0
36

Vor kurzem, ich hatte zu Graben, in das Thema der veralteten code in JavaScript. Ich fühle wie dieses Thema bekommt weniger Reichweite-sogar, wenn es eine spielen eine wichtige Rolle bei bestimmten Projekten, vor allem bei der Arbeit in größeren teams oder im Umgang mit externen APIs.

Im JavaScript-land, ich kenne keine echten Industrie-standards für die veralteten JavaScript. Es könnte auch anders sein, jede Mannschaft, in der Bibliothek oder Verkäufer.

Deshalb mein Ziel ist es hier zusammenfassend meine Erkenntnisse und Gedanken zu diesem Thema, neben einigen guten Praktiken, wenn es Zeit ist zu markieren, eine JavaScript-Methode eine veraltete Codebasis.

Was bedeutet “veralten” eigentlich bedeuten?

Zuerst lassen Sie uns beginnen, indem klargestellt, dass die Streichung ist nur ein status angewendet, um ein software-feature. Es zeigt an, dass dieses feature sollte vermieden werden, in der Regel, weil es abgelöst wurde.

Die Missbilligung kann auch bedeuten, dass das feature entfernt werden, in der Zukunft. Funktionen sind deprecated—anstatt sofort entfernt werden, um um die Abwärtskompatibilität zu gewährleisten, und geben Programmierer, die haben die Eigenschaft die Zeit, um Ihren code in übereinstimmung mit dem neuen standard.

Zusätzlich wird ein veraltetes feature deutet darauf hin, dass es keine weitere Entwicklung von diesem Punkt an. Sollte es nicht funktionieren, anders als er es in einer früheren version (es sei denn, Dokumentation ausdrücklich etwas anderes). Also, in der Regel, es sollten die gleichen sein wie es war, wenn die Streichung Handlung passiert.

Es kann oder kann nicht in der neuesten version—keine Garantien!

Jedoch, da gibt es keine echten Industrie-standards, sind strikt zu befolgen inJavaScript-land, könnte dies etwas anders sein pro-team, in der Bibliothek oder Verkäufer.

Wenn zu missbilligen code und wenn, um es zu löschen?

Es ist wichtig zu beachten, dass eine veraltete software, Funktion oder Methode ist immer noch ein Teil der software! Betrachten Sie die “deprecated” – label nur als einen status-code. Ob die software-Funktion auch tatsächlich entfernt werden, in der Zukunft hängt davon ab, was diese bestimmte software-team entscheidet.

Meiner Meinung nach, große teams oder Projekte, die sich auf externe APIs oder Bibliotheken sollten aufgelassen zuerst, dann entfernen Sie später (nach einer angemessenen Zeit, aber Sie Sie definieren). Zumindest geben mindestens einen großen Versionssprung, bevor Sie tatsächlich zu entfernen, die veraltet code, damit der Benutzer eine chance haben, anpassen, um der änderung.

Vielleicht möchten Sie sich auf Semantische Versionierung, einen einfachen Satz von Regeln und Vorschriften, die bestimmen, wie Versionsnummern vergeben und hochgezählt. Gegeben eine Versionsnummer MAJOR.MOLL.PATCH, Inkrementieren der MAJOR-version, wenn Sie inkompatible API-änderungen, MINOR version, wenn Sie das hinzufügen der Funktionalität in einer abwärtskompatiblen Weise, und die PATCH-version, wenn Sie rückwärts-kompatible bug-fixes.

Wenn Ihre software schnell verändert und weiterentwickelt, und Sie sind abwertend ein feature, versuchen, die Kommunikation mit den Projekt-manager, wenn dieses feature wird voraussichtlich wieder auferstehen später. Wenn Sie aufgelassen, statt zu löschen, es könnte sein, viel einfacher für Sie, um die wiederherstellen, sollten Sie Sie benötigen.

Für kleinere teams oder Projekte mit internen Methoden und APIs, gehen Sie voran und entfernen Sie zunächst eher als aufgelassen. Manchmal ist es einfach nicht Sinn, Zeit zu verschwenden und die Missbilligung erhöht nur die Komplexität nur um der folgenden best practices.

So markieren Sie eine Methode veraltet

Hier sind fünf gute Praktiken, die ich gefunden habe die nützlich sind:

  1. Fügen Sie ein @deprecated JSDoc-Flagge.
  2. Erwähnen Sie die version, dass die Methode veraltet.
  3. Herauszufinden, einen Zeitplan, Wann diese Methode wird gelöscht, einschließlich, welche version es stattfinden wird. Ansonsten, basierend auf meiner Erfahrung, es bleibt für immer 🙂
  4. Verwenden Sie Kommentare großzügig zu erklären, die Umsetzung im Sinne von anderen Entwicklern oder Ihre Zukunft selbst. Dies ist besonders nützlich, wenn Sie Ihre use-case ist das schreiben einer Bibliothek, die andere nutzen Sie als Abhängigkeit für Ihre Arbeit.
  5. Fügen Sie eine Konsole Warnmeldung angezeigt, die angibt, dass die Funktion veraltet ist.

Hier ist ein praktischer Beispiel, wo ich mit allen fünf Methoden:

/**
* Eine Magische Methode, die ein Vielfaches Ziffern.
*
* @deprecated [#1] seit der version 2.3 [#2].
* [#3] gelöscht werden, version 3.0.

* [#4] In dem Fall müssen Sie ein ähnliches Verhalten implementieren, der es auf Sie selbst,
* vorzugsweise in vanilla JavaScript
* oder verwenden Sie die multiplyTheSameNumber Methode statt,
* wenn die gleiche Zahl multipliziert werden mehrfach, in etwa so:
* multiplyDigits([5, 5, 5]) === multiplyTheSameNumber(5, 3)
*
* @param {array} _digits – Ziffern zu multiplizieren
*/
Funktion multiplyDigits(_digits) {
console.warnen(“Aufruf einer Methode depricated!”); // [#5]

// ….
}

Um Wiederholungen zu vermeiden, die in der Konsole Warnungen oder falls Sie planen, zu missbilligen mehrere Methoden, und Sie haben Ihre Ersatz, könnte es günstiger sein, verwenden Sie einen Helfer:

/**
* Erstellen von veraltet / obsolete Verhalten für Methoden in einer Bibliothek.
* [Impressum]{@link: https://stackoverflow.com/q/21726472/1333836}
*
* @param {function} replacementFunction
* @param {string} oldFnName
* @param {string} newFnName
* @return {Funktion}
*/
const Oboslete = function(replacementFunction, oldFnName, newFnName) {
const wrapper = function() {
console.warn(“WARNUNG! Veraltete Funktion aufgerufen wird. Funktion ‘” + oldFnName + “‘ ist veraltet, bitte benutzen Sie den neuen “”+ newFnName + “” – Funktion statt!”);

replacementFunction.apply(this, arguments);
}
wrapper.Prototyp = replacementFunction.Prototyp;

return wrapper;
}

Zusammenfassung

Ich würde vorschlagen, sich Ihr team auf der gleichen Seite und Erben veraltete Praktiken, die machen am meisten Sinn für Ihr Projekt oder verwenden Sie Fall, ob die Annahme der Praxis, die wir haben die hier behandelt werden, oder andere.

Beachten Sie, dass es gibt bestimmte Zeiten, wenn löschen mehr Sinn macht, als das Auslaufen. Manchmal, Investitionen Anstrengungen zu verbitten so etwas einfach nicht Wert. Wieder, es ist völlig bis zu Ihnen und was macht am meisten Sinn für Ihr Projekt.

Kennen Sie andere gute Praktiken bei der Kennzeichnung eine veraltete Methode in JavaScript? Lasst mich in den Kommentaren wissen!

Credits

Die Ideen, die ich hier veröffentlicht wurden inspiriert durch die Kommentare fand ich auf Software-Engineering-Stack Exchange und auf StackOverflow.