Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#35

Re: Prüfen ob Eingabefeld leer ist !?!

  Alt 5. Aug 2006, 18:27
Zitat von negaH:
Doch meiner Meinung nach schon. Es ist Effizienz in der Programmierung und transportiert wird das über den Stil. Es gibt also durchaus Programmierstile die weit effizienter als andere sind.
Stimmt zwar soweit, aber hier fehlt doch die allgemeinere Aussage, dass guter Stil immer = höhere Effizienz ist. Es gibt Stile (Existenquantor!) die ... Nicht alle guten Stile....

Zitat von negaH:
Die Effizienz zeigt sich in diesem Beispiel "Trim contra StringReplace" im Wissen des Programieres was für die geforderte Problemlösung das beste Mittel zum Zweck darstellt.
Sorry, aber das ist doch kein geschickt gewähltes Beispiel. Ich meine StringReplace macht etwas völlig anderes als Trim. Beides entspricht auch nur dem Aufruf einer Funktion. Ist es jetzt guter Stil die Funktion foo aufzurufen oder besser blubb? Das hat imho nichts mit Stil zu tun. Methoden (hier mal losgelöst von Objekten als allgemeines Wort für Funktion/Prozedur zu verstehen) die nicht vergleichbar sind (wie ebend StringReplace und Trim) haben keinen Einfluss auf den Codestil.

Vielleicht habe ich auch eine falsche Definition von gutem Stil (falls es eine einheitliche Definition gibt). Aber wenn ich alles OOP konform gestalte, dann habe ich ein Programm das OOP konform ist. Da wäre mir nicht klar dass alle OOP Programme einem Stil folgen. Ich denke mal ich muss mit dir da nicht über den Unterschied sprechen, der ist dir auch klar.
Guten Stil macht für mich die Lesbarkeit des Codes (im sehr Allgemeinen) an. Gute Lesbarkeit führt zu weniger Fehlern, robustem Code der leicht(er) wartbar ist.
Dazu ist ein guter Stil unabdingbar. Ich würde sagen guten Stil erkennt man unter anderem daran dass:
  • Ein Stil existiert (einheitlich über das ganze Projekt!)
  • Der Code überhaupt verstanden werden kann
  • Hierzu insbesondere sinnvolle Namen verwendet werden
  • Sauber eingerückt wird
  • Eine Anweisung pro Zeile verwendet wird
  • Parameter sauber qualifiziert werden (insbesondere auch Konstanten)
  • Entscheidungen erklärt werden
  • vieles vieles mehr

Es sind nur ein paar Punkte dessen, was man noch alles dazu zählen kann. Ob dabei dann 1000 LOC rauskommen oder 10 hat doch nichts mit dem Stil zu tun. Ich kann doch auch einen 1000 Zeilen Code auf 10 Zeilen bringen, dann steht einfach mehr in jeder Zeile, das ändert also nur die Lesbarkeit des Codes (und damit den Stil), die Effizienz verändert es gar nicht (ist ja der gleiche Code).

Zitat von negaH:
EIn guter Programmierstil wird also durchaus auf Grund von Effizienz eben Trim() benutzen statt StzringRepleace(). 1.) weil Trim() effizienter ist, 2.) weil Trim() ein annerkanntes PASCAL Ur-konstrukt ist, und 3.) ganz wichtig weil man viel effiztienter einen Source der Trim() benutzt verstehen kann.
Nun ja, ich benutze Trim eigentlich eher, weil ich alle Steuerzeichen am Anfang und Ende eines String entfernen möchte, aus keinem anderen Grund. Das ich nicht StringReplace verwende liegt daran, dass StringReplace dies gar nicht direkt leistet. Das Trim dabei sehr gut lesbar ist, ist ein schöner Nebeneffekt, aber mein Hauptgrund ist allein die Funktionalität (mir ist keine andere Funktion bekannt die gleiches leistet).
Würde ich trim nicht kennen, würde ich wohl eine Methode schreiben die eben diese Aufgabe erfüllt, klar ist der Code dann schon lesbarer, aber durch den Overhead einer weiteren Methode (mehr Zeilen, evtl. eine andere Unit und dann natürlich auch der Aufruf...) wird der Code nicht effizienter, nur besser im Stil.

Zitat von negaH:
Alleine der Punkt das es Programmier gibt die Trim() und StringReplace() kennen und andere kennen nur StringReplace() ist ein Effizienz-Kriterium. Derjenige der beides kennt, also mehr Wissen besitzt wird einen anderen Stil haben und gleichzeitig auch effizienter arbeiten können. Oder der Punkt das partout ein Programmierer sich nicht von erfahrenen Leuten überzeugen lasen möchte, er also die gemachten Argumente nicht wertfrei unter die Lupe nimmt, zeigt wie in-effizient dieser Programmierer sein wird. Er ist nicht willens sein Wissen zu erweitern, eben nicht effizient !
Wow, dass ist doch eine ganz andere Diskussion. Ist nicht so dass ich die nicht gerne führen würde, aber wir sind schon Offtopic genug.
Ich finde du würfelst hier (leider) sehr viel durcheinander. Das es Effiziente Programmierer gibt ist schon so ein Satz, der mir so gar nicht gefällt. Das klingt so, als ob man trivial die Effizienz eines Menschen bestimmen könnte. Gerade du weißt aber sicherlich auch, dass dies nicht so ohne weiteres möglich ist. Es gibt kreative Prozesse die da einfliessen. Über welchen Zeitraum misst man also die Leistung um die Effizienz einschätzen zu können? Und bist du bei all deinen Arbeiten gleich Effizient oder mitteln wir da einfach? (mich würde dann deine Standardabweichung interessieren )
Also ganz ehrlich, Leute die sich nicht helfen lassen wollen, da geb ich dir völlig recht, die nutzen keinem etwas. Natürlich werden die es nie weit bringen und schaden letztlich nur sich selbst.
Leute die ein gewissen Wissensstand noch nicht haben, können diesen aber noch erreichen. Natürlich gibt es immer Dinge die man noch nicht kennt. Niemand wird je alle Bibliotheken und Komponenten und ihre Möglichkeiten im Ganzen kennen. Und dann kommen auch ständig neue hinzu. Wichtig ist also, dass man nicht einzelne auswendig lernt, sondern erkennt wie man an fehlendes Wissen (bei Bedarf) ran kommt. Leute die das nicht schaffen werden sicherlich nie all zu gute Arbeiten leisten können. Aber es sind Menschen, sie haben also die Fähigkeiten dies zu erkennen und etwas zu ändern. Das sie nicht effizient sind klingt für mich eher danach, dass man sich einfach einen besseres anderes Modell nimmt.

Wie gesagt, guter Codestil (da stimme ich völlig mit dir überein) ist wichtig und hat natürlich auch etwas mit Disziplin zu tun. Jeder sollte aus sehr vielen Gründen auf eben diesen Stil achten und es ist nur von Vorteil. Wissen noch nicht zu haben ist keine Schande, nichts mehr lernen zu wollen schon!
Das sind alles Punkte in denen wir (soweit ich es sehe) völlig übereinstimmen. Aber wie im oberen Beispiel gezeigt, ich kann den gleichen Code in einem beliebigen Stil aufschreiben, es ändert nichts an seiner Effizienz.

Gruß Der Unwissende
  Mit Zitat antworten Zitat