Hallo zusammen, anläßlich dieses Threads: Beitrag "Warum hier immer alle so "unfreundlich" sind." ist mir aufgefallen, daß ich zum Prinzip des "lauffähigen Minimalbeispiels" in der LaTeX-Communitiy hervorragende Beschreibungen finde, im Bereich der Programmierung aber nicht. Kennt hier jemand eine gute Beschreibung? Oder wäre es hier sinnvoll, mal einen Artikel zu schreiben? Viele Grüße W.T.
:
Verschoben durch Moderator
OK, und in dem Thread steht auch schon die Antwort: http://sscce.org/ Das war's, was ich gesucht habe.
Walter T. schrieb: > Kennt hier jemand eine gute Beschreibung? Was missfällt Dir am AVR-Tutorial hier? Geht Dir das bereits zu tief ins Detail? Oder missverstehe ich Deine Fragestellung?
Rufus Τ. F. schrieb: > Oder missverstehe ich Deine Fragestellung? Ich glaube schon. Er meint offenbar eine Anleitung, wie man ein Minimalprogramm zusammenstellt, um zum Beispiel einen Fehler in seinem Programm hier im Forum zu präsentieren, um dann Hilfe zu bekommen. Sinn: Nicht 22222 Zeilen Code posten, sondern nur 22 - aber mit Reproduzierbarkeit des Fehlers.
:
Bearbeitet durch Moderator
Jetzt wäre es noch gut, wenn es die Möglichkeit gäbe eine solche Anleitung in den entsprechenden Foren oben anzuheften. Oder einen Link dazu zu den wichtigen Regeln beim Verfassen von Antworten unterzubringen. Man sollte ein solches Beispiel auf alle Fälle gut sichtbar irgendwo unterbringen.
Frank M. schrieb: > Rufus Τ. F. schrieb: >> Oder missverstehe ich Deine Fragestellung? > > Ich glaube schon. Er meint offenbar eine Anleitung, wie man ein > Minimalprogramm zusammenstellt, um zum Beispiel einen Fehler in seinem > Programm hier im Forum zu präsentieren, um dann Hilfe zu bekommen. > > Sinn: Nicht 22222 Zeilen Code posten, sondern nur 22 - aber mit > Reproduzierbarkeit des Fehlers. Schwierig. Ich würde sagen, es ist im wesentlichen genau die gleiche Technik, die man anwenden würde, wenn man bei sich zu Hause zum Entschluss kommt: Jetzt reichts, dieses Detailproblem seh ich mir jetzt losgelöst von meinem eigentlichen Projekt in einem Hilfsprojekt an, das nur den einen Zweck hat, genau dieses eine Subsystem zu untersuchen. Also: neues Projekt, aus dem vorhandenen Code den Teil ausschneiden, bei dem man das Problem vermutet (oder sogar weiss, das man da ein Problem hat), das ganze soweit ummodeln, dass es lauffähig wird. Die Lektionen, die man dabei lernt, sind vielfältig. Zum einen, und das ist nicht das schlechteste, lernt man sein Projekt zu strukturieren. Denn wenn es extrem mühsam ist, ein Subsystem aus dem Gesamtverband herauszulösen, dann erfolgt alleine durch dieses Herauslösen schon eine gewisse Modularisierung, die sich bei der Rückübernahme positiv auswirkt. Zum anderen lernt man dabei Dinge, die gerade Neulinge oft sträflich vernachlässigen - die äussere Form. Vernünftige Variablennamen, vernünftige Funktionsnamen, saubere Einrückungen, das alles sind Dinge, die kein Selbstzweck sind, sondern vitale Elemente der SW-Entwicklung. Und zum Dritten lernt man, seine Kräfte zu bündeln und sich nicht in tatsächlich irrelevanten Details zu verzetteln. Wobei es natürlich auch ein Problem darstellt zu erkennen, was denn nun wirklich irrelevant ist und was nicht. Aber alles in allem ist es meiner Meinung nach schwierig ein Kochrezept anzugeben, wie man Minimalbeispiele produziert. In der SW-Entwicklung geht fast nichts einfach nur nach Kochrezept. Für fast jede allgemein anerkannte Regel gibt es immer auch Ausnahmen, bei denen die Regel versagt. In diesem Sinne hat für mich SW-Entwicklung mehr mit künstlerischer Tätigkeit wie zb Malen oder Gedichte schreiben zu tun. Auch dort gibt es gewisse Grundregeln, man muss aber auch die Eier haben, diese Regeln zu missachten WENN es der Sache dienlich ist. Die Kunst ist natürlich zu erkennen, wann dieser Fall eintritt und wann man einfach nur eigene Faulheit damit verdeckt.
:
Bearbeitet durch User
Karl H. schrieb: > Schwierig. Sehe ich ähnlich. Aber allein Dein Beitrag dazu ließe sich schon in eine Art "Kochrezept" umschreiben. Der von Walter genannte Link http://sscce.org/ beinhaltet ebenso Punkte, die man durchaus in das "Kochrezept" einfließen lassen könnte. Kurzum: Man könnte demjenigen, der ein Problem mit seinem Source hat, schon einige Ratschläge bzw. Werkzeuge an die Hand geben. Ein positiver Effekt könnte sein, dass der TO durch das "Auf-den-Punkt-bringen" selbst schon den Fehler findet. ;-)
Frank M. schrieb: > Ein positiver Effekt könnte sein, dass der TO durch das > "Auf-den-Punkt-bringen" selbst schon den Fehler findet. ;-) Das ist sogar recht oft so. Mir hilft zum Beispiel das laute Sprechen. Ich bin berüchtigt dafür, dass ich bei Problemen am Gang auf und ab gehe und mit mir selbst diskutiere oder mir ein Problem erkläre. :-) (Na ja. Einen "kleinen" Vogel muss man schon haben in diesem Gewerbe)
Karl H. schrieb: > (Na ja. Einen "kleinen" Vogel muss man schon haben in diesem Gewerbe) Wer sagt denn das Du einen Vogel hast? Das muss nämlich nicht sein! Kann es sein das die Leute die nicht so sind wie Du eventuell eine Art "Asperger" haben und deshalb ruhig auf dem Stuhl sitzen? ;-)
Alex W. schrieb: > Karl H. schrieb: >> (Na ja. Einen "kleinen" Vogel muss man schon haben in diesem Gewerbe) > > Wer sagt denn das Du einen Vogel hast? Na - ich! Ich bin ja schon froh, dass ich bisher Kollegen hatte, die sich maximal darüber amüsieren, es aber immer toleriert haben. Ich kann mir durchaus vorstellen, dass das nicht immer einfach ist. Im Gegenzug toleriere ich dann auch so manches. > Kann es sein das die Leute die nicht so sind wie Du eventuell eine Art > "Asperger" haben und deshalb ruhig auf dem Stuhl sitzen? ;-) Jetzt muss ich direkt nach "Asperger" googeln. Unbändige Neugier und Freude am lernen gehören ja schliesslich auch zu unserem Gewerbe. Kennt ihr das auch: mit einem Stichwort fängt es an, dann dann kommt man vom hundersten ins tausendste und wechselt von einem Thema (von dem man vorher noch nie gehört hat) zu einem anderen Thema (von dem man ebenfalls vorher noch nie gehört hat).
:
Bearbeitet durch User
Karl H. schrieb: >> Ein positiver Effekt könnte sein, dass der TO durch das >> "Auf-den-Punkt-bringen" selbst schon den Fehler findet. ;-) > > Das ist sogar recht oft so. In einer früheren Firma nannten wir das den „Frau-Hocker-Effekt“. Frau Hockert war die Reinemachfrau. Soll heißen, oft genug würde es genügen, das Problem einfach der Reinemachfrau im Detail zu erklären, während dieser Erklärung fällt es einem dann wie Schuppen aus den Haaren …
Jörg W. schrieb: > Frau Hockert war die Reinemachfrau. Soll heißen, oft genug würde es > genügen, das Problem einfach der Reinemachfrau im Detail zu erklären Ich hoffe, sie ist dafür wenigstens angemessen entschädigt worden. ;-)
Timm T. schrieb: > Ich hoffe, sie ist dafür wenigstens angemessen entschädigt worden. ;-) Ich glaube, es hat ihr nie jemand wirklich sein Problem erklärt. :) Das lag allerdings auch daran, dass sie zu einer Zeit aktiv war, zu der sich Otto Normalprogrammierer eher nochmal im Bett rumdreht …
Karl H. schrieb: > (Na ja. Einen "kleinen" Vogel muss man schon haben in diesem Gewerbe) Jeder hat auf seine Weise eine ganz spezielle Meise. ;-) mfG Paul
Jörg W. schrieb: > In einer früheren Firma nannten wir das den „Frau-Hocker-Effekt“. Diesen Effekt hat, vermute ich mal, jeder ausgenutzt, der komplizierte Sachverhalte sortieren und weiterdenken mußte. Mein Hund konnte die Zeitenfolge in "if"-Sätzen am Ende vermutlich besser als ich. Und Herr und Frau Mockenhaupt, die ihr gemeinsames Grab direkt neben der Parkbank haben, auf der ich beim lernen gern zu sitzen pflegte, bekamen im Nachleben jeden Aspekt der theoretischen Mechanik noch einmal genau erklärt - so geduldige Zuhörer hatte ich später eher selten. Allerdings ging es mir in Frage nicht allgemein um Problembehandlungsstrategien, sondern ganz konkret um eine Anleitung zum Aufbau eines "SSCCE"s. Den englischen Artikel finde ich schon gut - aber ich wundere mich, daß ich noch nicht auf eine deutschsprachige Entsprechung gestoßen bin. Immerhin ist das doch derart elementar - wieso schreibt niemand darüber? Wie nennt der Programmierer/Softwareentwickler ein "Short, Self Contained, Correct (Compilable), Example" eigentlich im Deutschen? Das Wort "Minimalbeispiel" begegnete mir immer nur im LaTeX-Kontext.
Walter T. schrieb: > Wie nennt der Programmierer/Softwareentwickler ein "Short, Self > Contained, Correct (Compilable), Example" eigentlich im Deutschen? Das compilierbare Minimalbeispiel trifft es schon irgendwie.
Walter T. schrieb: > Wie nennt der Programmierer/Softwareentwickler ein "Short, Self > Contained, Correct (Compilable), Example" eigentlich im Deutschen? Das > Wort "Minimalbeispiel" begegnete mir immer nur im LaTeX-Kontext. Wenn man "sscce" googelt, findet man unter dem ersten deutschsprachigen Link die Bezeichnung "Kompilett". Darunter findet sich tatsächlich etwas zum Thema. Googelt man allerings "Kompilett", wird man gefragt, ob man "komplett" meinte und bekommt auch die entsprechenden Suchergebnisse dafür angezeigt. Besteht man auf 'Kompilett", bekommt man wieder besagten Link. Der Rest ist allerdings Schwachsinn. Also, durchgesetzt hat sich der Begriff nicht. Jörg W. schrieb: > Das compilierbare Minimalbeispiel trifft es schon irgendwie. Ja. Und das sollte auch jeder verstehen. mfg.
:
Bearbeitet durch User
Walter T. schrieb: > Allerdings ging es mir in Frage nicht allgemein um > Problembehandlungsstrategien, sondern ganz konkret um eine Anleitung zum > Aufbau eines "SSCCE"s. Den englischen Artikel finde ich schon gut - aber > ich wundere mich, daß ich noch nicht auf eine deutschsprachige > Entsprechung gestoßen bin. Immerhin ist das doch derart elementar - > wieso schreibt niemand darüber? Hmm. Ich kann nur für mich sprechen. Ich hab da eigentlich noch nie genauer darüber nachgedacht. Aber du hast recht, irgendwie gehen wir immer davon aus, dass intuitiv klar sein sollte wie man so ein Minimalbeispiel erstellt. Im von dir geposteten Link sind dann auch einige Punkte drinnen, auf die ich mit Sicherheit vergessen hätte, wenn ich das erläutern sollte. Falls jemand einen Wiki-Eintrag machen will, nur zu. Eines möchte ich noch anmerken. Im Link wird zum Thema 'Warum self contained' erläutert:
1 | This means that after the code has been copied, pasted and compiled by |
2 | those helping, they can run it and see the results for themselves. |
Erstens das. Aber noch wichtiger scheint mir zu sein, dass ich dann ein lauffähiges Beispiel hier habe und mit meinen eigenen Debug-Methoden ans Werk gehen kann. Jeder der lange genug im Geschäft ist, hat da einige Dinge auf Lager, wie er einem laufenden Programm seine Problemstellen entlocken kann. Das wird oft ein Debugger sein, aber die die noch mit printf "aufgewachsen" sind, können auch damit den meisten Dingen schnell auf die Spur kommen. Insbesonders wenn es um komplexere Datenstrukturen geht, nehm ich gerne diesen Weg. Auch Rekursionen verlieren mit ein paar printf schnell ihren Schrecken. > > Wie nennt der Programmierer/Softwareentwickler ein "Short, Self > Contained, Correct (Compilable), Example" eigentlich im Deutschen? Das > Wort "Minimalbeispiel" begegnete mir immer nur im LaTeX-Kontext.
Jörg W. schrieb: > In einer früheren Firma nannten wir das den „Frau-Hocker-Effekt“. witzig, wenn man sich irgendwie wiedererkennt, ich hatte ein Problem in einem komplexen Prüfprogramm, also spricht man mit Kollegen oder eben dem Chef, der war aber meilenweit von der Technik weg und verstand vom Problem wenig, aber er stellte Fragen und genau diese Fragen brachten mir den AHA Effekt und die Lösung, nicht das er eine Lösung fand aber ich durch seine Fragen. Ja manchmal hilft es mit Leuten zu reden auch wenn die nix zum Thema beitragen können, aber durch Erklären fällts einem dann meist selber auf.
:
Bearbeitet durch User
Es gibt auch eine schöne Geschichte (Legende?), nach der es an einer amerikanischen Uni üblich war, dass man zum Tutor nur dann vorgelassen wurde, nachdem man einem Teddybären im Vorzimmer sein Problem geschildert hat. Der Geschichte/Legende nach, soll ein gar nicht so kleiner Prozentsatz nach der Bärennummer das Vorzimmer ohne Konsultation des Tutors wieder verlassen und das Problem gelöst haben.
Walter T. schrieb: > Allerdings ging es mir in Frage nicht allgemein um > Problembehandlungsstrategien, sondern ganz konkret um eine Anleitung zum > Aufbau eines "SSCCE"s. Den englischen Artikel finde ich schon gut - aber > ich wundere mich, daß ich noch nicht auf eine deutschsprachige > Entsprechung gestoßen bin. Immerhin ist das doch derart elementar - > wieso schreibt niemand darüber? Ich vermute, daß die Nachfrage dafür eher mäßig ist. Es gibt (A) Leute, die halbwegs koordiniert denken beim Programmieren oder sonstigen Entwickeln und guten Vorschlägen aller Art zugänglich sind, und es gibt (B) Leute, die das genaue Gegenteil sind. Zu (A): die sind selber in der Lage, Fehler zu finden. Auf dem Weg dahin sind sie auch aus rein pragmatischen Gründen bestrebt und in der Lage, Probleme zu reduzieren. Zu (B): sie murksen sich was zusammen, wollen alles auf einmal erschlagen ohne jeden Überblick und ohne vorher mal mit kleinen Problemen warm zu werden. Dem Rat, sinnvoll vorzugehen, sind sie nicht zugänglich. (Gibt natürlich nicht nur genau diese beiden Gruppen, aber mal zur Vereinfachung nehme ich es nicht so genau. Und am Anfang ist man eher (A), mit etwas Glück entwickelt man sich in Richtung (B)...) Eine solche Anleitung wäre für (A) nicht wirklich nötig, für (B) dagegen sinnlos. Die lesen sie nämlich gar nicht; genauso wie sie von allen anderen sinnvollen Regeln nichts hören wollen. Die allermeisten Fragen hier kommen aus der B-Ecke. Wären die Leute vernünftigen Argumenten zugänglich, hätten sie ihr Problem meistens gar nicht.
:
Bearbeitet durch User
Klaus W. schrieb: > Eine solche Anleitung wäre für (A) nicht wirklich nötig, für (B) > dagegen sinnlos. Die lesen sie nämlich gar nicht; genauso wie sie von > allen anderen sinnvollen Regeln nichts hören wollen. Meiner Meinung nach siehst Du das zu schwarz/weiß. Es gibt bestimmt noch etwas dazwischen. Das können zum Beispiel unerfahrene Anfänger sein, die gar nicht wissen, wie sie ein Problem systematisch angehen können. Für diese Gruppe wäre so eine "Anleitung" zur systematischen Fehlersuche schon hilfreich. Wenn man erkennt, dass der Poster genau so ein Problem hat, braucht man ihm nur per Wiki-Link die richtigen Werkzeuge an die Hand geben und der TO kann dann erstmal in sich gehen. Ich halte daher so einen deutschsprichigen Wiki-Artikel für sehr nützlich und würde mich auch gern daran beteiligen.
Hmmm.... unter Profis könnte es diese zwei Richtungen geben, da alle in etwas die gleiche Vorbildung genossen und diese entweder ignoriert oder aufgenommen haben. Bei den Hobbyisten gibt es immer noch genügend Menschen, die von bestimmten Techniken einfach noch nie gehört (und nicht etwa aktiv in ihrer Ausbildung ignoriert) haben. Ich entdecke mich selbst immer wieder dabei, daß ich beim stöbern im Internet Techniken beschrieben finde, bei denen ich sofort denke: "Na toll - hätte ich davon vor drei Jahren gelesen, hätte mir das viel Arbeit erspart."
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.