© amiak/Shutterstock.com
PHP Magazin
Bibliothek decko als Lösung für typische Programmierprobleme

Node.js-Module: decko

Zu den Eigenheiten von JavaScript gehört das Entstehen von Duplikaten, die Entwickler vor Herausforderungen stellen. Eine Lösung des Problems kann die Bibliothek decko mit ihrer implementierten Sammlung an Dekoratoren sein, die beispielsweise Klassen und Methoden um wichtige Eigenschaften für die problemlose Programmierung ergänzt.

Sebastian Springer


Fragt man Entwickler, was guten Code ausmacht, so antworten viele, dass guter Code möglichst wenige Duplikate aufweisen sollte. Viele dieser Duplikate entstehen durch Eigenheiten von JavaScript selbst. Der Vorteil ist, dass Sie mit Ihren Problemen glücklicherweise nicht alleine sind. Stoßen Sie auf Schwierigkeiten, sollte Ihre erste Anlaufstelle die npm-Plattform sein. In den meisten Fällen werden Sie hier schnell fündig, wenn es um kreative Lösungen geht. Ein Beispiel für eine solche Lösung von typischen Programmierproblemen ist die Bibliothek decko. Hierbei handelt es sich um eine Sammlung von drei Dekoratoren:

@bind: Mit diesem Dekorator wird der Wert von this einer Methode fest gebunden.@debounce: Dieser Dekorator sorgt dafür, dass eine Methode nicht zu oft aufgerufen wird.@memoize: Dieser Dekorator bietet Ihnen die Möglichkeit, Rückgabewerte von Funktionen zu cachen.

Was sind Dekoratoren?

Dekoratoren sind ein Feature, das zukünftig in den JavaScript-Standard aufgenommen werden soll. Aktuell werden Dekoratoren noch von keinem Browser unterstützt. Mit einem Transpiler wie beispielsweise TypeScript können Sie dieses Feature bereits jetzt in Ihrer Applikation nutzen. Populäre Beispiele für die Verwendung von Dekoratoren sind clientseitig Angular und serverseitig Nest.js. Beide Lösungen setzen dieses Feature häufig ein, um Klassen, Methoden oder Eigenschaften durch zusätzliche Informationen zu ergänzen. Ein Dekorator steht dabei immer bei der Struktur, auf die er zugreifen soll, und wird mit dem @-Zeichen eingeleitet. Im Kern ist ein Dekorator nichts weiter als eine Funktion, die mit der jeweiligen Struktur, also beispielsweise der Methode, aufgerufen wird. Listing 1 zeigt ein einfaches Beispiel für einen Dekorator.

Listing 1: Implementierung eines Dekoratorsfunction myDecorator(target: User) { console.log(target);} @myDecoratorclass User {} const klaus = new User();

Der Dekorator in Listing 1 gibt lediglich eine Repräsentation der Klasse auf der Konsole aus. Im Zuge der Funktion haben Sie jedoch auch die Möglichkeit, schreibend auf die Struktur der Klasse zuzugreifen. Ein weiteres Feature, das Sie mit Dekoratoren umsetzen können, ist ein konfigurierbarer Dekorator. In diesem Fall ist die Dekoratorfunktion eine Art Factory, die die eigentliche Dekoratorfunktion zurückgibt und ihrerseits zusätzliche Argumente entgegennimmt, um den Dekorator zu konfigurieren. Hier geben Sie den Dekorator nicht einfach an, sondern nutzen ihn wie eine Funktion.

Damit Sie Dekorat...

PHP Magazin
Bibliothek decko als Lösung für typische Programmierprobleme

Node.js-Module: decko

Zu den Eigenheiten von JavaScript gehört das Entstehen von Duplikaten, die Entwickler vor Herausforderungen stellen. Eine Lösung des Problems kann die Bibliothek decko mit ihrer implementierten Sammlung an Dekoratoren sein, die beispielsweise Klassen und Methoden um wichtige Eigenschaften für die problemlose Programmierung ergänzt.

Sebastian Springer


Fragt man Entwickler, was guten Code ausmacht, so antworten viele, dass guter Code möglichst wenige Duplikate aufweisen sollte. Viele dieser Duplikate entstehen durch Eigenheiten von JavaScript selbst. Der Vorteil ist, dass Sie mit Ihren Problemen glücklicherweise nicht alleine sind. Stoßen Sie auf Schwierigkeiten, sollte Ihre erste Anlaufstelle die npm-Plattform sein. In den meisten Fällen werden Sie hier schnell fündig, wenn es um kreative Lösungen geht. Ein Beispiel für eine solche Lösung von typischen Programmierproblemen ist die Bibliothek decko. Hierbei handelt es sich um eine Sammlung von drei Dekoratoren:

@bind: Mit diesem Dekorator wird der Wert von this einer Methode fest gebunden.@debounce: Dieser Dekorator sorgt dafür, dass eine Methode nicht zu oft aufgerufen wird.@memoize: Dieser Dekorator bietet Ihnen die Möglichkeit, Rückgabewerte von Funktionen zu cachen.

Was sind Dekoratoren?

Dekoratoren sind ein Feature, das zukünftig in den JavaScript-Standard aufgenommen werden soll. Aktuell werden Dekoratoren noch von keinem Browser unterstützt. Mit einem Transpiler wie beispielsweise TypeScript können Sie dieses Feature bereits jetzt in Ihrer Applikation nutzen. Populäre Beispiele für die Verwendung von Dekoratoren sind clientseitig Angular und serverseitig Nest.js. Beide Lösungen setzen dieses Feature häufig ein, um Klassen, Methoden oder Eigenschaften durch zusätzliche Informationen zu ergänzen. Ein Dekorator steht dabei immer bei der Struktur, auf die er zugreifen soll, und wird mit dem @-Zeichen eingeleitet. Im Kern ist ein Dekorator nichts weiter als eine Funktion, die mit der jeweiligen Struktur, also beispielsweise der Methode, aufgerufen wird. Listing 1 zeigt ein einfaches Beispiel für einen Dekorator.

Listing 1: Implementierung eines Dekoratorsfunction myDecorator(target: User) { console.log(target);} @myDecoratorclass User {} const klaus = new User();

Der Dekorator in Listing 1 gibt lediglich eine Repräsentation der Klasse auf der Konsole aus. Im Zuge der Funktion haben Sie jedoch auch die Möglichkeit, schreibend auf die Struktur der Klasse zuzugreifen. Ein weiteres Feature, das Sie mit Dekoratoren umsetzen können, ist ein konfigurierbarer Dekorator. In diesem Fall ist die Dekoratorfunktion eine Art Factory, die die eigentliche Dekoratorfunktion zurückgibt und ihrerseits zusätzliche Argumente entgegennimmt, um den Dekorator zu konfigurieren. Hier geben Sie den Dekorator nicht einfach an, sondern nutzen ihn wie eine Funktion.

Damit Sie Dekorat...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang