Login
Newsletter
Werbung

Thema: AJAX-Bibliothek der Telekom als Sourceforge-Projekt

5 Kommentar(e) || Alle anzeigen ||  RSS
Kommentare von Lesern spiegeln nicht unbedingt die Meinung der Redaktion wider.
0
Von anyoneirgendwer am Mi, 21. Januar 2009 um 20:46 #
Ich würde jetzt gerne wissen, was daran schlimm ist, wenn er in einer if 30 Zeilen hat, in der else dann aber nur eine.
Kannst du mir das erklären?
[
| Versenden | Drucken ]
  • 0
    Von LH am Mi, 21. Januar 2009 um 21:56 #
    Relativ einfach. Er könnte problenlos schon am Anfang die Prüfung mit auf den negativ fall durchführen, und wenn dieser eintritt, die Funktion verlassen.
    Das Spart einem eine Verschachtelung für den Rest der Funktion. Es macht den Quellcode deutlich übersichtlicher.
    Man mag jetzt meinen das sei unwichtig, aber wenn man schon eine so kleine Lib veröffentlicht, dann doch wenigstens sauber und aufgeräumt. Welchen Eindruck hinterlesst den sowas bitte?

    Bei Heise gab es dazu auch einige Threads mit weiteren Beispielen.

    [
    | Versenden | Drucken ]
    • 0
      Von nixfürungut am Do, 22. Januar 2009 um 00:08 #
      Welchen Eindruck hinterlesst den sowas bitte?

      Hammer, den muss ich mir merken!

      [
      | Versenden | Drucken ]
      0
      Von Ebula am Do, 22. Januar 2009 um 10:00 #
      anders herum kann man aber auch sagen, das eine Funktion nur einen Exitpunkt haben sollte, weil das macht Code auch dahin gehend besser,das man durch die Struktur Fehler vermeidet, weil eine klare Line vorhanden ist. Laufzeit technisch macht es kein unterschied, wenn man den negativen Fall zu erst abprüft.

      Das nur mal so als Gedankengang, was gut oder schlechter Code. Das was für einen gut ist, ist für den anderen Chaos

      [
      | Versenden | Drucken ]
      • 0
        Von LH am Do, 22. Januar 2009 um 10:46 #
        Ich gebe dir Grundsätzlich recht das es Situationen gibt in denen es nicht angebracht ist einzig auf die Verschachtelung zu achten, aber in diesem Fall bin ich absolut der Meinung das die Struktur nicht sinnvoll ist.

        Zumal, wenn man sich den rest des Quellcodes ansieht, deutlich wird das wir hier nicht mit einem Code zu tun haben der absolut einer logischen Linie folgt.
        Ich habe den Quellcode mal überflogen, und etwa 20 Stellen gefunden die ich als unschön oder gar falsch ansehen würde. Sprachvermischungen, unklare Variablennamen, unschöne Strukturen und co. sind in dem Quellcode leider mehrfach zu finden, ebenso rein deutsche Fehlermeldungen.
        Ich bin mir auch bei meinem Beispiel oben sicher das die Entscheidung nicht, wie bei dir angenommen, aus dem Gedanken der Anzahl der Ausstiegspunkte erfolgt ist, sondern rein weil es so schnell geschrieben war.

        Ein Zitat das mir dazu aus einem Coding Styleguide des Linux Kernels einfällt:

        "The answer to that is that if you need more than 3 levels of indentation, you're screwed
        anyway, and should fix your program."

        Übrigens wiedersprechen sich deine Aussage und meine an sich auch nicht. Auch hier gibt es Beispiele im Coding Styleguide.


        int fun(int )
        {
        int result = 0;
        char *buffer = kmalloc(SIZE);

        if (buffer == NULL)
        return -ENOMEM;

        if (condition1) {
        while (loop1) {
        ...
        }
        result = 1;
        goto out;
        }
        ...
        out:
        kfree(buffer);
        return result;
        }

        Ein frühes prüfen der Grundwerte um eine unnötgie Verschachtelung zu vermeiden, aber dennoch für die spätere Nutzung in der Funktion ein gemeinsamer Ausstiegspunkt, hier allerdings über Goto gelöst.

        Allerdings, wie gesagt glaube ich nicht das sich der Entwickler solche Gedanken darüber gemacht hat.

        [
        | Versenden | Drucken ]
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung