Der-Dennis: Wiki-Artikel: Gruppenwechsel

Hallo zusammen,

da ich mich heute hier aus dem Fenster gelehnt habe, benötige ich Eure Meinung zum neuen Wiki-Artikel Gruppenwechsel.

Der Artikel an sich stellt kein großes Problem dar, vielmehr (wie in den meisten Fällen) das Erstellen von einfachen Beispielen.

Ich habe mir folgendes überlegt: Für Gruppenwechsel 1., 2. und 3. Ordnung (spätestens dann sollte das Prinzip klar sein) werden Schulen "Gruppenwechseltechnisch" (was für ein Wort... ;)) bearbeitet.

  • 1. Ordnung: Schüler einer Schule
  • 2. Ordnung: Schüler eines Jahrgangs einer Schule
  • 3. Ordnung: Schüler einer Klasse eines Jahrgangs einer Schule

Meine Idee ist, dass alle drei Fälle "einheitlich" behandelt werden und, natürlich, leicht verständlich sind. Der Vollständigkeit halber: Als letztes Beispiel (n. Ordnung) soll ein Stammbaum (Vater-Sohn-Beziehung) erklärt werden und warum dies bei einer begrenzten Anzahl von Stufen mittels Gruppenwechsel zwar möglich, aber "nicht besonders klug" ist.

Nun mein Problem: Sowas wie ein Gruppenwechsel kommt ja immer mal wieder vor, allerdings habe ich mir darüber noch nie Gedanken gemacht (sondern es "einfach gemacht") und finde daher kein schönes Beispiel.

Deshalb meine Fragen:

  • Findet ihr das Schulbeispiel passt? Gibt's bessere Ideen?
  • Untenstehend ein paar Beispiele für mögliche Beispiele 1. Ordnung. Welches ist am verständlichsten? Welches ist nicht so gut? Habt ihr andere Vorschläge? Mein Problem ist einfach, wie kann ich das einigermaßen einheitlich über die drei Ordnungen hinkriegen und auch so, dass es ein Laie versteht!? Es gibt einfach viel zu viele Möglichkeiten...

Das Daten-Array (für Ordnung 2 käme dann ein Eintrag "Jahrgang" je Schüler hinzu. Für Ordnung 3 ein Eintrag "Klasse" je Schüler):

#### INITIALISIERUNG ####
// In der Initialisierungsphase werden die Daten z.B. aus einer Datei oder Datenbank geholt und
// aufbereitet, da die Daten für einen Gruppenwechsel sortiert vorliegen müssen. Außerdem wird
// eine Schleife, welche alle Schüler durchläuft, gestartet.

// Alle Schüler aller Schulen, z.B. aus einer Datei oder Datenbank
$schueler = array();
$schueler[] = array('schule' => 'Geschwister-Scholl-Schule', 'name' => 'Emma');
$schueler[] = array('schule' => 'Geschwister-Scholl-Schule', 'name' => 'Ben');
$schueler[] = array('schule' => 'Albert-Schweitzer-Schule',  'name' => 'Finn');
$schueler[] = array('schule' => 'Albert-Schweitzer-Schule',  'name' => 'Lena');
$schueler[] = array('schule' => 'Geschwister-Scholl-Schule', 'name' => 'Mia');
$schueler[] = array('schule' => 'Geschwister-Scholl-Schule', 'name' => 'Hannah');
$schueler[] = array('schule' => 'Albert-Schweitzer-Schule',  'name' => 'Noah');
$schueler[] = array('schule' => 'Geschwister-Scholl-Schule', 'name' => 'Luis');
$schueler[] = array('schule' => 'Geschwister-Scholl-Schule', 'name' => 'Paul');
$schueler[] = array('schule' => 'Geschwister-Scholl-Schule', 'name' => 'Sofia');
$schueler[] = array('schule' => 'Geschwister-Scholl-Schule', 'name' => 'Lukas');
$schueler[] = array('schule' => 'Albert-Schweitzer-Schule',  'name' => 'Lea');
$schueler[] = array('schule' => 'Albert-Schweitzer-Schule',  'name' => 'Emily');
$schueler[] = array('schule' => 'Albert-Schweitzer-Schule',  'name' => 'Elias');
$schueler[] = array('schule' => 'Geschwister-Scholl-Schule', 'name' => 'Emilia');
$schueler[] = array('schule' => 'Albert-Schweitzer-Schule',  'name' => 'Luca');
$schueler[] = array('schule' => 'Geschwister-Scholl-Schule', 'name' => 'Jonas');
$schueler[] = array('schule' => 'Geschwister-Scholl-Schule', 'name' => 'Anna');
$schueler[] = array('schule' => 'Albert-Schweitzer-Schule',  'name' => 'Marie');
$schueler[] = array('schule' => 'Geschwister-Scholl-Schule', 'name' => 'Leon');

// Wenn die Daten wie hier nicht sortiert vorliegen, _müssen_ diese nach ihrer Gruppe sortiert werden.
// In den meisten Fällen (z.B. bei Daten aus einer Datei oder Datenbank) werden die Daten ähnlich wie
// hier als Zeilen-Array ausgegeben.
// Hinweis: Die interne Vorgehensweise von array_multisort() ist nicht immer intuitiv erfassbar. Es
//          gibt andere Methoden, um Datensätze zu sortieren. In diesem Fall kann es aber einfach
//          verwendet werden: Es wird zuerst aufsteigend nach Schule (notwendig für den Gruppenwechsel)
//          und anschließend aufsteigend nach Name (für den Gruppenwechsel nicht notwendig) sortiert.
array_multisort($schueler);

Die Schul- und Schülernamen übrigens ganz unverfänglich hier und hier her.

  • Vorschlag 1: Vollständiges Beispiel
  • Vorteil: Aufteilung Gruppenvor-, -durch-, und -nachlauf sind klar ersichtlich; nahezu genau "die Theorie"
  • Nachteil: Die Vor- und Zurückzählung der Zählervariablen; schlecht auf die anderen Ordnungen erweiterbar (dann sehr unübersichtlich)
// Durchlaufe alle Schüler
for ($i = 0; $i < count($schueler); $i++) {
	
	#### GRUPPENVORLAUF ####
	// Beim Gruppenvorlauf wird die Gruppe initialisiert, d.h. es werden z.B. Variablen, welche die
	// Eigenschaften der Gruppe beschreiben, definiert
	
	// Der Name der Schule
	$schule = $schueler[$i]['schule'];

	// Die Namen aller Schüler dieser Schule (die Schule ist die aktuell verwendete Gruppe)
	$namenDerSchueler = array();
	
	// Da es sich hier um die Gruppeninitialisierung handelt gehört der Schüler auch zu dieser Schule
	$namenDerSchueler[] = $schueler[$i]['name'];
	
	// Aktuell wurde 1 Schüler dieser Schule gefunden
	$anzahlDerSchueler = 1;

	#### GRUPPENDURCHLAUF ####
	// Beim Gruppendurchlauf werden alle Elemenete der aktuellen Gruppe durchlaufen, in diesem Fall also
	// alle Schüler dieser Schule
	// Da der erste Schüler der Schule bereits gefunden wurde wird direkt mit dem nächsten Schüler
	// fortgefahren, also $i+1
	for ($j = $i + 1; $j < count($schueler); $j++) {
		
		// Die Einleitung des Gruppenwechsels
		// Der aktuelle Schüler gehört einer anderen Schule an, daher kann die innere Schleife abgebrochen
		// werden. Es folgt der Gruppennachlauf, anschließend der eigentliche Gruppenwechsel
		if ($schule != $schueler[$j]['schule']) {
			break;
		}
		
		// Den Namen des aktuellen Schülers der Schule hinzufügen (gleiche Gruppe)
		$namenDerSchueler[] = $schueler[$j]['name'];
		
		// Anzahl der Schüler dieser Schule um 1 erhöhen
		$anzahlDerSchueler++;
	}
	
	#### GRUPPENNACHLAUF ####
	// Der Gruppennachlauf dient bspw. der Ausgabe der Eigenschaften der zuvor durchsuchten Gruppe
	
	// Name der Schule ausgeben
	printf('Schule: %s<br>', $schule);
	
	// Anzahl der Schüler dieser Schule ausgeben
	printf('-- Anzahl Schüler: %s<br>', $anzahlDerSchueler);
	
	// Die Namen aller Schüler dieser Schule ausgeben
	printf('-- Schüler: %s<br>', implode(', ', $namenDerSchueler));
	
	// Der aktuell bearbeitete Schüler gehörte bereits der nächsten Gruppe (einer anderen Schule) an.
	// Deshalb muss der Schüler $i erneut berechnet werden ($j-1)
	$i = $j - 1;
}
  • Vorschlag 2
  • Vorteil: Nur eine Schleife
  • Nachteil: Aufteilung Gruppenvor-, -durch-, und -nachlauf nicht klar ersichtlich; einiges doppelt; einfach erweiterbar
