JavaScript-Literatur

Hallo zusammen,

ich möchte meinen Horizont ein wenig erweitern und suche daher gute Literatur zur JavaScript. Es gibt so unsagbar viel, dass es schwierig ist, das Richtige zu finden.
In einige Bücher habe ich bereits hineingesehen, der Standardaufbau ist häufig, dass hauptsächlich auf Grundlagen der Programmierung eingegangen, dann mit DOM-Manipulation weitergemacht und dabei auf das ein oder andere Framework eingegangen wird (die betrachteten Bücher sind etwas älter, sodass JQuery noch Stand der Technik war).

Was ich NICHT suche:

  • Literatur mit Programmiergrundlagen
  • Literatur, die JS-Frameworks behandelt
  • Infos über DOM-Manipulation

Ich suche gebündelte Informationen über:

  • die Konzeption von JavaScript
  • Best Practices (u. a. Modularisierung)

Im Idealfall sollte sich die Literatur mit ECMAScript 6 oder neuer befassen. Gerne lese ich auch über die Workflows, die sich bei der JavaScript-Entwicklung etabliert haben (Treeshaking, Packaging, …).

Tendenziell geht es also eher in die Richtung, die sich bei der node.js-Entwicklung etabliert hat, auch wenn ich mich eigentlich nur mit clientseitigem JS befassen möchte.

Vielen Dank schonmal für euren Input!
Viele Grüße
Christian

P. S.: Das Buch „Understanding ECMAScript 6“ ist schon sehr gut - da sich die Zielgruppe aber bereits mit JS auskennt, fehlen hier die grundlegenden Best-Practices.

Muss es unbedingt ein Buch sein oder genügt


?

Ich empfehle You Don’t Know JS. Du kannst das Buch kaufen oder es kostenlos auf GitHub lesen.

Ein vom Aufbau eher „traditionelles“ Buch wäre Eloquent JavaScript. Ich hab’s aber nicht gelesen, es war bloß in meiner Linkliste drin. Aber auch hier wird der Inhalt kostenlos angeboten, wenn du das Buch nicht kaufen möchtest.

Nein, es muss nicht unbedingt ein Buch sein. Meiner Erfahrung nach haben Bücher den Vorteil, dass sie in der Regel lektoriert werden und die Inhalte daher qualitativ recht hochwertig sind. Selbiges gilt für Primärliteratur, wozu die von dir verlinkte Dokumentation ja quasi gehört. Gerade die „Referenzdokumentation“ ist natürlich unschätzbar wichtig für die innere Mechanik der Sprache.
Danke für den Link!

Die größte Schwierigkeit, die ich habe, ist den richtigen Scope zu finden. Also nicht zuviel Basisinput (was sind Datentypen etc.) aber auch nicht zu wenig (die Eigenheiten von JavaScript sollen eben schon detailliert beschrieben werden). Quasi Literatur für den Quereinstieg…

Gerade scrolle ich über https://eloquentjavascript.net/ drüber. Dort sind aber auch alle Grundlagen bis ins Kleinste erläutert.

@darekkay das von dir verlinkte Buch scheint beim ersten draufschauen super aus! Dort werde ich auf jeden Fall tiefer einsteigen und - wenn es gefällt - die Printausgabe zulegen. Danke für den Link!

Ich hoffe eine „nicht-konstruktive Auflockerung“ ist hier OK … es passt einfach zu gut:

Es gibt so viele Stile, so viele Leute die es nicht können und es trotzdem verwenden, so viele Quirks und Absurditäten, so viele Versionen und zugehörige best und worst practices, so viele Shortcomings für die es so viele Schichten von workarounds gibt … Eine „vernünftige“ Art, mit dieser Sprache zu entwickeln habe ich bisher nicht gefunden, darum: Wenn du was gutes findest, sag’ bescheid…

1 „Gefällt mir“

Es sei dir gegönnt! Mein Ziel ist es auch nicht, die Sprache zu meistern. Vielmehr ist sie Mittel zum Zweck, um frontendseitig ansprechende Oberflächen zu entwickeln, wofür mE ein solides Grundverständnis hilfreich ist, nicht alles verkehrt zu machen.

Ja, so ähnlich sehe ich das auch. Nicht, weil ich es für „richtig“ oder "gut"oder „sinnvoll“ halte, sondern weil man dazu genötigt ist. Ich werde versuchen, den „rant-Teil“ klein zu halten, aber es scheint eben so: „Hey, alle machen doch das mit diesem Innternett, lass’ uns das auch machen, da braucht man Angular und React und ich habe eine Blogpost gelesen, in dem stand, dass das voll cool und einfach wäre“. (Spongebob-Sprecherstimme: „Aber es war nicht einfach“).

Die Konzepte und Strukturen, die hinter Web-Frameworks stecken, sind so high-level, dass man sich fragen muss, ob man, wenn man versucht, die Sprache an sich zu beherrschen, nicht auf der falschen Ebene ansetzt. (Für die Implementierung wird dann ggf. auch eher TypeScript statt JavaScript verwendet - wenn man dann zwar im https://eqeq.js.org/ die volle Punktzahl erreicht, aber sich fragt, was das Word interface bedeutet, hilft das in der Praxis halt auch nichts…). Und wenn morgen von Angular 3.2.1.3.45a auf Angular 3.2.1.3.45b umgestellt werden soll, hat man sowieso ein Problem.

Ich vermute (d.h. befürchte) dass der „praxistauglichste“ Weg der ist, dass man mit der aktuellen Tutorial-Seite des Webframeworks, das gerade en vogue ist, anfängt, und sich dann an den „Google-Fehlermeldung-Stackoverflow“-Zyklus gewöhnt. Aber vielleicht sehe ich das auch falsch.

Da muss man differenzierter rangehen. Zum einen hat man die Sprache JS.
Zum anderen hat man den Browser. Und wenn man detaillierter schaut, die entsprechenden Versionen. https://caniuse.com ist eine Seite, auf der man sich einen Überblick verschaffen kann. Man suche nur mal nach modules.

Grundsätzlich bietet einem ein aktueller Chrome-Browser damit auch schon genug um damit entsprechende Oberflächen zu erstellen und dabei immer noch halbwegs vernünftig vorzugehen ohne auf irgendwelche Frameworks zurückzugreifen. Die Frage ist nur ob das dann immer reicht.

ist zum Beispiel so eine Geschichte, die so das typische Web-Framework obsolet macht. Hat eben auch den Vorteil, dass es im Browser fest verankert ist und man sich keine Gedanken um Versionsänderungen bei Angular mehr machen muss.