nam: JavaScript-Programmierstil

Beitrag lesen

Salut Adrian

Das Zip ist

… nur mühsam zu erreichen!

  1. Das ganze als Konstruktor auszulegen macht doch noch Sinn? Was spricht dagegen?

Die Kapselung ist grundsätzlich sinnvoll, weil du so den Namespace nur mit einer Funktion (Quizzer) belegst und somit Inkompatibilitäten mit anderen Libraries vorbeugst.
Von mir aus gesehen spricht nichts dagegen.
Auf die Schreibweise mit dem Unterstrich (sind das private Methoden?) kannst du aber verzichten: http://aktuell.de.selfhtml.org/artikel/javascript/organisation/#kapselung

  1. Ist das mit dem namePrefix klug gelöst?

Du könntest auch einen random-Wert erzeugen, prüfen, dass es den nicht schon gibt, einsetzen und damit dem Anwender der Library einen Parameter ersparen.

  1. Ist es schöner Stil, Pointer an DOM nodes anzuhängen?

Meinst du damit die id's mit dem namePrefix?

  1. Wie könnte man das Ganze im Hinblick auf Lokalisierbarkeit tauglich machen?

Ich würde die lokalisierten Strings in der Datei mit den Fragen bereitstellen. Dann kann sie der User gf anpassen.

  1. Programmierstil: Soll ich länger Variablennamen nehmen? (Tabs/Spaces stehen ausser Diskussion!)

Finde ich OK wie's ist. Sprechend müssen sie sein.

  1. Was mache ich mit Funktionen wie createElement, die so häufig gebraucht werden?

Was willst du denn machen?

  1. Springt sonst was ins Auge?
  • Wieso Tabellen?
  • Die Angabe der Fragen ist viel zu kompliziert und die Indizes der Arrays nicht sprechend. Nimm JSON als Format. Damit machst du dir auch andere Möglichkeiten auf…
  • es gibt noch eine Menge anderer Quizzformen (Begriffe ordnen/zuordnen, bestimmte Wörter in einem Text anstreichen, Antworten manuell eingeben u.v.m) Werde ich hiermit auch beliefert?
  • Welches didaktische Konzept steht dahinter? bzw. was macht der Quiz-Löser mit der Statistik? Wie lernt er nun die falschen Antworten weiter?
  • Es gibt schon viele solcher Libraries. Was macht deine besser als andere? Was kannst du von den anderen lernen.

Interessante Projekt!
Alles Gute!