rookie: Bitte um Kritik zu einem Projekt (Code Generator)

Hallo an alle!

Ich habe vor nicht allzu langer Zeit begonnen, programmieren zu lernen.
Da ich schon viele Jahre mit HTML und CSS arbeite, habe ich mich zum Einstieg für Javascript entschieden.

Eines meiner letzten Übungsprojekte ist ein Programm, welches verschiedene Codes generiert:

Code Generator

Das Programm arbeitet wunderbar. Allerdings bin ich sicher, dass der Code nicht unbedingt in der kürzest möglichen Form geschrieben ist. Ich habe zwar schon viel gelernt, betrachte mich aber trotzdem noch als Anfänger.

Sollte sich jemand die Mühe machen wollen, einen Blick auf das Projekt zu werfen, wäre ich entzückt!
Ich harre der Kritik, die da kommen möge.

Vielen Dank im Voraus!
rookie

________
Fehler zu machen ist das Beste, was einem Lernenden passieren kann.

  1. Ich glaube ich hab inzwischen verstanden was es machen soll. Es generiert Passwortcodes?

    Das Programm arbeitet wunderbar. Allerdings bin ich sicher, dass der Code nicht unbedingt in der kürzest möglichen Form geschrieben ist.

    Was bedeutet das? Einen Code mit 6 Stellen kannst du nicht mit nur 5 Stellen schreiben.

    Mir stellt sich außerdem die Sinnfrage :-) Ein guter Code (sofern du damit wirklich zB. Passwort meinst?) hat einen zufälligen Aufbau, ohne zu beschreiben an welcher Stelle welche Art von Zeichen stehen soll.

    Also erzähle am besten mal was das Progrämmchen tut und wofürs gut ist.

    1. Das Programm erzeugt (Passwort-)Codes mit verschiedenen Zeichen in zufälliger Reihenfolge.
      Der Zeichenvorrat umfasst Großbuchstaben, Kleinbuchstaben, Ziffern sowie Sonderzeichen.

      Es bietet drei Wege, einen (Passwort-)Code zu generieren:

      1. Über die Definition eines Musters
        Bspw. wenn die ersten drei Stellen Ziffern sein sollen
      2. Über die Definition der Anzahl der verschiedenen Zeichen, welche vorkommen sollen.
        Hier kann der Zeichenvorrat an Sonderzeichen auch selbst definiert werden.
      3. Über die Definition der Länge
        Zusätzlich kann bestimmt werden, dass der Code nur aus einem gewählten Zeichenvorrat generiert wird.

      Meine grundsätzliche Bitte betrifft die Form des Javascript-Codes.
      Dieser kann mit an Sicherheit grenzender Wahrscheinlichkeit kürzer formuliert werden.

      Gruß
      rookie

      ________
      Fehler zu machen ist das Beste, was einem Lernenden passieren kann.

      1. Moin Moin!

        Das Programm erzeugt (Passwort-)Codes mit verschiedenen Zeichen in zufälliger Reihenfolge.
        Der Zeichenvorrat umfasst Großbuchstaben, Kleinbuchstaben, Ziffern sowie Sonderzeichen.

        Es bietet drei Wege, einen (Passwort-)Code zu generieren:

        1. Über die Definition eines Musters
          Bspw. wenn die ersten drei Stellen Ziffern sein sollen

        Warum sollte man ein Passwort so einschränken wollen? Wenn Du Passworte generieren willst, verkneif Dir alle Muster. Die machen Passworte nur leichter angreifbar.

        1. Über die Definition der Anzahl der verschiedenen Zeichen, welche vorkommen sollen.
          Hier kann der Zeichenvorrat an Sonderzeichen auch selbst definiert werden.

        Den Zeichenvorrat auf leicht eingebbare Zeichen zu beschränken kann sinnvoll sein. Wenn man viele verschiedene Eingabegeräte benutzen muß, ist der ASCII-Zeichensatz von 32 bis 126 die sinnvollste Auswahl, diese Zeichen lassen sich quasi überall eingeben.

        1. Über die Definition der Länge

        Je länger desto besser. Einstellbar wäre gut, irgendwas zwischen 12 und 20 Zeichen.

        Dann reduziert sich das Problem darauf, einen String-Puffer mit "" zu initialisieren und 12 bis 20 mal ein zufälliges Zeichen aus dem erlaubten Zeichensatz anzuhängen. Bei der Beschränkung auf ASCII 32 bis ASCII 126 kann man das Zeichen direkt über chr(rand(96)+32) auswürfeln, bei einem freieren Zeichenvorrat packt man die erlaubten Zeichen in ein Array oder einen String und würfelt sich einen Index in den Zeichenvorrat aus.

        Alexander

        --
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
        1. Moin Moin!

          Das Programm erzeugt (Passwort-)Codes mit verschiedenen Zeichen in zufälliger Reihenfolge.
          Der Zeichenvorrat umfasst Großbuchstaben, Kleinbuchstaben, Ziffern sowie Sonderzeichen.

          Es bietet drei Wege, einen (Passwort-)Code zu generieren:

          1. Über die Definition eines Musters
            Bspw. wenn die ersten drei Stellen Ziffern sein sollen

          Warum sollte man ein Passwort so einschränken wollen? Wenn Du Passworte generieren willst, verkneif Dir alle Muster. Die machen Passworte nur leichter angreifbar.

          Sie machen Passwörter besser merkbar. Was bringt ein super langes zufälliges Passwort, wenn die Leute es sich dann aufschreiben und an die Tastatur kleben?

          1. Über die Definition der Länge

          Je länger desto besser. Einstellbar wäre gut, irgendwas zwischen 12 und 20 Zeichen.

          Einstellbar wäre gut, irgendwas zwischen 0 und unendlich Zeichen.

          1. Sie machen Passwörter besser merkbar.

            Weshalb? Dann muss ich mir extra noch merken, erste Stelle = Großbuchstabe, 2. Stelle = Sonderzeichen... Was für Zeichen es tatsächlich genau sind weiß ich deswegen noch lange nicht.

            1. Sie machen Passwörter besser merkbar.
              Weshalb? Dann muss ich mir extra noch merken, erste Stelle = Großbuchstabe, 2. Stelle = Sonderzeichen... Was für Zeichen es tatsächlich genau sind weiß ich deswegen noch lange nicht.

              Solche passwörter enthalten dann z.B. aussprechbare Silben. Warum _genau_ sie sich besser merken, dazu kannst du dir selbst die entsprechende Lektüre suchen, wenn du es mir nicht glaubst oder es anders einschätzt; es ist jedenfalls gut untersucht.

              1. Solche passwörter enthalten dann z.B. aussprechbare Silben.

                Das glaub ich dir schon, warum denn nicht. Nur kann durch so ein Muster trotzdem was unaussprechbares rauskommen.
                Wenn ich sowas will, denk ich mir kurz so ein Passwort aus und gut. Ich tippe blindlings auf der Tastatur rum oder bau ein paar Silben hintereinander, aber mir war (und ist immer noch) kein bisschen klar wozu ich dafür einen Passwortgenerator brauche.

                1. Solche passwörter enthalten dann z.B. aussprechbare Silben.
                  Das glaub ich dir schon, warum denn nicht. Nur kann durch so ein Muster trotzdem was unaussprechbares rauskommen.

                  Es ist natürlich Aufgabe des Tools das Passwort möglichst gut zu generieren. Aber um ggf. ein paar Neuversuche kommt man nicht drumherum.

                  Wenn ich sowas will, denk ich mir kurz so ein Passwort aus und gut. Ich tippe blindlings auf der Tastatur rum oder bau ein paar Silben hintereinander, aber mir war (und ist immer noch) kein bisschen klar wozu ich dafür einen Passwortgenerator brauche.

                  Ja, du vielleicht. Aber nicht meine Eltern oder Großeltern. Die nehmen sonst nämlich Bananeneis als Passwort.

                2. Wenn ich sowas will, denk ich mir kurz so ein Passwort aus und gut. Ich tippe blindlings auf der Tastatur rum oder bau ein paar Silben hintereinander, aber mir war (und ist immer noch) kein bisschen klar wozu ich dafür einen Passwortgenerator brauche.

                  Das Programm war im Grunde eine Auftragsarbeit. Also ist der Gedanke zum Sinn des Projektes obsolet.
                  Mein eigentliches Ansinnen war auf die Beurteilung des zugrunde liegenden JavaScrippt-Codes gerichtet.

                  1. Om nah hoo pez nyeetz, rookie!

                    Wenn ich sowas will, denk ich mir kurz so ein Passwort aus und gut. Ich tippe blindlings auf der Tastatur rum oder bau ein paar Silben hintereinander, aber mir war (und ist immer noch) kein bisschen klar wozu ich dafür einen Passwortgenerator brauche.

                    Das Programm war im Grunde eine Auftragsarbeit. Also ist der Gedanke zum Sinn des Projektes obsolet.

                    Sieh das nicht als Angriff auf deine Person, denn Threaddrift gehört zu diesem Forum wie die Zahnspange zum Teenager.

                    Matthias

                    --
                    Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Kamas und Kamasutra.

                    1. Om nah hoo pez nyeetz, Matthias!

                      Sieh das nicht als Angriff auf deine Person, denn Threaddrift gehört zu diesem Forum wie die Zahnspange zum Teenager.

                      Keine Sorge, dies ist nicht der Fall.
                      Wer eine Frage stellt, sollte auch mit den Antworten umgehen können. So es denn welche gibt.
                      Ich wundere mich nur, dass bisher bloß eine Antwort auf meine Frage eingegangen ist.
                      Das einzige Ansinnen, wenngleich es ein größeres ist, ist die Beurteilung meines JavaScript-Codes.

                      1. Ich wundere mich nur, dass bisher bloß eine Antwort auf meine Frage eingegangen ist.

                        Das könnte dran liegen dass du eine Seite zeigst die einen "Code" generiert und man auf ihr den "Code" beurteilen soll. Schon bisschen verwirrend, ich hab mich lang gefragt was man da jetzt wirklich tun soll ;-)

                        1. Ich wundere mich nur, dass bisher bloß eine Antwort auf meine Frage eingegangen ist.
                          Das könnte dran liegen dass du eine Seite zeigst die einen "Code" generiert und man auf ihr den "Code" beurteilen soll. Schon bisschen verwirrend, ich hab mich lang gefragt was man da jetzt wirklich tun soll ;-)

                          Bei Euch handelt es sich offensichtlich um einen kleinen Scherzbold!
                          Du meine Güte! Fast hätte ich Kobold geschrieben ...
                          Ist schon recht.
                          Wenn es so schwierig ist, mein Ansinnen zu verstehen – oder sollte ich wohl schreiben: verstehen zu wollen? – dann erlasse ich Euch gnädigst jedes weitere Kommentar zur Sache.

                          Mir ist es gleich.
                          Ich werde in jedem Fall nicht davor verschont werden zu lernen.
                          Mit mehr oder weniger Unterstüzung ...

                          rookie

                          1. Wenn es so schwierig ist, mein Ansinnen zu verstehen ...

                            dann gibts zwei Möglichkeiten.
                            1. alle hier sind blöd.
                            2. Dein Ansinnen ist nicht so ausgedrückt dass man es so versteht wie du es dir vorstellst.

                            Ich hab nunmal wirklich gelesen: ich generiere Code, schaut euch den (Code) mal an.
                            So, ich hab mir den generierten Code (!) angesehen und mich gefragt was das ganze soll. Vom Javascript dahinter war lange nicht die Rede.
                            Lies die Frage vor dem abschicken nochmal durch dann merkst du dass du das selbe Wort für zwei verschiedene Dinge nutzt, was wohl nicht so klar ausdrückt worum es dir geht.
                            "Wir" haben nur das was du schreibst, nicht das was du dir dazu alles denkst.

                            1. Ich glaube, so etwas wie Dich nennt man gemeinhin einen Forentroll.
                              Allerdings einen von der wirklich üblen Sorte, wie ich befürchte.
                              Einen der glaubt, Frechheiten hinter Smilies verstecken zu können.

                              Hättest Du auch nur einen Bruchteil Deiner Energie dafür eingesetzt, Dich ernsthaft mit meinem Ansinnen auseinanderzusetzen, hätten wir vielleicht beide etwas gelernt.

                              Das was Du hier lieferst ist einfach lächerlich.

                              Mehr gibts es dazu nicht zu sagen.

                              Außer vielleicht: Wer lesen kann ist klar im Vorteil.

                              rookie

                              1. Hallo

                                Encoder hätte auch einfach dieses Zitat verlinken müssen.

                                Gruß
                                Kalk

                                1. Hallo

                                  Encoder hätte auch einfach dieses Zitat verlinken müssen.

                                  Tatsächlich?
                                  Meine ursprüngliche Anfrage war zwar mißverständlich formuliert, wurde aber auf Bitte von Encoder von meiner Seite präzisiert:

                                  Meine grundsätzliche Bitte betrifft die Form des Javascript-Codes.
                                  Dieser kann mit an Sicherheit grenzender Wahrscheinlichkeit kürzer formuliert werden.

                                  Selbst nach Klarstellung kam keinerlei sinnvolle Kritik -- wofür, wie ich dachte, dieses Forum eigentlich da ist. In Anbetracht einer offensichtlich vorhandenen Leseschwäche sehe ich die Sache aber eher gelassen ...

                                  Mit vorzüglicher Hochachtung und einem Kratzfuß

                                  rookie

                              2. Ich glaube, so etwas wie Dich nennt man gemeinhin einen Forentroll.

                                Wenn du meinst. Viele Fragen in irgendwelchen Foren bleiben unbeantwortet weil keiner weiß um was es geht. Nachdem keiner für gute Antworten bezahlt wird, lässt man es dann eben. Durch diese Frage hast du immerhin erklärt was du wirklich fragen wolltest. Dass keiner was dazu gesagt hat ist ja nicht meine Schuld.
                                Mir ist nur aufgefallen dass es ziemlich viel Code ist für die Aufgabe, aber es gibt andere die in JS um einiges besser drin stecken als ich.

                                Einen der glaubt, Frechheiten hinter Smilies verstecken zu können.

                                Zum Beispiel?

  2. Moin,

    Sollte sich jemand die Mühe machen wollen, einen Blick auf das Projekt zu werfen, wäre ich entzückt!

    Eine Sache: Ich finde, die Tabs sind in genau der falschen Reihenfolge angeordnet. "Quickcode" ist wahrscheinlich das, was ich im Alltag am ehesten gebrauchen könnte, gefolgt von "Zeichen definieren". Der Fall, dass man mal wirklich ein Muster definieren muss ist IMHO der seltenste. Ansonsten finde ich das ein schönes kleines Projekt ;)

    Zum Code: Ich bin kein Javascript-Experte, deshalb solltest du auf eine Reaktion von molily aka "Mr. Javascript" hoffen ;) Für mich sieht der Code aber gut aus, sinnvoll strukturiert und leicht verständlich.

    Grüße Marco

    --
    Ich spreche Spaghetticode - fließend.