AdiK: JavaScript-Programmierstil

Liebe Community

Ich arbeite an einem kleinen Projektchen (das aber noch viel wachsen soll) und möchte euch gerne nach eurer Meinung zu meinem Implementations-Ansatz fragen.

Das Projekt ist sehr jung und deshalb auch noch <150 Zeilen, es ist also nicht viel durchzulesen.

Das Zip ist hier und es geht um die Datei quizzer.js. In infos.txt hat es weitere Infos zur Implementation und meinen Entscheiden.

Folgende Fragen dazu:
1. Das ganze als Konstruktor auszulegen macht doch noch Sinn? Was spricht dagegen?
2. Ist das mit dem namePrefix klug gelöst?
3. Ist es schöner Stil, Pointer an DOM nodes anzuhängen?
4. Wie könnte man das Ganze im Hinblick auf Lokalisierbarkeit tauglich machen? Strings mit prototype "anhängen"? Z.B. Quizzer.prototype.l10n = {de: ['String1', 'String2', 'String...']}
5. Programmierstil: Soll ich länger Variablennamen nehmen? (Tabs/Spaces stehen ausser Diskussion!)
6. Was mache ich mit Funktionen wie createElement, die so häufig gebraucht werden? Wenn mehr als ein Library eingebunden wird, macht es nicht Sinn, dass jedes sein eigenes $() (und Konsorte) definiert und im schlimmsten Fall noch dessen Funktion einschränkt.
7. Springt sonst was ins Auge?

Vielen Dank fürs Durchlesen!

Grüsse
Adrian

  1. 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!