$schule = $schueler[0]['schule'];
$namenDerSchueler = array();
$namenDerSchueler[] = $schueler[0]['name'];
$anzahlDerSchueler = 1;

for ($i = 1; $i < count($schueler); $i++) {
	if ($schule != $schueler[$i]['schule']) {
		printf('Schule: %s<br>', $schule);
		printf('-- Anzahl Schüler: %s<br>', $anzahlDerSchueler);
		printf('-- Schüler: %s<br>', implode(', ', $namenDerSchueler));
		
		$schule = $schueler[$i]['schule'];
		$namenDerSchueler = array();
		$anzahlDerSchueler = 0;
	}
	
	$namenDerSchueler[] = $schueler[$i]['name'];
	$anzahlDerSchueler++;
}

printf('Schule: %s<br>', $schule);
printf('-- Anzahl Schüler: %s<br>', $anzahlDerSchueler);
printf('-- Schüler: %s<br>', implode(', ', $namenDerSchueler));
  • Vorschlag 3
  • Vorteil: Ohne Probleme erweiterbar
  • Nachteil: Eine Schleife nur für die Ausgabe; sehr schlecht lesbar; nicht allgemeingültig (nicht in allen Programmiersprachen möglich)
$schulenSortiert = array();

for ($i = 0; $i < count($schueler); $i++) {
	if (!array_key_exists($schueler[$i]['schule'], $schulenSortiert)) {
		$schulenSortiert[$schueler[$i]['schule']] = array();
		$schulenSortiert[$schueler[$i]['schule']]['schueler'] = array();
		$schulenSortiert[$schueler[$i]['schule']]['anzahl'] = 0;
	}
	
	$schulenSortiert[$schueler[$i]['schule']]['schueler'][] = $schueler[$i]['name'];
	$schulenSortiert[$schueler[$i]['schule']]['anzahl']++;
}

foreach ($schulenSortiert as $name => $eigenschaft) {
	printf('Schule: %s<br>', $name);
	printf('-- Anzahl Schüler: %s<br>', $eigenschaft['anzahl']);
	printf('-- Schüler: %s<br>', implode(', ', $eigenschaft['schueler']));
}

Ich würde mich wie gesagt über jegliche Anregungen, Meinungen, Kritiken und Vorschläge freuen.

