C# zum Gruseln | Oliver Sturm



Immer nur schönen Code schreiben kann ja jeder. Hm, vielleicht auch nicht. Über schaurigen Code lachen können wir jedenfalls alle gut, aber manchmal ist darüber nachdenken doch hilfreich. In diesem Talk spricht Oliver Sturm (DevExpress) um Anti-Patterns und andere Konstrukte, die dem C#-Programmierer so richtig einen Schreck einjagen können. Gelacht wird auch, ganz sicher!

Die BASTA! ist seit 20 Jahren die führende unabhängige Konferenz für Microsoft-Technologien, JavaScript, C#, dem.Net Framework sowie Webtechnologien.

Tickets und weitere Informationen unter:
https://basta.net/

10 Comments

  1. Sowas wie in 18:23 mache ich manchmal, wenn ich nur für false oder true einen Marker für den Debuger brauche und dann sofort erkennen kann, was als Nächstes passiert.
    if (1==3)
    return true;
    else
    return false;

  2. Er hat quasi wortwörtlich erklärt, warum der Programmierer nicht foraech nehmen konnte, nämlich wegen des as-Casts, und schließt seine Argumentation damit ab, dass der Code vermutlich falsch ist 🙈.
    Bei den Booleans (ich meine natürlich bools) hat er nullable bools (bool?) komplett ignoriert. Bei nullable bools ist ein Vergleich auf voll nämlich durchaus wichtig (inklusive der Schriebweise "true == sthg", statt "sthg == true" denn "sthg = true" ist sowohl gültig als auch bool!). – Als das angesprochen wurde, wusste er nichtmal was das ist!
    Im übrigen ist ein Vergleich per Definition kommutativ, ich habe ernsthaft nicht verstanden was an "1 == myValue" falsch sein soll, insbesondere welche "fallacy" damit einhergeht.

  3. Naja, wenn ich schon hier ein Beispiel nach dem anderen durch den Kakao ziehen ( auch wenn sie teilweise wirklich gruselig sind ), dann sollte man es im Anschluss wenigstens richtig zeigen.. sonst ist sowas verschwendete Lebenszeit für mich… Es gibt Leute, denen wurde es halt so gezeigt.. die wissen es nicht besser… so wie der Herr Sturm mit Sicherheit auch nicht alles weiß. Allein die Behauptung, dass es nur im .NET BOOL-Werte gibt, zeigt den Tellerrand von Wissen über andere Programmiersprachen. uninteressant…

  4. Toller Talk. Danke dafür. Schon das erste Beispiel if (myBooleanVariable != false) hat mir Phantomschmerzen bereitet 🙂 Genau solchen Code habe ich schon in manchen Projekten gesehen. Das ist natürlich total verschwurbeltes C#-Rauschen und auch logischer Schrott. Ich weiß wirklich nicht, ob das von Kollegen mit sadistischen Anwandlungen absichtlich in den Code eingebracht wird… FAKT: Entweder etwas ist wahr oder falsch. Ich muss – egal in welcher Form – nicht mit false oder true vergleichen. Ist true jetzt wirklich true oder eventuell doch auf mir nicht begreifliche, magische Weise false? Leute, die sowas schreiben, sollten sich angewöhnen, sinnvolle Namen zu vergeben.

  5. 7:20 Das würde ich so verstehen, dass myBooleanVariable typischerweise false ist, und nur falls es ausnahmsweise nicht false ist, soll die Klammer ausgeführt werden. Wenn das so ist, ist die gewählte Formulierung m.E. sogar viel besser lesbar/verständlich als ein einfaches if(myBooleanVariable) (< weil daraus nicht ersichtlich ist, dass der Umstand, dass myBooleanVariable != false ist, etwas "besonderes" ist).

  6. Äh …. 'Negate' macht nicht -n, sondern ~n.

    Wenn man spotten möchte, dann sollte man nicht den Fehler machen selbst Quatsch zu erzählen.

Leave a Reply

© 2023 53GB