it-swarm.com.de

Beispiele für guten JavaScript-Code in Open Source-Webanwendungen

Ich habe Mühe, einen Weg zu finden, guten JavaScript-Code zu schreiben, der effizient, von anderen Entwicklern allgemein akzeptiert und nicht sehr hässlich wäre.

Bis vor kurzem habe ich nur wörtliche Objekte und Teile von jQuery verwendet, aber nachdem ich Douglas Crockfords "JavaScript: The Good Parts" gelesen habe, ist mir klar, dass JavaScript mehr als AJAX, DOM-Modifikationen und einfache Animationen umfasst.

Das Problem ist, dass JavaScript nicht sehr standardisiert zu sein scheint. Die Menge der verfügbaren OOP/Vererbungsmuster überfordert mich. Ich bin nicht daran gewöhnt, dass jedes Framework/jede Bibliothek eine eigene Implementierung der Vererbung bietet. Ich möchte auch in Bezug auf solche Dinge keine falsche Entscheidung treffen, da dies bedeuten würde, den gesamten Code im Falle einiger Probleme neu zu schreiben.

Was ich also suche, sind vorhandene Open-Source-Webanwendungen, die JavaScript verwenden, wenn möglich auf der Clientseite, um zu sehen, welche Muster in realen Projekten verwendet werden. Ich möchte den Code von Webanwendungen sehen, nicht von Frameworks oder Bibliotheken. Es macht mir jedoch nichts aus, wenn diese Web-Apps auf einem Framework basieren (und wenn es sich um Dojo oder RequireJS handelt, ist es sogar noch besser, weil ich sie verwende;)

38
Juliusz Gonera

Was ich jedem empfehlen kann, der sich für so etwas interessiert, ist: BEFOLGEN SIE SICH AUF DAS, WAS IHR TEAM TUT . Wenn sie camelCase für Methoden verwenden, verwenden Sie es. Wenn sie snake_case für Variablen verwenden, tun Sie es. Wenn Ihr Team Leerzeichen gegenüber Tabulatoren vorzieht; benutze sie.

Begeben Sie sich niemals in ein eingespieltes Team mit standardisierten Stiländerungen, da dies besser aussieht, es sei denn, es verursacht schwerwiegende Probleme.

Wenn Sie nicht in einem Team arbeiten und einen Codierungsstil verwenden möchten; dann benutze den Stil der Bibliotheken, die du am häufigsten benutzt .

Organisatorisch ist Closure das Beste. Aber für mich fühlt es sich irgendwie so an, als würde ich Java anstelle von Javascript lesen. Stelle dir das vor.

7
Ferrerira

Ja. Es gibt einige JavaScript-Gurus, die viel darüber geschrieben haben, wie man JavaScript schreibt, über prototypbasierte OOP mit JavaScript, sogar darüber, wie Variablen eingerückt und benannt werden sollten.

Wenn Sie jedoch eine umfangreiche Implementierung von JavaScript als Beispiel suchen, würde ich nach HTML5-Spielimplementierungen suchen. Es ist praktisch garantiert, dass Sie ein ausreichend großes, gut geschriebenes Beispiel finden, das nicht minimiert ist.

5
filipemgs

Wenn Sie an JavaScript-Standards interessiert sind, würde ich commonJS überprüfen. Sie haben viele gute Ideen, wie JavaScript gemacht werden soll.

BravoJS ist eine gute Modulimplementierung für den Browser.

Als Beispiel wurde in den Kommentaren der Quellcode von jQuery genannt. jQuery macht einen guten Job, aber ich würde auch nachsehen, ob Narwhal JS Beispiele dafür gibt, wie etwas zu tun ist.

Hier ist ein gutes Buch mit kostenlosen Designmustern, das ich hilfreich fand. Grundlegende JavaScript- und jQuery-Designmuster .

Sie werden keine Lösung für Ihr Problem finden und so wird JavaScript entwickelt. Ich würde empfehlen zu experimentieren. Ich finde, dass Douglas Crockford viele großartige Ideen hat, aber das bedeutet nicht, dass Sie ihm auf den Brief folgen müssen.