Gruß Dennis

  1. Tach!

    • Findet ihr das Schulbeispiel passt? Gibt's bessere Ideen?

    Tiere gehen auch immer.

    • Untenstehend ein paar Beispiele für mögliche Beispiele 1. Ordnung. Welches ist am verständlichsten? Welches ist nicht so gut? Habt ihr andere Vorschläge? Mein Problem ist einfach, wie kann ich das einigermaßen einheitlich über die drei Ordnungen hinkriegen und auch so, dass es ein Laie versteht!? Es gibt einfach viel zu viele Möglichkeiten...

    Erst was ganz einfaches, dann kann auch was komplexeres in einem nächsten Abschnitt folgen.

    // Wenn die Daten wie hier nicht sortiert vorliegen, müssen diese nach ihrer Gruppe sortiert werden.

    Das sollte einfach Voraussetzung sein und nur erwähnt werden (vielleicht hervorgehoben). Eine Sortierung selbst muss nicht gezeigt werden, besonders nicht mit so einer umstrittenen Funktion wie array_multisort(). Die Beispieldaten können ruhig (erkennbar) sortiert vorliegen.

    array_multisort($schueler);

    Das sortiert zwar augenscheinlich wie gewünscht, aber der Fall "Sortieren eines Arrays mit Datensatz-Arrays" ist im PHP-Handbuch gar nicht erwähnt. Da steht, dass man das Zeilen-Array erstmal zu einem Spalten-Array umformen muss.

    • Vorschlag 1: Vollständiges Beispiel

    Muss das mit zwei verschachtelten for-Schleifen ablaufen? Geht das nicht auch einfacher mit foreach zu lösen?

    • Vorschlag 2
    • Vorteil: Nur eine Schleife
    • Nachteil: Aufteilung Gruppenvor-, -durch-, und -nachlauf nicht klar ersichtlich; einiges doppelt; einfach erweiterbar

    Das bekommt man auch ohne Dopplungen hin.

    $schule = $schueler[0]['schule']; $namenDerSchueler = array(); $namenDerSchueler[] = $schueler[0]['name']; $anzahlDerSchueler = 1;

    Lediglich $schule muss mit einem nicht vorkommenden Wert initialisiert werden, beispielsweise null. Der erste Datensatz erzeugt daraufhin gleich einen Gruppenwechsel von nichts in die erste Gruppe. Es reicht, wenn dann die gruppenspezifischen Initialisierungen stattfinden.

    Der Fall ist der einfachste. Wenn nur vor einer Gruppe etwas ausgegeben werden muss, ist der sehr gut geeignet. Wenn eine Gruppe auch noch abgeschlossen werden muss, ist das vor der Gruppen-Initialisierung zu tun. Auf den ersten Pseudo-Wechsel wäre zu prüfen und dann der Abschluss zu unterlassen. Am Ende sollte auch noch ein Abschluss stattfinden - na gut, dann bekommt man da eine Dopplung rein.

    • Vorschlag 3 $schulenSortiert[$schueler[$i]['schule']]['anzahl'] = 0;

    Wenn du schon ein verschachteltes/gruppiertes Array anlegst, kannst du auch mit count() zählen.

    dedlfix.

    1. Liebe Mitdenker, liebe Wissende, liebe Neugierige,

      • Findet ihr das Schulbeispiel passt? Gibt's bessere Ideen?

      Tiere gehen auch immer

      Ich fände "Baumarkt" besser. Das ist eher aus dem Leben für das Leben.

      Spirituelle Grüße
      Euer Robert
      robert.r@online.de

      --
      Möge der wahre Forumsgeist ewig leben!
    2. Hallo dedlfix,

      danke Dir für die Antwort.

      • Findet ihr das Schulbeispiel passt? Gibt's bessere Ideen?

      Tiere gehen auch immer.

      Ok, dann nehme ich Tiere. Wobei der Übergang zwischen Schülern und Tieren manchmal fließend sein kann ;-)

      • Untenstehend ein paar Beispiele für mögliche Beispiele 1. Ordnung. Welches ist am verständlichsten? Welches ist nicht so gut? Habt ihr andere Vorschläge? Mein Problem ist einfach, wie kann ich das einigermaßen einheitlich über die drei Ordnungen hinkriegen und auch so, dass es ein Laie versteht!? Es gibt einfach viel zu viele Möglichkeiten...

      Erst was ganz einfaches, dann kann auch was komplexeres in einem nächsten Abschnitt folgen.

      Das war der ursprüngliche Plan, mehr dazu unten.

      // Wenn die Daten wie hier nicht sortiert vorliegen, müssen diese nach ihrer Gruppe sortiert werden.

      Das sollte einfach Voraussetzung sein und nur erwähnt werden (vielleicht hervorgehoben). Eine Sortierung selbst muss nicht gezeigt werden, besonders nicht mit so einer umstrittenen Funktion wie array_multisort(). Die Beispieldaten können ruhig (erkennbar) sortiert vorliegen.

      Ok, machen wir so. Hatte eh mit Einspruch gerechnet ;-)

      array_multisort($schueler);

      Das sortiert zwar augenscheinlich wie gewünscht, aber der Fall "Sortieren eines Arrays mit Datensatz-Arrays" ist im PHP-Handbuch gar nicht erwähnt. Da steht, dass man das Zeilen-Array erstmal zu einem Spalten-Array umformen muss.

      Dachte mir schon, dass hier Einspruch kommt :-) Hatten wir da nicht sogar vor Ewigkeiten mal drüber gesprochen? Kommt wieder weg. Ich weiß auch gar nicht, wann ich die Funktion das letzte Mal benutzt habe. Wollte nur kein Fass aufmachen und kurz zeigen, dass die sortiert werden müssen. Aber hat sich erledigt, mache ich im Text.

      • Vorschlag 1: Vollständiges Beispiel

      Muss das mit zwei verschachtelten for-Schleifen ablaufen? Geht das nicht auch einfacher mit foreach zu lösen?

      Nein und ja. Muss nicht und geht. Warum zwei for-Schleifen? Ich hatte mir angeguckt, wie die Theorie zum Gruppenwechsel aussieht. In der Theorie stehen praktisch überall zwei Schleifen. Der Sinn hat sich mir zwar noch nicht erschlossen, wollte es aber ursprünglich erstmal so reinbringen und später zeigen, dass es auch anders geht. Z.B. bei Wikipedia kannst Du Dir ja mal das Struktogramm ansehen, in den anderen allgemeingültigen Abhandlungen findet man ähnliches.

      Ansonsten ist ein einfacher Gruppenwechsel ja nichts Wildes:

      $gruppe = '';
      foreach ($elemente as $element) {
        if ($element['gruppe'] != $gruppe) {
          echo $element['gruppe'];
          $gruppe = $element['gruppe'];
        }
        echo $element['name'];
      }
      
      • Vorschlag 2
      • Vorteil: Nur eine Schleife
      • Nachteil: Aufteilung Gruppenvor-, -durch-, und -nachlauf nicht klar ersichtlich; einiges doppelt; einfach erweiterbar

      Das bekommt man auch ohne Dopplungen hin.

      Ja.

      $schule = $schueler[0]['schule']; $namenDerSchueler = array(); $namenDerSchueler[] = $schueler[0]['name']; $anzahlDerSchueler = 1;

      Lediglich $schule muss mit einem nicht vorkommenden Wert initialisiert werden, beispielsweise null. Der erste Datensatz erzeugt daraufhin gleich einen Gruppenwechsel von nichts in die erste Gruppe. Es reicht, wenn dann die gruppenspezifischen Initialisierungen stattfinden.

      Stimmt. Da ist aber das "Problem", dass dann im weiteren Verlauf die Reihenfolge Vorlauf-Durchlauf-Nachlauf nicht mehr hinhaut. Da wollte ich ursprünglich drauf hinaus, weil das die theoretische Reihenfolge ist. In vielen Fällen dürfte man aber eher sowas wie Nachlauf-Vorlauf-Durchlauf haben.

      Der Fall ist der einfachste. Wenn nur vor einer Gruppe etwas ausgegeben werden muss, ist der sehr gut geeignet. Wenn eine Gruppe auch noch abgeschlossen werden muss, ist das vor der Gruppen-Initialisierung zu tun. Auf den ersten Pseudo-Wechsel wäre zu prüfen und dann der Abschluss zu unterlassen. Am Ende sollte auch noch ein Abschluss stattfinden - na gut, dann bekommt man da eine Dopplung rein.

      So würde man es häufig - trotz Doppelung - wohl auch machen.

      • Vorschlag 3 $schulenSortiert[$schueler[$i]['schule']]['anzahl'] = 0;

      Wenn du schon ein verschachteltes/gruppiertes Array anlegst, kannst du auch mit count() zählen.

      Ja, gleiches Problem wie zuvor: Ich wollte zeigen, dass sowas wie "gruppenspezifische Eigenschaften" im Vorlauf initialisiert und dann z.B. hochgezählt werden, auch wenn man das praktisch nicht so macht.

      Nach ein bisschen Nachdenken komme ich aber zu dem Schluss, dass das, was ich vorhatte, so bestimmt nicht sinnvoll möglich ist. Ich wollte nämlich die (sowieso etwas fragwürdige) Theorie auch in den Beispielen unterbringen und zusätzlich halbwegs praxistaugliche Beispiele haben, die zusätzlich noch leicht zu verstehen sind. Ich denke, das funktioniert so nicht.

      Deshalb eine weitere Frage an Euch: Worauf soll ich mich konzentrieren? Möchten wir einen Artikel "Programmiertechnik/Gruppenwechsel" (das wäre dann eher theoretisch) oder einen Artikel "PHP/Gruppenwechsel" (dann eher praktisch). Oder habt ihr sonst noch einen Vorschlag?

      Gruß Dennis

      1. Hallo,

        Deshalb eine weitere Frage an Euch: Worauf soll ich mich konzentrieren? Möchten wir einen Artikel "Programmiertechnik/Gruppenwechsel" (das wäre dann eher theoretisch) oder einen Artikel "PHP/Gruppenwechsel" (dann eher praktisch). Oder habt ihr sonst noch einen Vorschlag?

        Auf keinen Fall zu theoretisch! Wichtig scheint mir vor allem, dass man auch zu diesem Artikel Zugang findet (sowohl wörtlich als auch im übertragenen Sinn) ohne den Begriff Gruppenwechsel zu kennen.

        Gruß
        Kalk

        1. Liebe Mitdenker, liebe Wissende, liebe Neugierige,

          Deshalb eine weitere Frage an Euch: Worauf soll ich mich konzentrieren? Möchten wir einen Artikel "Programmiertechnik/Gruppenwechsel" (das wäre dann eher theoretisch) oder einen Artikel "PHP/Gruppenwechsel" (dann eher praktisch). Oder habt ihr sonst noch einen Vorschlag?

          Auf keinen Fall zu theoretisch! Wichtig scheint mir vor allem, dass man auch zu diesem Artikel Zugang findet (sowohl wörtlich als auch im übertragenen Sinn) ohne den Begriff Gruppenwechsel zu kennen.

          Sag ich doch. Die Fragesteller dort auffangen, wo sie ankommen: Datenbankabfrage.
          Und dann erstmal zeigen, wie man Gruppenwechsel in der API (PHP) während der Anzeige erreichen kann.

          Und dann kann man am Ende auch noch ein paar Datenbank-Abfragetricks zeigen, damit die Simpel-Darstellung des Resultsets schon "gegruppenwechselt" aussieht. Das kann man dann auch direkt in die API übernehmen, die immer nur dann eine neue Überschrift erzeugt, wenn die berechnete Spalte "Gruppenüberschrift" einen Inhalt hat.

          Objektorientierung ist mMn ein anderer Freiheitsgrad

          Spirituelle Grüße
          Euer Robert
          robert.r@online.de

          --
          Möge der wahre Forumsgeist ewig leben!
        2. Hallo Kalk,

          Deshalb eine weitere Frage an Euch: Worauf soll ich mich konzentrieren? Möchten wir einen Artikel "Programmiertechnik/Gruppenwechsel" (das wäre dann eher theoretisch) oder einen Artikel "PHP/Gruppenwechsel" (dann eher praktisch). Oder habt ihr sonst noch einen Vorschlag?

          Auf keinen Fall zu theoretisch! Wichtig scheint mir vor allem, dass man auch zu diesem Artikel Zugang findet (sowohl wörtlich als auch im übertragenen Sinn) ohne den Begriff Gruppenwechsel zu kennen.

          ok, dann gehe ich eher in Richtung PHP/Gruppenwechsel und bringe ein paar mehr praktische Beispiele.

          Gruß, Dennis

      2. Liebe Mitdenker, liebe Wissende, liebe Neugierige,

        • Findet ihr das Schulbeispiel passt? Gibt's bessere Ideen?

        Tiere gehen auch immer.

        Ok, dann nehme ich Tiere. Wobei der Übergang zwischen Schülern und Tieren manchmal fließend sein kann ;-)

        was haben ca. 80% der Fragesteller mit Schülern oder Tieren zu tun? Aber gut 95% können sich vorstellen, von einem Baumarkt eine Rechnug zu erhalten über diverse Positionen, bestehend aus ProjektNummer, Warengruppen und Artikeln

        Wollt Ihr praktische Beispiele geben, oder wissenschaftlich abgehobene fiktive Objektmdellierung betreiben?

        Spirituelle Grüße
        Euer Robert
        robert.r@online.de

        --
        Möge der wahre Forumsgeist ewig leben!
        1. Hallo robertroth,

          was haben ca. 80% der Fragesteller mit Schülern oder Tieren zu tun?
          Aber gut 95% können sich vorstellen, von einem Baumarkt eine Rechnug zu erhalten über diverse Positionen, bestehend aus ProjektNummer, Warengruppen und Artikeln

          Gut 100% der Fragesteller wissen, dass es Schüler gibt, die in verschiedene Klassen oder Schulen gehen.

          Wollt Ihr praktische Beispiele geben, oder wissenschaftlich abgehobene fiktive Objektmdellierung betreiben?

          Was bezweckst du mit dieser Fragestellung? Was ist an dem Beispiel mit den Schülern wissenschaftlich abgehoben?

          Bis demnächst
          Matthias

          --
          Signaturen sind bloed (Steel) und Markdown ist mächtig.
          1. Liebe Ignoranten,

            Gut 100% der Fragesteller wissen, dass es Schüler gibt, die in verschiedene Klassen oder Schulen gehen.

            Gut 80% haben sich aber noch nie mit der weiteren Klassifizierung auseinander gesetzt Gut 100% wissen auch, dass es Politiker gibt. Kaum einer hat aber eine Vorstellung von deren Klassifizierbarkeit.

            Ich bin es so langsam leid, Euch euer eigenes Archiv beizubringen!

            Wann hat im Archiv nachlesbar jemand über den Gruppenwechsel bei seinen Schülern nachgefragt und wann bei den Artikeln in seinem Webshop?

            Sorry: aber tickt Ihr hier eigentlich noch richtig?

            So: und nun erwarte ich alle Minuspunkte der Poster, die die Wahrheit einfach nicht ertragen können und außerdem:

            Plonk

            Letzte Grüße
            Euer Robert

            --
            Der wahre Forumsgeist ist tot!
            1. Hallo,

              Letzte Grüße

              glaub' ich dir nich

              Gruß
              Kalk

        2. Hallo Robert,

          ergänzend zu meinem anderen Beitrag:

          Ok, dann nehme ich Tiere. Wobei der Übergang zwischen Schülern und Tieren manchmal fließend sein kann ;-)

          was haben ca. 80% der Fragesteller mit Schülern oder Tieren zu tun? Aber gut 95% können sich vorstellen, von einem Baumarkt eine Rechnug zu erhalten über diverse Positionen, bestehend aus ProjektNummer, Warengruppen und Artikeln

          Beispiele sollten ja möglichst einfach und verständlich sein, sagtest Du - zurecht - ja auch selbst. Auch wenn man wohl nicht Schüler oder Tiere modelliert, finde ich das trotzdem passend, weil das zumindest jeder kennen sollte. Der Leser muss sich also keine zusätzlichen Gedanken machen, um das Beispiel nachzuvollziehen. Bei einem Baumarkt könnte das meiner Meinung nach anders aussehen.

          Wollt Ihr praktische Beispiele geben, oder wissenschaftlich abgehobene fiktive Objektmdellierung betreiben?

          Das wissenschaftlich Abgehobene sehe ich hier nicht. Am besten wären wohl verständliche Beispiele, die man später auch - obwohl es nur Beispiele sind - trotzdem nutzen kann. Mir fällt da aber beim besten Willen nichts ein. Sowas wie Tiere halte ich für einfach genug, um es anschaulich zu erklären, dafür wird man es dieser Form wohl nur in seltenen Fällen praktisch nutzen können. Beim Baumarkt könnte man es vielleicht nutzen (wenn man Inhaber eines Baumarkts ist, das dürften aber nur 0.x aller Leute sein ;-)), dafür bringt man aber unnötig Komplexität rein, die für das reine Verständnis des Themas nicht nötig wäre.

          Unabhängig davon: Ich lade Dich natürlich herzlich dazu ein, an dem Artikel mitzuwirken.

          Gruß, Dennis

  2. Lieber Der-Dennis,

    $schueler[] = array('schule' => 'Geschwister-Scholl-Schule', 'name' => 'Emma');
    

    ernsthaft? Warum keine Objekte einer Klasse Schueler...?

    $schueler[] = new Schueler(array(
        'schule' => 'Geschwister-Scholl-Schule',
        'name'   => 'Emma'
    ));
    

    Liebe Grüße,

    Felix Riesterer.

    1. Tach!

      $schueler[] = array('schule' => 'Geschwister-Scholl-Schule', 'name' => 'Emma');
      

      ernsthaft? Warum keine Objekte einer Klasse Schueler...?

      Es bringt für das Thema keinen Vorteil. Und es bringt auch ansonsten keinen Vorteil, wenn man nicht noch irgendwelche Zusatzfunktion in der Klasse hat oder das Projekt generell objektorientiert angelegt ist. Abgesehen vom generellen Aspekt wollen wir hier nur ein Bündel Daten gruppiert ausgeben. Wenn wir statt des einfachen Arrays eine Klasse nehmen, wird der Code nur länger, weil auch noch die Klasse gezeigt werden muss, die zumindest einen Konstruktor haben sollten, der die Daten in den internen Feldern ablegt. Der nächste kommt dann und fügt noch sinnlose Getter und Setter hinzu, weil man das eben so macht. KISS!

      $schueler[] = new Schueler(array(
          'schule' => 'Geschwister-Scholl-Schule',
          'name'   => 'Emma'
      ));
      

      Na so ja nicht, das bringt ja noch nicht mal einen Tipp-Vorteil.

      $schueler[] = new Schueler('Geschwister-Scholl-Schule', 'Emma');
      

      Den Rest muss die Konstruktorfunktion erledigen.

      dedlfix.

    2. Hallo Felix,

      auch Dir danke für Deine Antwort.

      $schueler[] = array('schule' => 'Geschwister-Scholl-Schule', 'name' => 'Emma');
      

      ernsthaft? Warum keine Objekte einer Klasse Schueler...?

      Hältst Du das bei einem Beispiel über Gruppenwechsel für sinnvoll? Wenn ja, warum? Ich bin der Meinung, dass man bei den Beispielen alles unnötige, sprich alles was nicht direkt mit dem Problem zu tun hat, rauslässt. Und der Gruppenwechsel hat ja an sich erst mal nichts mit OOP zu tun.

      Mit gleicher Begründung muss ich auch die geplante Sortierung der Daten im Beispiel rausnehmen: Das hat nur indirekt was mit dem Gruppenwechsel zu tun. Anmerkung im Text sollte reichen und evtl. dann noch nen Link zu ner anderen Wiki-Seite, wie man Daten sortieren kann.

      Gruß Dennis

      1. Hallo Dennis, liebe Mitdenker, liebe Wissende, liebe Neugierige,

        $schueler[] = array('schule' => 'Geschwister-Scholl-Schule', 'name' => 'Emma');
        

        ernsthaft? Warum keine Objekte einer Klasse Schueler...?

        Hältst Du das bei einem Beispiel über Gruppenwechsel für sinnvoll?

        Ich hatte auch sofort die Eingebung "objektorientierte Lösung" und habe die in meiner Vorstellung sofort explodieren sehen. Was muss man dann alles zusätzlich voraussetzen und/oder erklären?

        Keep it simple and simplify...

        Darum hatte ich auch vorgschlagen, kein fiktives Beispiel (oder eines, mit dem max. 2% der Frager zu tun haben) zu benutzen, sondern lieber die Aufgabe "Baumarkt Produktkatalog" am Beispiel einer Datenbankabfrage zu benutzten.

        Spirituelle Grüße
        Euer Robert
        robert.r@online.de

        --
        Möge der wahre Forumsgeist ewig leben!
        1. Hallo Robert,

          Ich hatte auch sofort die Eingebung "objektorientierte Lösung" und habe die in meiner Vorstellung sofort explodieren sehen. Was muss man dann alles zusätzlich voraussetzen und/oder erklären?

          hab ich auch kurz drüber nachgedacht, aber ebenfalls sofort verworfen.

          Keep it simple and simplify...

          Ist angekommen.

          Darum hatte ich auch vorgschlagen, kein fiktives Beispiel (oder eines, mit dem max. 2% der Frager zu tun haben) zu benutzen, sondern lieber die Aufgabe "Baumarkt Produktkatalog" [...]

          Als Du das in Deinem ersten Beitrag geschrieben hattest, dachte ich erst, das sei ein Spaß. Meinst Du wirklich, das ist intuitiver? Ich kann mir das kaum vorstellen. Ich glaube, dass die Mehrzahl der Leute sich eher was unter

          Tiere > Landlebewesen > Hund, Katze, Maus, Elefant

          als

          Baumarkt > Eisenwaren > Spax, M16, Torx

          vorstellen kann.

          am Beispiel einer Datenbankabfrage zu benutzten.

          Dann hätten wir ja wieder das Problem, einen weiteren Punkt mit aufzunehmen, der an sich erstmal nichts mit dem Gruppenwechsel zu tun hat. Einfacher wird's dadurch ja nicht.

          Gruß, Dennis

  3. Hallo Der-Dennis,

    Ich habe mir folgendes überlegt: Für Gruppenwechsel 1., 2. und 3. Ordnung (spätestens dann sollte das Prinzip klar sein) werden Schulen "Gruppenwechseltechnisch" (was für ein Wort... ;)) bearbeitet.

    • 1. Ordnung: Schüler einer Schule
    • 2. Ordnung: Schüler eines Jahrgangs einer Schule
    • 3. Ordnung: Schüler einer Klasse eines Jahrgangs einer Schule

    Ich finde das Beispiel mit den Schülern passend.

    Im der alten Darstellung des Forumsarchivs sah es etwa so aus:

    * 5.2.1999 Beitrag 1
    * 5.2.1999 Beitrag 2
    * 5.2.1999 Beitrag 3
    * 5.2.1999 Beitrag 4
    * 6.2.1999 Beitrag 5
    * 6.2.1999 Beitrag 6
    * 6.2.1999 Beitrag 7
    * 7.2.1999 Beitrag 8
    * 7.2.1999 Beitrag 9
    

    Die gewünschte Darstellung ist

    * 5.2.1999 Beitrag 1
    *          Beitrag 2
    *          Beitrag 3
    *          Beitrag 4
    
    * 6.2.1999 Beitrag 5
    *          Beitrag 6
    *          Beitrag 7
    
    * 7.2.1999 Beitrag 8
    *          Beitrag 9
    

    wäre noch ein weiteres Beispiel

    Bis demnächst
    Matthias

    --
    Signaturen sind bloed (Steel) und Markdown ist mächtig.
    1. Hallo Matthias,

      Ich finde das Beispiel mit den Schülern passend.

      [Forumsbeiträge] wäre noch ein weiteres Beispiel

      danke. Dann hätten wir jetzt schon mal drei mögliche Beispiele: Schulen, Tiere und Forumsbeiträge (Datum).

      Gruß, Dennis

      1. Hallo Der-Dennis,

        ein möglicher Einstieg könnte auch folgender sein:

        Es gibt in einer DB eine 1:n-Beziehung zwischen Schüler und Klasse und die Aufgabe lautet Klassenlisten zu erstellen.

        Eine mögliche Herangehensweise:

        SELECT Klassen
        
        ECHO "Name der Klasse"
        
        Für alle Klassen
          SELECT Schüler
        
          für alle Schüler
            ECHO Schülerdaten
        

        Dies ist nicht besonders clever, weil es $Anzahl der Klassen + 1 Datenbankabfragen gibt. Die Anzahl der Abfragen lässt sich auf eine reduzieren.

        SELECT Schüler JOIN Klassen
        

        aber wie jetzt gruppieren?

        Bis demnächst
        Matthias

        --
        Signaturen sind bloed (Steel) und Markdown ist mächtig.
        1. Hallo Matthias,

          ein möglicher Einstieg könnte auch folgender sein:

          Es gibt in einer DB eine 1:n-Beziehung zwischen Schüler und Klasse und die Aufgabe lautet Klassenlisten zu erstellen. [...] aber wie jetzt gruppieren?

          mit der Datenbank hat Robert ja auch schon vorgeschlagen. Ich bin mir nicht so sicher, ob das in einen Artikel zum Gruppenwechsel, wie ich das ursprünglich gedacht hatte, reinbringen sollte. Grundsätzlich finde ich es aber ok.

          Aufgrund Roberts und Deiner Anmerkungen erweitere ich daher mal meine Fragestellung:

          Was für ein Artikel zum Gruppenwechsel wird gewünscht?

          • Ein "echter" Wiki-Artikel (Programmiertechnik): Also sowas wie ein Wikipedia-Artikel zum Thema Gruppenwechsel (eher theoretisch bzw. allgemeingültig mit ein paar Beispielen)
          • Ein Artikel "PHP/Programmiertechnik": Wie setze ich einen Gruppenwechsel in PHP um (praktischer, mehr Beispiele)
          • Ein Tutorial: Gegeben ist eine Problemstellung, wie kann ich sie lösen? (eher eine fortlaufende Geschichte, noch etwas praktischer, dann können auch andere Aspekte behandelt werden; das passt, denke ich, am ehesten zu Deiner Beschreibung)
          • Einen "Fachartikel": Verschiedene Möglichkeiten für die Umsetzung eines Gruppenwechsels (Mischung aus Theorie und Praxis, dafür nicht so gut für Anfänger geeignet)

          Versteht mich bitte nicht falsch, aber für mich sind ziemlich andere Herangehensweisen und mit irgendwas muss ich ja anfangen. Was passiert, wenn man zuviel vermischt, sieht man ja an meinem ersten Beitrag zu dem Thema ;-)

          Gruß, Dennis

          1. Hallo

            Aufgrund Roberts und Deiner Anmerkungen erweitere ich daher mal meine Fragestellung:

            Was für ein Artikel zum Gruppenwechsel wird gewünscht?

            • Einen "Fachartikel": Verschiedene Möglichkeiten für die Umsetzung eines Gruppenwechsels (Mischung aus Theorie und Praxis, dafür nicht so gut für Anfänger geeignet)

            Das würde ich (von der Beschreibung her) bevorzugen, auch wenn mir die Einschränkung „nicht so gut für Anfänger geeignet“ nicht so recht gefallen will. Problem- bzw. Aufgabenstellung, Beschreibung des Lösungswegs mit Pseudocode/Ablaufplan und verlinkte(?) Beispiele anhand einer konkreten Programmiersprache (hier PHP). Letzteres würde eine spätere Erweiterung des Artikels mit Beispielen in anderen Sprachen ermöglichen. Das nur, falls das erstrebenswert ist. Momentan hört sich das in meinem Kopf recht gut an, das heißt natürlich nicht, dass es das auch ist.

            Versteht mich bitte nicht falsch, aber für mich sind ziemlich andere Herangehensweisen und mit irgendwas muss ich ja anfangen. Was passiert, wenn man zuviel vermischt, sieht man ja an meinem ersten Beitrag zu dem Thema ;-)

            Deshalb gefällt mir der Ansatz, das Problem auf einer Metaebene zu besprechen und die konkrete Umsetzung in einer Programmiersprache (mehr oder minder) als Anhang des Artikels zu behandeln.

            Tschö, Auge

            --
            Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war. Terry Pratchett, “Wachen! Wachen!
          2. Hallo Der-Dennis,

            mit der Datenbank hat Robert ja auch schon vorgeschlagen. Ich bin mir nicht so sicher, ob das in einen Artikel zum Gruppenwechsel, wie ich das ursprünglich gedacht hatte, reinbringen sollte. Grundsätzlich finde ich es aber ok.

            Ich würde zu der Datenbankgeschichte selbst nichts weiter erläutern. Ich denke, die von mir beschriebene Vorgehensweise wäre eine geeignete Motivation.

            • Ein "echter" Wiki-Artikel (Programmiertechnik): Also sowas wie ein Wikipedia-Artikel zum Thema Gruppenwechsel (eher theoretisch bzw. allgemeingültig mit ein paar Beispielen)

            Nö. eher Wie setze ich einen Gruppenwechsel mit einer Programmiersprache um.

            • Ein Tutorial: Gegeben ist eine Problemstellung, wie kann ich sie lösen? (eher eine fortlaufende Geschichte, noch etwas praktischer, dann können auch andere Aspekte behandelt werden; das passt, denke ich, am ehesten zu Deiner Beschreibung)

            ja.

            • Einen "Fachartikel": Verschiedene Möglichkeiten für die Umsetzung eines Gruppenwechsels (Mischung aus Theorie und Praxis, dafür nicht so gut für Anfänger geeignet)

            Nö. Den kann es als Ergänzung (Gruppenwechsel für Fortgeschrittene) geben. Da kann dann durchaus die effizienteste Lösung vorgestellt werden.

            Versteht mich bitte nicht falsch, aber für mich sind ziemlich andere Herangehensweisen und mit irgendwas muss ich ja anfangen. Was passiert, wenn man zuviel vermischt, sieht man ja an meinem ersten Beitrag zu dem Thema ;-)

            Kein Problem.

            Bis demnächst
            Matthias

            --
            Signaturen sind bloed (Steel) und Markdown ist mächtig.
  4. Hallo zusammen,

    da ich mich heute hier aus dem Fenster gelehnt habe, benötige ich Eure Meinung zum neuen Wiki-Artikel Gruppenwechsel.

    nach Monaten bin ich endlich mal wieder zu etwas gekommen und habe eine erste Version des Gruppenwechsel-Artikels im Wiki fertiggestellt.

    Könnt ihr bitte mal drüber schauen? Änderungen, Anmerkungen und was-auch-immer könnt ihr gerne direkt einpflegen. Und wenn da völliger Mist steht einfach löschen.

    Danke und Gruß, Dennis

    1. Tach!

      nach Monaten bin ich endlich mal wieder zu etwas gekommen und habe eine erste Version des Gruppenwechsel-Artikels im Wiki fertiggestellt.

      Ich hab mir den Text durchgelesen (den Code allerdings nicht weiter analysiert) und finde ihn schon recht gut gelungen. Das Beispiel vom Bahnreisenden könnte man vielleicht noch ein wenig straffen und ein paar Wiederholungen der Vorgehensweisenbeschreibung kürzen.

      Man könnte bei "müssen sortiert vorliegen" noch ergänzen, dass es keine Sortierung à la A bis Z und 0 bis 9 sein muss, sondern dass nur die Datensätze mit den gleichen Gruppenkriterien beieinanderstehen müssen.

      dedlfix.

      1. Hallo dedlfix,

        nach Monaten bin ich endlich mal wieder zu etwas gekommen und habe eine erste Version des Gruppenwechsel-Artikels im Wiki fertiggestellt.

        Ich hab mir den Text durchgelesen

        danke für's Durchlesen und Durchhalten!

        (den Code allerdings nicht weiter analysiert)

        Ich denke der ist auch soweit ok und tut was er soll. Sehr schön wird der Code bei solch konstruierten Beispielen eh nicht. Vor allem nicht mit den vielen Kommentaren und zusätzlich noch bei der Mischung von Ausgabe und Verarbeitung.

        Nur noch eine Frage dazu: Ich verwende da oft sprintf, printf, was ich der Form normalerweise nicht so mache. Außerdem in PHP-Beispiel 3 setlocale und DateTime. Eigentlich ist das unnötig, grundsätzlich hat es mir aber immer geholfen, wenn ich in irgendeinem Beispiel auch mal auf etwas Neues gestoßen bin. Passt das so? Oder lieber weg?

        Das Beispiel vom Bahnreisenden könnte man vielleicht noch ein wenig straffen und ein paar Wiederholungen der Vorgehensweisenbeschreibung kürzen.

        Das auf jeden Fall! Habe ich auch schon versucht. Ich bin allerdings nicht gerade ein Lyriker, versuche aber nochmal mein Bestes. Und sonst findet sich vielleicht hier noch ein Mitleser, der etwas begabter im Schreiben ist und vielleicht mal drüber gehen kann!? Ist ja ein Wiki...

        Man könnte bei "müssen sortiert vorliegen" noch ergänzen, dass es keine Sortierung à la A bis Z und 0 bis 9 sein muss, sondern dass nur die Datensätze mit den gleichen Gruppenkriterien beieinanderstehen müssen.

        Vollkommen richtig! Habe gerade mal eine Fußnote nach jeder Sortierungserwähnung gesetzt. Bin aber nicht so ganz zufrieden damit, das geht etwas unter. Vorher hatte ich einen "Beachten"-Hinweis unter der Einleitung ausprobiert, der ging meiner Meinung nach aber auch unter, insbesondere im weiteren Verlauf des Artikels. Hast Du noch eine gute Idee?

        Danke und Gruß, Dennis

        1. Mir gefällt der Artikel! Die Beispiele sind auch gut!

          Sollen bei diesem Beispiel die Tabellenzellen noch gefärbt werden?

          Kontinente

          Wo willst du den Artikel später mal hinschieben?

          (Bitte nicht in Artikel:... - das ist einer der Namensräume, die nicht mehr benutzt werden sollten.

          Sollte man eine Portalseite Programmierung einrichten und den bisherigen Artikel "Artikel/Programmierung" in "Programmierung/Grundlagen" umbenennen?

          Verlinken (und mit Kategorien versehen) kann man den Gruppenwechsel ja von überall:

          -JavaScript/Anwendung und Praxis

          -PHP/Anwendung und Praxis

          -etc

          Matthias Scharwies

          1. Hallo Matthias,

            Mir gefällt der Artikel! Die Beispiele sind auch gut!

            freut mich. Und vielen Dank für das Einfügen der Beispiele.

            Sollen bei diesem Beispiel die Tabellenzellen noch gefärbt werden?

            Kontinente

            Hatte ich ursprünglich so gedacht und dann vergessen das JS in den Todo-Kasten zu kopieren. Ich wäre dafür, gerade bei JavaScript bietet sich das Frickln an. Soll ich Dir dann das komplette Beispiel nochmal in so einen Kasten schreiben (war das eigentlich ok mit dem Todo-Kasten? Ich wusste nicht, wie ich Euch das sonst am geschicktesten zukommen lassen konnte)? Was meinst Du: Erst nach Klick auf einen Button einfärben oder das Skript direkt ausführen?

            Wo willst du den Artikel später mal hinschieben?

            (Bitte nicht in Artikel:... - das ist einer der Namensräume, die nicht mehr benutzt werden sollten.

            Also grundsätzlich bin ich vom Hauptnamensraum ausgegangen:

            Die Artikel werden (mit Ausnahme der Referenzen und des Glossars) direkt im Hauptnamensraum einsortiert. Auch die Einteilung in Bereiche wie Basiswissen, Grundlagen, Praxisnah, Weiterführendes Wissen und Technische Ergänzungen wird nicht weiterverfolgt. Seiten sind entweder direkt im Hauptnamensraum angelegt oder unter Grundlagen einsortiert. Quelle

            oder hab ich das falsch verstanden?

            Sollte man eine Portalseite Programmierung einrichten und den bisherigen Artikel "Artikel/Programmierung" in "Programmierung/Grundlagen" umbenennen?

            Ich weiß nicht, was da das Beste ist. Ich überlege auch schon länger, ob es nicht eine elegante Möglichkeit gibt, allgemeinere Themen sinnvoll abzulegen. Ich finde mich jedenfalls nicht immer wirklich zurecht, wenn ich etwas suche (ok, dafür gibt's Suchfunktion, aber die nutzt bekanntlich nicht jeder). Ein gutes Beispiel ist der Kontextwechsel-Artikel. Auch wenn er hauptsächlich PHP bespricht, ist er für mich allgemeingültig und sollte nicht unter PHP "versteckt" werden (allerdings funktioniert hier die Verlinkung insbes. aus dem Forum heraus super). Und fällt in eine ähnliche Kategorie wie der Gruppenwechsel. Da gibt's auch noch ein paar andere Seiten, auf die das meiner Meinung nach zuträfe. Wenn man die jetzt aber alle in eine Kategorie steckt wird's wieder unübersichtlich, sodass man wieder Untergruppen braucht und dann auch schon wieder bei sowas wie dem Artikel-Namensraum wäre. Ich dreh mich also im Kreis und habe wie gesagt auch noch keine gute Idee dazu.

            Verlinken (und mit Kategorien versehen) kann man den Gruppenwechsel ja von überall:

            -JavaScript/Anwendung und Praxis

            -PHP/Anwendung und Praxis

            -etc

            Das auf jeden Fall. Wenn wir mehr etwas allgemeinere Artikel zusammenbekommen, könnte man die Verlinkungen evtl. eh noch intensiver nutzen. Wenn an den meisten interessanten Stellen wieder auf solche Artikel verlinkt würde, hätte man wahrscheinlich auch nicht mehr unbedingt das oben beschriebene "Problem" mit dem kategorisieren. Eigentlich ist das ja gerade eine Stärke von Http im Allgemeinen und einem Wiki im speziellen.

            Gruß, Dennis

            1. Hallo Der-Dennis,

              Mir gefällt der Artikel! Die Beispiele sind auch gut!

              mir auch,

              Sollen bei diesem Beispiel die Tabellenzellen noch gefärbt werden?

              Done.

              Was meinst Du: Erst nach Klick auf einen Button einfärben oder das Skript direkt ausführen?

              Direkt.

              Wo willst du den Artikel später mal hinschieben?

              Also grundsätzlich bin ich vom Hauptnamensraum ausgegangen:

              Die Artikel werden (mit Ausnahme der Referenzen und des Glossars) direkt im Hauptnamensraum einsortiert. Auch die Einteilung in Bereiche wie Basiswissen, Grundlagen, Praxisnah, Weiterführendes Wissen und Technische Ergänzungen wird nicht weiterverfolgt. Seiten sind entweder direkt im Hauptnamensraum angelegt oder unter Grundlagen einsortiert. Quelle

              oder hab ich das falsch verstanden?

              Im Prinzip nicht.

              Sollte man eine Portalseite Programmierung einrichten und den bisherigen Artikel "Artikel/Programmierung" in "Programmierung/Grundlagen" umbenennen?

              Dafür. Dann wäre es ähnlich wie bei Datenbanken. Programmiertechnik ist vielleicht besser.

              Ich weiß nicht, was da das Beste ist. Ich überlege auch schon länger, ob es nicht eine elegante Möglichkeit gibt, allgemeinere Themen sinnvoll abzulegen. Ich finde mich jedenfalls nicht immer wirklich zurecht, wenn ich etwas suche (ok, dafür gibt's Suchfunktion, aber die nutzt bekanntlich nicht jeder). Ein gutes Beispiel ist der Kontextwechsel-Artikel. Auch wenn er hauptsächlich PHP bespricht, ist er für mich allgemeingültig und sollte nicht unter PHP "versteckt" werden (allerdings funktioniert hier die Verlinkung insbes. aus dem Forum heraus super). Und fällt in eine ähnliche Kategorie wie der Gruppenwechsel. Da gibt's auch noch ein paar andere Seiten, auf die das meiner Meinung nach zuträfe. Wenn man die jetzt aber alle in eine Kategorie steckt wird's wieder unübersichtlich, sodass man wieder Untergruppen braucht und dann auch schon wieder bei sowas wie dem Artikel-Namensraum wäre. Ich dreh mich also im Kreis und habe wie gesagt auch noch keine gute Idee dazu.

              Kontextwechsel hat auch eine Seite im HNR. Der Gruppenwechsel kriegt natürlich auch eine.

              Bis demnächst
              Matthias

              --
              Signaturen sind bloed (Steel) und Markdown ist mächtig.
              1. Servus!

                Sollte man eine Portalseite Programmierung einrichten und den bisherigen Artikel "Artikel/Programmierung" in "Programmierung/Grundlagen" umbenennen?

                Dafür. Dann wäre es ähnlich wie bei Datenbanken. Programmiertechnik ist vielleicht besser.

                Ok, dann würde ich eine Seite Programmiertechnik einrichten, die folgenden Text hätte:

                In diesem Bereich finden Sie Artikel, die sich mit den allgemeingültigen Aspekten der Programmierung beschäftigen.

                und folgende Unterseiten hätte:

                *Grundlagen und Konzepte (war: Artikel:programmierung

                *Gruppenwechsel

                *Kontextwechsel

                *sichere Passwortwahl

                Auch wenn er [der Artikel] hauptsächlich PHP bespricht, ist er für mich allgemeingültig und sollte nicht unter PHP "versteckt" werden (allerdings funktioniert hier die Verlinkung insbes. aus dem Forum heraus super). Und fällt in eine ähnliche Kategorie wie der Gruppenwechsel. Da gibt's auch noch ein paar andere Seiten, auf die das meiner Meinung nach zuträfe.

                Welche denn? Die könnte man dort auch noch verlinken.

                Sollte man Redlinks zu weiteren Artikeln unterbringen, und wenn ja, welchen?

                Evtl. könnte man interessante Artikel auch mit einer Kategorie "Programmiertechnik" versehen.

                Matthias Scharwies

                1. Hallo Mathhias, hallo @Matthias Apsel,

                  sorry wegen der späten Antwort, hatte viel zu tun.

                  Wahnsinn, wie schnell ihr das alles mal wieder umgesetzt habt. Danke. Nicht nur dafür, sondern allgemein.

                  Sollte man eine Portalseite Programmierung einrichten und den bisherigen Artikel "Artikel/Programmierung" in "Programmierung/Grundlagen" umbenennen?

                  Dafür. Dann wäre es ähnlich wie bei Datenbanken. Programmiertechnik ist vielleicht besser.

                  Ok, dann würde ich eine Seite Programmiertechnik einrichten, die folgenden Text hätte:

                  In diesem Bereich finden Sie Artikel, die sich mit den allgemeingültigen Aspekten der Programmierung beschäftigen.

                  und folgende Unterseiten hätte:

                  *Grundlagen und Konzepte (war: Artikel:programmierung

                  *Gruppenwechsel

                  *Kontextwechsel

                  *sichere Passwortwahl

                  Bei sichere Passwortwahl fände ich eine andere Kategorie als Programmiertechnik sinnvoller, weil es damit nur entfernt was zu tun hat. Hab aber außer Allgemein noch keinen guten Namen für solche Themen gefunden. Das wollte ich ursprünglich auch im letzten Post sagen, als ich schrieb, dass sich das immer im Kreis dreht: Irgendwie passt das Thema nicht so richtig, deswegen brauchen wir ein Unterthema und so weiter. Und irgendwann hat jeder Beitrag ein eigenes Thema...

                  Auch wenn er [der Artikel] hauptsächlich PHP bespricht, ist er für mich allgemeingültig und sollte nicht unter PHP "versteckt" werden (allerdings funktioniert hier die Verlinkung insbes. aus dem Forum heraus super). Und fällt in eine ähnliche Kategorie wie der Gruppenwechsel. Da gibt's auch noch ein paar andere Seiten, auf die das meiner Meinung nach zuträfe.

                  Welche denn? Die könnte man dort auch noch verlinken.

                  Ich dachte an sowas wie die verschiedenen Programmierparadigmen, aber die habt ihr auch bereits angelegt. Ich durchforste das Wiki in den kommenden Tagen nochmal und versuche noch die anderen Stellen zusammenzutragen.

                  Sollte man Redlinks zu weiteren Artikeln unterbringen, und wenn ja, welchen?

                  Ich persönlich finde Redlinks gut. Wenn ich einen Redlink sehe und etwas dazu beitragen kann würde es mich jedenfalls animieren wenigstens was Kurzes dazu zu schreiben, damit der Redlink nicht mehr das Gesamtbild stört :-) Andererseits höre ich oft, das Redlinks von einem schlechten Angebot zeugen, weil "siehste! komplett unvollständig! kann der Rest auch nicht stimmen, wenn DIE so langsam oder unfähig sind!". Hab ich in der Form jedenfalls schon gehört.

                  Was sagen denn die Alteingesessenen zu Redlinks? Wie gesagt, ich wäre dafür. Aber insgesamt sollte es relativ konsistent umgesetzt werden. Es bringt ja auch nichts, wenn nachher 90% Redlinks da sind und davon wahrscheinlich nochmal die Hälfte doppelt und dreifach.

                  Ansonsten hätte ich noch den Vorschlag die Seite Baustellen etwas zu erweitern und aufzuwerten. Dafür wäre aber Mithilfe - insbesondere von Stammpostern hier im Forum - nötig. Dort könnte man eine Liste mit gewünschten Artikeln erstellen. Entweder wenn man denkt DAS Thema gehört aber auf jeden Fall ins Wiki oder ein Stammposter erkennt, dass es zu einem bestimmten Thema besonders viele Rückfragen gibt (oder er hundert mal das gleiche schreiben muss, weil er auf nichts verlinken kann), könnte er dort einen Eintrag hinterlassen.

                  Prinzipiell gibt es sowas zwar schon (Gewünschte Seiten), das ist aber meiner Meinung nach nicht wirklich gut, zumindest nicht was Artikel angeht, weil sie eben nur Redlinks zählt. Für sowas wie die Referenzen hingegen ist die wahrscheinlich wirklich gut.

                  Evtl. könnte man interessante Artikel auch mit einer Kategorie "Programmiertechnik" versehen.

                  Auch wenn ich glaube einigermaßen zu verstehen, was hier damit gemeint ist, möchte ich widersprechen: Nur weil etwas als (subjektiv) interessant angesehen wird, sollte das keine Kategorisierungsgrundlage sein. Dafür werden "härtere" Kriterien benötigt, denke ich.

                  Danke nochmal an Euch und die vielen anderen, Dennis

        2. Tach!

          Man könnte bei "müssen sortiert vorliegen" noch ergänzen, dass es keine Sortierung à la A bis Z und 0 bis 9 sein muss, sondern dass nur die Datensätze mit den gleichen Gruppenkriterien beieinanderstehen müssen.

          Vollkommen richtig! Habe gerade mal eine Fußnote nach jeder Sortierungserwähnung gesetzt. Bin aber nicht so ganz zufrieden damit, das geht etwas unter. Vorher hatte ich einen "Beachten"-Hinweis unter der Einleitung ausprobiert, der ging meiner Meinung nach aber auch unter, insbesondere im weiteren Verlauf des Artikels. Hast Du noch eine gute Idee?

          Da könnte eine Formulierung à la "nach dem Gruppierkriterium sortiert" klarer sein.

          dedlfix.

          1. Hallo dedlfix,

            Man könnte bei "müssen sortiert vorliegen" noch ergänzen, dass es keine Sortierung à la A bis Z und 0 bis 9 sein muss, sondern dass nur die Datensätze mit den gleichen Gruppenkriterien beieinanderstehen müssen.

            Vollkommen richtig! Habe gerade mal eine Fußnote nach jeder Sortierungserwähnung gesetzt. Bin aber nicht so ganz zufrieden damit, das geht etwas unter. Vorher hatte ich einen "Beachten"-Hinweis unter der Einleitung ausprobiert, der ging meiner Meinung nach aber auch unter, insbesondere im weiteren Verlauf des Artikels. Hast Du noch eine gute Idee?

            Da könnte eine Formulierung à la "nach dem Gruppierkriterium sortiert" klarer sein.

            aus "müssen die Eingabedaten nach Gruppen sortiert vorliegen" habe ich jetzt "müssen die Eingabedaten nach dem Gruppenkriterium sortiert vorliegen" gemacht. Ich lasse die Fußnoten aber vorerst als weiteren Hinweis drin, schadet ja nicht.

            Gruß, Dennis

            1. Tach!

              aus "müssen die Eingabedaten nach Gruppen sortiert vorliegen" habe ich jetzt "müssen die Eingabedaten nach dem Gruppenkriterium sortiert vorliegen" gemacht. Ich lasse die Fußnoten aber vorerst als weiteren Hinweis drin, schadet ja nicht.

              Ach, na wenn das schon so stand, hätte das auch bleiben können. In meiner Erinnerung war da nur ein allgemeines "müssen sortiert vorliegen". - Genau, bei "Hilfe, das geht nicht" steht das nur so allgemein.

              dedlfix.

              1. Hallo dedlfix,

                aus "müssen die Eingabedaten nach Gruppen sortiert vorliegen" habe ich jetzt "müssen die Eingabedaten nach dem Gruppenkriterium sortiert vorliegen" gemacht. Ich lasse die Fußnoten aber vorerst als weiteren Hinweis drin, schadet ja nicht.

                Ach, na wenn das schon so stand, hätte das auch bleiben können. In meiner Erinnerung war da nur ein allgemeines "müssen sortiert vorliegen". - Genau, bei "Hilfe, das geht nicht" steht das nur so allgemein.

                ah, ok, danke, jetzt weiß ich, was Du meintest. Da hab ich das völlig übersehen. Hab ich eingefügt.

                Gruß, Dennis