Heim >Web-Frontend >js-Tutorial >Verpiss die Scheiße

Verpiss die Scheiße

Susan Sarandon
Susan SarandonOriginal
2024-12-08 01:40:11639Durchsuche

Pipe the shit

Ich habe viele Ideen für diesen Artikel, bin mir aber nicht sicher, wo ich anfangen soll. Wenn Sie daran interessiert sind, Code besser lesbar zu machen und Tree Shaking zu nutzen, sollten Sie sich unbedingt den Artikel ansehen.

Wenn Sie jemals mit JavaScript entwickelt haben, sind Sie wahrscheinlich auf diese Art von Code gestoßen.

const someInstance = new Class();
someInstance.do('jump').some().thing('dance').and().read();

Ich mag diesen Stil, weil er sehr leicht zu lesen ist und man sieht, was zusammenhängt. Außerdem müssen Sie keine Daten von einer Funktion in eine andere verschieben, da alle Daten in der Instanz gespeichert werden.

Zusätzlich zu der Tatsache, dass dies nur funktioniert, wenn die Funktionen nicht asynchron sind, gibt es noch ein weiteres Problem. Es wird nicht einfach sein, den Inhalt zu verändern, wenn Sie ihn nicht verwenden. Wenn Sie dies im Client verwenden, müssen Sie die gesamte Bibliothek mit allen verbundenen Funktionen verschieben, was einen enormen Aufwand darstellt.

Wie können wir also dafür sorgen, dass die Dinge lesbar bleiben, asynchrone Funktionen nutzen und Vite und Co. Baum schütteln Sie den gesamten nicht verwendeten Code?

Die Antwort steht direkt in der Überschrift: „Pipe.“

Aus funktionaler Sicht ist die Implementierung von Pipe ziemlich einfach. Allerdings stellten die Typen eine Herausforderung dar. Ich habe alles in einer Bibliothek zusammengestellt und auf npm veröffentlicht. Rohr-und-Mähdrescher.

const inc = (by: number) => (x: number) => x + by;
const dec = (by: number) => (x: number) => x - by;
const multiplyBy = (by: number) => (x: number) => x * by;
const divideBy = (by: number) => (x: number) => x / by;
const toStr = () => (x: number) => x.toString();

// prepare the pipeline
const pipeline = pipe(inc(2), multiplyBy(7), dec(7), divideBy(3), toStr())

// Executing the pipeline
pipeline(7)

Ein Vorteil ist, dass es an kein Objekt gebunden ist, sodass Sie jede Funktion verwenden können, solange die Eingabe und Ausgabe mit der Funktion davor und danach übereinstimmen.

Das Beispiel, das ich gegeben habe, ist ziemlich einfach, aber zumindest kann man alles pfeifen. Sie haben die gleichen Optionen wie bei Verkettungen und Klassen. Generische Funktionen sind vielleicht etwas kniffliger, aber es gibt eine Lösung. Ich werde in einem anderen Artikel ausführlicher darauf eingehen.

Das obige ist der detaillierte Inhalt vonVerpiss die Scheiße. 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