Faq

  • Aus aktuellem Anlass:

    Hier gehören keine Jobangebote rein (ein besserer Platz ist z.B. Off-Topic>Börse). Das stößt bei den Leuten die hier regelmäßig reinschauen auf keine so gute Resonanz.

    Weitere Vorschläge was hier her soll oder nicht her soll ggf. hier rein, vielleicht werden ja mal echte FAQs draus. Oder auch nicht.

    I invented ctrl-alt-del but Bill [Gates] made it famous
    Dave Bradly, IBM PC designer

  • Oft dreht sich eine Frage um ein konkretes Programm(fragment), das entweder nicht so reagiert wie gewünscht, oder gar nicht erst compiliert.


    Leider wird der entsprechende Code oft einfach mit copy&paste in den Beitrag gepostet. Solche Programme sind aber für andere Forenbesucher oft nur sehr umständlich zu verstehen und zu testen.
    Nur wenige haben Zeit und Lust, sich mit solchen Problemen lange und gründlich auseinanderzusetzen.


    Um möglichst viele, schnelle und gute Ratschläge zu erhalten, sollte man seinen Code vor dem Posten wie folgt optimieren. Besser noch ist es, ein eigenständiges Beispielprogramm zu schreiben, das sich ohne weiteres kompilieren und ausführen lässt und das Problem demonstriert.


    Wem das zu umständlich oder zeitaufwendig ist, der hat sich offensichtlich selbst noch nicht lange genug mit dem Problem beschäftigt und sollte die Arbeit nicht auf andere übertragen.


    • Das Problem sollte detailliert beschrieben werden.


      [INDENT]- Was erwarte ich als Ausgabe?
      - Welche Ausgabe erhalte ich tatsächlich?
      - Wenn es eine Fehlerausgabe gibt, bitte immer die gesamte Fehlermeldung posten.[/INDENT]


    • Alles entfernen, was nicht zum Problem gehört.


      [INDENT]Alle Methoden/Funktionen/Variablen/Klassen/...,die das Problem offensichtlich nicht verursachen, gehören nicht in den Code. Nichtrelevante Methoden können dabei entweder gelöscht, oder durch Dummy-Methoden ersetzt werden.


      Im Zweifelsfall entfernt/ersetzt man eine Methode erst und prüft so, ob sie für den Schaden (mit)verantwortlich ist.


      Oft ist es am einfachsten, aus dem fehlerhaften Programmfragment ein eigenständiges Beispielprogramm zu machen und das dann zu posten. Oft findet man den Fehler dabei ganz von selbst. [/INDENT]


    • Man sollte den Code testen können.


      [INDENT]Am besten analysiert man ein Programm, indem man es laufen lässt. Der gepostete Code sollte ohne viel Arbeit mit copy&paste in einen Editor/IDE geladen und getested werden können.
      Bitte niemals Code direkt in den Beitrag schreiben, sondern erst testen und dann in den Beitrag kopieren! Nichts ist ärgerlicher, als wenn man Zeit an Programmcode verschwendet, weil sich irgendwo ein Flüchtigkeitsfehler eingeschlichen hat.


      Manchmal ist das Problem aber, das sich der Code eben nicht compilieren und ausführen lässt.In diesem Fall sollte man zumindest die genaue Fehlermeldung zum Artikel hinzufügen.


      Auf jeden Fall aber sollten externe Ressourcen, wie zum Beispiel eine Datei oder eine Datenbankverbindung, möglichst durch dummy-Funktionen ersetzt werden.[/INDENT]



    lg, bejo
    ---------------------
    kafkaesk

  • Trivial, aber viele (vor allem neue) Forenbesucher wissen das nicht:


    Wenn man in seinem Beitrag Programmcode oder sonst einen vorformatierten Text einfügen möchte, dann kann man ihn in das CODE tag einschliessen:


    Dieser Messagetext (ACHTUNG: ohne die '*' Zeichen!!)


    Code
    1. [*CODE]
    2. def quicksort(L):
    3. if len(L) > 1:
    4. pivot = random.choice(range(len(L)))
    5. elements = L[:pivot]+L[pivot+1:]
    6. left = [element for element in elements if element < L[pivot]]
    7. right =[element for element in elements if element >= L[pivot]]
    8. return quicksort(left)+[L[pivot]]+quicksort(right)
    9. return L
    10. [*/CODE]


    wird dann zu:



    Code
    1. def quicksort(L):
    2. if len(L) > 1:
    3. pivot = random.choice(range(len(L)))
    4. elements = L[:pivot]+L[pivot+1:]
    5. left = [element for element in elements if element < L[pivot]]
    6. right =[element for element in elements if element >= L[pivot]]
    7. return quicksort(left)+[L[pivot]]+quicksort(right)
    8. return L


    anstatt zu:


    def quicksort(L):
    if len(L) > 1:
    pivot = random.choice(range(len(L)))
    elements = L[:pivot]+L[pivot+1:]
    left = [element for element in elements if element < L[pivot]]
    right =[element for element in elements if element >= L[pivot]]
    return quicksort(left)+[L[pivot]]+quicksort(right)
    return L


    (letzeres führt meistens dazu, das der quellcode nur noch schwer zu entziffern ist.)

  • Q: Ich habe Arbeit. Könnt ihr die nicht für mich machen?
    A: Vielleicht, aber warum sollten wir?


    - Wir beantworten gerne konkrete Fragen, wenn wir die Antwort kennen.


    - Wir suchen und finden gerne Fehler, die sich in Deine Lösung eingeschlichen haben.


    - Wir helfen Dir, die Aufgabenstellung besser zu verstehen.


    - Wir verweisen Dich gerne auf andere Inhalte, die bei der Lösung helfen könnten.


    ABER:


    - Wir machen nicht Deine Hausaufgaben. Warum sollten wir auch?


    Wenn Du willst das jemand für Dich arbeitet, kannst Du ja versuchen ihn dafür zu bezahlen. Ein solcher Beitrag gehört dann aber bitte in ein anderes Forum und auch da schätze ich die Aussicht auf Erfolg eher gering ein.



    PS:
    Ist natürlich alles meine persönliche Ansicht, aber Ich denke das trifft auch die Meinung der übrigen Forenteilnehmer.