4
babsher
2
standup75

Gute Frage. Ich konnte kein Beispiel für eine gut geschriebene objektorientierte Open Source-Anwendung finden. Tiny MCE war so lala, aber ich würde es nicht für gut geschrieben halten: http://www.tinymce.com/

Ich habe jedoch sauberes, gut faktorisiertes, objektorientiertes Javascript bei der Arbeit geschrieben. Es ist proprietär, so dass ich es nicht teilen kann, aber ich kann erklären, was für mich funktioniert hat, um zu lernen, wie man das macht:

1) Lesen Sie das Tutorial zur objektorientierten Programmierung von Mozilla Javascript. Ihre Erklärung der Javascript-Vererbung ist genau das, was Google Closure verwendet. Persönlich denke ich, dass das, was Crockford Pseudo-Klassiker nennt, am einfachsten zu lesen und zu warten ist, da 4 der 5 anderen Programmiersprachen, die ich kenne, Klassen verwenden (Java, C #, Python und PHP. Perl ist hier der seltsame Typ ohne Klassen).

https://developer.mozilla.org/en/Introduction_to_Object-Oriented_JavaScript

2) Lesen Sie das Buch 'Object Oriented Javascript' von Stoyan Stefanov.

3) Nehmen Sie eine vorhandene prozedurale JavaScript-Codebasis und ändern Sie sie in Objekte. Verwenden Sie die Tipps in 'Clean Code' von Robert C. Martin, wie sie für jede Programmiersprache gelten.

4) Strukturieren Sie Ihren Code so, dass er viele verschiedene Dateien enthält, ähnlich wie Sie Klassen in einer Sprache mit Klassen verwenden würden.

5) Implementieren Sie die Abhängigkeitsinjektion ohne IOC -Container, indem Sie alle Ihre Objekte auf oberster Ebene erstellen und in die von ihnen abhängigen Objekte einspeisen.

Es gibt noch viel mehr, aber hoffentlich ist dies ein hilfreicher Anfang.

Folgendes ist meines Erachtens der richtige Weg, um Vererbung in Javascript zu implementieren. Dies ist aus der Google Closure Library:

goog.inherits = function(childCtor, parentCtor) {
  /** @constructor */
  function tempCtor() {};
  tempCtor.prototype = parentCtor.prototype;
  childCtor.superClass_ = parentCtor.prototype;
  childCtor.prototype = new tempCtor();
  childCtor.prototype.constructor = childCtor;
};
2
davidjnelson

Es gibt verschiedene Möglichkeiten, um zu lernen, wie man guten JS-Code schreibt.

Sie können Bücher lesen. Die beste Methode zur Organisation von JS-Code und zu allgemeinen Mustern, einschließlich Vererbung, ist JavaScript Patterns von Stoyan Stefanov.

Ein weiterer guter Weg, um zu lernen, ist es, sich den hervorragenden Code anderer Entwickler anzusehen und ihn zu verwenden. Die beste Bibliothek, die ich vom Standpunkt der Code-Organisation und der Verwendung von Mustern aus gesehen habe, ist Google Closure Library . Es wird intern von Google in der RIA wie Google Mail Google Text & Tabellen verwendet.

0
bjornd

Eine freundliche Person in irc schlug dieses eBook vor und ich fand es sehr hilfreich.

Lernen von JavaScript-Entwurfsmustern

Ein Buch von Addy Osmani

http://addyosmani.com/resources/essentialjsdesignpatterns/book/

0
Bronwen

Zufällig gibt es heute auf SlashDot einen review der 6. Ausgabe von Javascript: The Definitive Guide , der laut Rezensent dort "seine Krone als ultimative Referenzressource für JavaScript-Programmierer behält". Es sind 1.100 Seiten.

Ja, dies ist nicht die Beispiel-App, die Sie gesucht haben, aber das Buch enthält viele Beispiele und Ratschläge zu Best Practices.

0
DOK