Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von BeefyX.
Gurkencode ??
Was versteht ihr immer unter Gurken Code ??
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Chrisber“ ()
Na irgendwas zusammen gefrickeltes, was irgendwie das macht was es soll, aber null Struktur oder Übersicht hat und zudem auch Fehleranfällig sein kann wenn nur ein Faktor nicht übereinstimmt oder so.
Und wir würde (@Dodo) deiner meinung nach ein Ansändiger (nicht Gurkencode) aussehen ?
Richtig halt, das kann man Pauschal nicht sagen, einfach gut durchdtachter objekt orientierter Code. Keine alles umfassende Try-Catches, Funktionen und Klassen benutzen um Code der mehrfach ausgeführt wird nur einmal geschrieben werden muss.
Schlimmes Beispiel:
VB.NET-Quellcode
PublicClass Form1
DimWithEvents Tmr AsNewTimer
PrivateSub Form1_Load(ByVal sender AsObject, ByVal e As EventArgs) HandlesMyBase.Load
Tmr.Interval =1
Tmr.Enabled =True
EndSub
PrivateSub tmrtick(ByVal sender AsObject, ByVal e As EventArgs) Handles Tmr.Tick
If TextBox1.Text ="Hallo!"Then
MsgBox("du hast Hallo eingegeben")
Tmr.Enabled =False
EndIf
EndSub
EndClass
Da fehlt noch irgendwas mit String mit denen Gerechnet wird.
..oder
VB.NET-Quellcode
Form1.TextBox.Enabled =False
Hi
was unbedingt zu empfehlen ist, ist On Error GoTo...
Auch humorvoll:
VB.NET-Quellcode
Try
Dimint(3) AsInteger
For i AsInteger=0Toint.Length
int(i) = i
Next
Catch
EndTry
auch hübsch anzusehen, kann sogar in manchen Fällen funktionieren, führt aber vmtl. in den meisten Fällen nicht zur gewünschten Addition der TextBox-Inhalte.
Also zählt auf jeden Fall dazu, was zwar (in den meisten Fällen) funktioniert, aber so niemals umgesetzt würde, weil es einfach.. naja Gurkencode ist.
Auflösen tut man sowas übrigens durch logisches Nachdenken über Fälle, die gar nicht eintreten können (wie z.B. Elemente mit i = int.Length), was man tut (Operator+, der nur 2 Parameter hat und daher immer einen neuen Wert erzeugt) und das vmtl. wichtigste Erfahrung, die man sammelt, indem man z.B. nachliest, wie etwas funktioniert, kritisiert wird oder Kritik an den Codes Anderer liest. Zudem empfiehlt sich die Verwendung von Option Strict On.
Du sprichst ein wichtiges Thema an. Ein guter Gurkensalat sieht ansprechend aus, ist lecker und gesund (wie die Gurke selbst). Der Code den wir mit Gurkencode bezeichnen hat das alles nicht. Einzig der Nährwert ist in etwa vergleichbar.
Theoretisch müsste man Sch...Code sagen, aber selbst Sch... ist ein prima Dünger, während viele Codeverbrechen hier im Forum noch nicht mal als Dünger taugen.
Ich hab hier auch schon mal ein Bisschen meinen Senf abgegeben: Was geht gar nicht?
Oder wie hier jemand in der Signatur hat:
My.Computer.IchVerwendeImmerMyWeilIchDieDotNetKlassenNichtKenne.GibDasABCInEinerMessageBoxAus
(oder so ähnlich, ich kanns nicht komplett auswendig).
Da wir gerade beim Essen sind:
Es gibt auch Spagetticode.
Alles hinter einander weg, mit wenig oder keiner Struktur.
Dies ist allerdings historisch gewachsen und kommt aus einer Zeit, als es noch keine OOP gab und als die Bytes gezählt wurden, um RAM zu sparen.
Ein compiliertes Maschinenprogramm ist im Prinzip Spagetticode.
Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter(der ist verfügbar). Programmierfragen über PN / Konversation werden ignoriert!
Tomatencode: s1.directupload.net/images/120327/zy5dqlxn.png
Wir können hier bald schon einen leckeren Salat machen. Ein paar Kohlköpfe werden sich sicherlich auch noch finden lassen. :)
Ich glaube kaum, dass man aus Spaghetti Salat machen kann
Können tut man das schon, nur ob das im Nachinein auch schmeckt ist ne andere Frage.
Ich habe gerade ein wunderbares Beispiel gefunden was man als Gurkencode bezeichnen kann
VB.NET-Quellcode
DateTime.Now.ToString.Split(CChar(" "))(1)
Hierbei wird versucht die aktuelle Uhrzeit zu bekommen. Sicherlich mag es funktionieren, aber alleine das Betrachten verursacht schon Magenschmerzen. Also entweder die Formatierung bie ToString() nutzen ("HH:mm:ss") oder die fertige Methode Now.ToShortTimeString().
Somit kann man als Definition von Gurkencode z.B. sagen das man über Biegen und Brechen irgendein Code zusammen wurschtelt, der vlt. das gewünschte Ergebnis erzielt, jedoch nicht gerade das optimum ist.
Hm.
Siehe dritten Edit: Klick
Macht das, was es soll, ist aber nicht das Optimum.