![]() |
Re: Die häufigsten Programmierirrtümer
ich denke, folgender nicht im Code zu findender Ausdruck sollte hier auch mit aufgenommen werden:
"Kein Problem, das hab ich in ner Stunde fertig." :-D |
Re: Die häufigsten Programmierirrtümer
Zitat:
Zitat:
Zitat:
|
Re: Die häufigsten Programmierirrtümer
"Ich glaube es läuft."
"Es kompiliert, also läuft es." [ot] Zitat:
|
Re: Die häufigsten Programmierirrtümer
Zitat:
|
Re: Die häufigsten Programmierirrtümer
Hier schon eher ein Irrtum als ein Fehler. Bisher wurden (fast) nur Fehler erwähnt.
Das trifft auf PHP zu:
Code:
$s = '0'; // hier wird der String '0' zugewiesen
if (!empty($s)) { // wird nicht aufgerufen } else { // trifft zu, da 0 = '0' = empty // wenn man den Datentyp nicht explizit abfragt } |
Re: Die häufigsten Programmierirrtümer
Zitat:
Code:
FehlerVerfänglich ist der Vergleich auf Referenzgleichheit der zufälligerweise wegen Caching zwischen -128 und 127 auch noch klappt... (verschiedene VMs verhalten sich nach 127 unterschiedlich...)
Integer i1 = 127;
Integer i2 = 127; System.out.println(i1 == i2); => true System.out.println(i1.equals(i2)); => true Integer j1 = 128; Integer j2 = 128; System.out.println(j1 == j2); => false System.out.println(j1.equals(j2)); => true |
Re: Die häufigsten Programmierirrtümer
Zitat:
![]() Allgemein nervt mich an Anfänger- oder einfach nur schlechten Programmen, wie mit den Rechnern der Benutzer umgegangen wird. Erst mal alles in die Registry speichern, dann Dateiarten-Verknüpfungen auf das eigene Progamm verstellen und (weil das erste Programm gleich als Shareware vertrieben wird) eine Datei im System verstecken. Wenn es eine Deinstallier-Funktion gibt, wird die Hälfte dieser Eingriffe nicht rückgängig gemacht. Der gefühlte Drang, das Programm mit Skin zu versehen, auch wenn der Benutzer mit Themes sowas auch selbst erledigen kann. Der Missbrauch von Steuer-Elementen. Der Einsatz von TComboBox mit csDropDown, ohne dass auf eingetippte Werte reagiert wird (auf csDropDownList setzen!). |
DP-Maintenance
Dieses Thema wurde von "mkinzler" von "Programmieren allgemein" nach "Klatsch und Tratsch" verschoben.
Passt hier besser |
Re: Die häufigsten Programmierirrtümer
Hallo,
Zitat:
Ich weiß nicht so genau, was der Unterschied zwischen Irrtum und Fehler ist in diesem Fall, aber einer der häufigsten (Der Häufigste?) Fehler ist auf jeden Fall folgendes. (In PHP)
Code:
Außerdem nicht zu vergessen der in C häufigste, älteste, bekannteste und gefährlichste Fehler: Der Buffer-Overflow!
$result = $database->query('SELECT ... FROM ... WHERE ... = ' . $_GET['arg']);
Liebe Grüße, Valle |
Re: Die häufigsten Programmierirrtümer
|
Re: Die häufigsten Programmierirrtümer
If then else Einrückung...
Mein Senf dazu...
Delphi-Quellcode:
Warum das ganz? ist doch klar! Ich erkenne am if und an der Position des 'then' schon ob es einen else-Teil gibt.// Einzeilige If's if bla then a := 'xyz'; // Wenn es ein else gibt dann immer! if bla then a := 'xyz' else a := 'zyx; // Mehrzeile If's if bla then begin a := 'xyz'; b := 'abc'; end; // Wenn es ein else gibt dann immer! if bla then begin a := 'xyz'; b := 'abc'; end else begin a := 'zyx'; b := 'cba'; end; Und zwar in einem range von 3x2 zeichen (von 'I' aus gerechnet) Besonders interessant: Wenn 'das was' im if then-Tteil steht so lang ist, dass das 'else' nicht mehr auf den Bildschirm passt.. Kommt logischerweise von den alten DOS zeigen 25 Zeilen 80 Zeichen...28 Jahre Programmierung haben auch einige Regeln hervorgebracht... :zwinker: Ach ja bitte keine Diskussion das man dann ne Procedure daraus machen soll... :wall: Und natürlich begin und end immer untereinander um die Zugehörigkeit sofort erkennen zu konnen... ------- Snip --------- mybool := (A=200); Würde ich nie machen... weil ich, wenn noch ein Zuweisung dazu kommen, dann doch wieder if then ele benötige... Mavarik :coder: |
Re: Die häufigsten Programmierirrtümer
... weil hier auch von Fehlern gesprochen wird ...
Als häufigste Anfangerfehler habe ich folgende beobachtet: - Semikolon bei nicht zusammengehörenden Anweisungen als Zeilenabschluss fehlt - Semikola in zusammengehörenden Anweisungen (z,B. Begin; ... End; - End. mehrfach im Programm - Prozeduren und Funktionen unterhalb des Hauptprogramms (Pascal) - Doppelte Bezeichner - Schreibfehler - Fehlende oder falsche Abbruchbedingungen für Schleifen - Anzahl von Begin und End stimmt nicht ... kann fortgestzt werden |
Re: Die häufigsten Programmierirrtümer
@Wolfgang Mix: Bitte keine Fehler auflisten. Davon habe ich genug gemacht.
(kein Smiley mit Opera 10.51 reinklickbar) |
Re: Die häufigsten Programmierirrtümer
Dachte ich eigentlich nur als Hilfe für Anfänger
Für meine eigenen Fehler reicht Daniels Speicher nicht :mrgreen: |
Re: Die häufigsten Programmierirrtümer
Also ich gebe Euch ja Recht, dass das kein schöner Stil sein mag - ein Fehler ist es jedoch nicht, im Hauptprogramm, also der .dpr-Datei, eine Prozedur anzulegen. Und wenn das anständig begründet wird und der Rest des Programms stimmig ist, dann wäre ich u.U. sogar bereit, auch im Hauptprogramm eine kleine - auch nur dort genutzte - Prozedur zu tolerieren.
Ich denke, wir driften jetzt in den sehr schwammigen Bereich der allgemeine Aussagen über guten und schlechten Stil. Bedauerlicherweise hat dieser Bereich eine sehr große Grauzone, die zu diskutieren hier kaum lohnt. |
Re: Die häufigsten Programmierirrtümer
Sorry, du hast Recht,
bleiben wir lieber bei Irrtümern wie
Delphi-Quellcode:
if eingabe = 7 or 13
|
Re: Die häufigsten Programmierirrtümer
Ich habe dafür noch was aus dem Bereich PHP.
Code:
Bedauerlicherweise schreibt PHP 5.x o.g. Zeichenfolge auf den Schirm, da ein leeres Array als Äquivalenz zu null gesehen wird. Man mag es noch so leidenschaftlich PHP vorwerfen, am Ende muss jedoch ich als Entwickler damit klar kommen und darf nicht dem Irrtum unterliegen, ich könnte auf die hier gezeigte Art und Weise zwischen einem nicht initialisierten und einem leeren Array unterscheiden.
$data = array();
if ($data == null) { echo 'na holla die waldfee'; } |
Re: Die häufigsten Programmierirrtümer
Zitat:
Das nach Begin oder Repeat ist nicht falsch, sondern optional. :angel2: Man macht da eigentlich keines hin, aber wenn dort Eines ist, dann ist es nicht verkehrt. Ebenso werden doppelte Semikola tolleriert. |
Re: Die häufigsten Programmierirrtümer
Du hast Recht, aber optisch nervt das schon
|
Re: Die häufigsten Programmierirrtümer
Zitat:
Was auch schön ist:
Delphi-Quellcode:
function GibMirNeStringlist : TStringList;
begin Result := TStringList.Create; try //bla blub finally Result.Free; end; end; |
Re: Die häufigsten Programmierirrtümer
Zitat:
Es werden übrigens nicht nur doppelte ignoriert, sondern alle > 1. Bzw. ignoriert ist nicht ganz richtig. Es handelt sich einfach um leere und somit überflüssige Anweisungen. Auch das kompiliert und funktioniert (so programmiert hoffentlich keiner von euch *g*):
Delphi-Quellcode:
Aber genug "OT". ;)
function GetAnswer: Integer;
begin ;;;;;;;;;;;;;;; ;; ;; ;;;;;; ;; ;; ;;;; ;;;;;;;;;;;;;;; ;; ;; ;; ;; ;; ;; ;; ;;Result := 42; ;;;;;; ;;;; ;; ;; ;; ;; ;;;;;;;;;;;;;;; ;; ;; ;; ;; ;; ;; ;; ;;;;;;;;;;;;;;; ;; ;; ;;;;;; ;;;;;; ;;;;;; ;;;; end; @Daniel: Stimmt, das Verhalten hätte ich auch nicht erwartet. |
Re: Die häufigsten Programmierirrtümer
Zitat:
Code:
if ($data === null)
{ echo 'na holla die waldfee'; } |
Re: Die häufigsten Programmierirrtümer
@Matze:
Mist, wieder 'mal geirrt :( |
Re: Die häufigsten Programmierirrtümer
habe leider noch nicht alles durchgelesen,
aber war der schon dabei?
Delphi-Quellcode:
[edit] hier ist durch das Semikolon (Leeranweisung) hinter dem do
begin
i:=0; while i < 10 do; begin memo1.Lines.add(IntToStr(i)); inc(i); end; end; eine Endlosscheife entstanden. Grüße Klaus |
Re: Die häufigsten Programmierirrtümer
Zwischendurch möchte ich euch um eines bitten:
Editiert bitte euren Beitrag noch einmel und zeigt auf, worin nun der Irrtum besteht. Sonst macht mir das Zusammenfassen 'ne Menge Arbeit. Ich bin halt kein Universalgenie. LG Wolfgang P.S.: Finde toll, wie gross das Interesse ist :) |
Re: Die häufigsten Programmierirrtümer
es wäre schön, wenn Du dich nicht nur auf Quelltextfehler beziehen würdest, sondern auch auf "Konstruktionsfehler"
ich mein, alle aufgezählten Fehler sind mehr oder weniger schnell durch den Compiler zu finden oder spätestens wenn das Programm eine Zugriffsverletzung meldet. Ist zwar vielleicht mal ein netter Zeitvetreib für die Mittagspause, aber nicht dazu geeignet, ein besserer Programmierer zu werden. Viel wichtiger finde ich solche Fehler einem Anfänger nahezubringen, nicht alles in die Button1 - Click Procedue zu schreiben. Nicht in "Blackbox" Systemen zu denken und stattdessen den gesamten Code in einen großen Spagettihaufen zu schmeißen. Oder noch nie was von dem MVC Modell gehört zu haben. Das finde ich viel wichtiger, als solche kleinen Syntaktischen Fehler, die sich mit jedem Debugger finden lassen, wenn das Programm nicht macht, was es soll ... Das Problem von Konstruktionsfehler ist nämlich, dass man erstmal schon ein recht gutes Stück weit kommen kann, aber irgendwann in eine Sackgasse landen wird. Denn aus einem VW Polo lässt sich nachträglich nicht mehr zu einem Porsche umbauen, das muss man vorher geplant haben, weil die Plattform dafür einfach nicht geeignet ist. |
Re: Die häufigsten Programmierirrtümer
falsch:
Delphi-Quellcode:
richtig:succ(zaehlervariable);
Delphi-Quellcode:
oder
zaehlervariable:=succ(zaehlervariable);
Delphi-Quellcode:
inc(zaehlervariable);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz