Menü×

Der IT-Thread

  • #1841 RichterinWinkelmann 1 Nov. 2022, 17:00

    Zitat von: Goochi

    was macht ihr da eigentlich
    Wächterklauseln diskutieren

  • #1842 Karl Klammer 1 Nov. 2022, 17:00

    Schwulitäten mit Gombjudern

    e: oder so

  • #1843 Deleted member 1298 1 Nov. 2022, 17:40

    Zitat von: Qu4rkey

    Da steht aber Code C#
    🤔
    Jonge, da mussst du abstrahieren ABSTRAHIEREN - ferstehst du?

    Übertrag es einfach mental in Python, so läuft das später auch - kannst du eine Sprache, kannst du alle.

  • Mod/RDW
    #1844 BigBANG 1 Nov. 2022, 18:06

    Zitat von: Qu4rkey

    Da steht aber Code C#
    🤔
    Sprache ist in dem Fall egal, jede Sprache hat verschachtelte if-Anweisungen.

    edit: ElFero schrieb es bereits.

  • #1845 Gelöschtes Mitglied 1510 1 Nov. 2022, 18:14

    Zitat von: RichterinWinkelmann

    Wächterklauseln diskutieren
    wenn ich hier neischau un ihr nerds über codes un phytons diskutiert hab ich dieses bild von den 4 spacken vor augen ihr wassd scho... naja weitermachrn was auch immer junge wenn ich m1 nächsten laptop kauf komm ich auf oich zurückk

  • #1846 Rollatormann 1 Nov. 2022, 18:36

    Zitat von: BigBANG

    Keine Ahnung, ob das für dein Problem relevant ist, aber ich würde sowas:
    C#:
    if (a == 1) {
        if (b == 1) {
            if (c == 1) {
                penis();
            }
        }
    }

    Immer ersetzen mit:
    Code:
    if (a != 1) return;
    if (b != 1) return;
    if (c != 1) return;
    penis();

    Einrückungen wenn möglich immer vermeiden.
    warum nicht
    C#:
    if(a != 1 || b != 1 || c != 1) return;
    sobald a eintritt wird b und c eh nicht mehr evaluiert.

  • Mod/RDW
    #1847 Sylvester 1 Nov. 2022, 19:10

    Zitat von: Pedder

    Verwende tatsächlich auch nie Exceptions in C++. Hab eine Weile lang viel mit der Unreal Engine gearbeitet und da gibt es weder Exceptions noch RTTI also kein dynamic_cast und fand das auch nicht so schlimm. Dokumentation gibt es halt keine, was sehr nervig ist.


    Oge hier ist dein übersichtlicher Code:
    Python:
    def foo(bar):
        result = None
        if bar.bar:
            if bar.bar.baz:
                result = bar.bar.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()
            else:
                if aaaaa(foobar):
                    if barbaz(bar):
                        if foobaz:
                            if bazbar:
                                if bar1:
                                    if not bar2 and foobarbaz:
                                        for item in bar.foolist:
                                            if item == bar:
                                                for item2 in item.foo:
                                                    if item2.bar:
                                                        result = item2
                                    elif foooo(bar):
                                        for item in bar.foolist2():
                                            if item == bar:
                                                for item2 in item.foo:
                                                    if item2.bar:
                                                        result = item2
        return result
    Tatsächlich eher so:
    C++:
    bool val = true;
    if(res == 1)
    {
        val = doSomething();
    }
    
    if(val && (res2 == 1))
    {
        val = doSomethingElse();
    }
    
    return val;

    Aber schrabadaba, ich programmier auch seltenst so. Ich wollte nur anmerken, dass es solche Styleguides gibt.

  • #1848 pump3 1 Nov. 2022, 22:10

    Mir ist grade eingefallen:
    Man könnte das ganze auch über einen Bloomfilter und case-switch statement lösen.

    Wollte ich nur kurz anmerken

  • #1849 Karl Klammer 2 Nov. 2022, 12:30

    Zitat von: Hetzer-chan

    Gruselig, hab das gleiche Video in einem Tab offen.
    und wie weit bist du?

  • Mod/RDW
    #1850 BSKartoffel 2 Nov. 2022, 13:50

    Zitat von: BigBANG

    Keine Ahnung, ob das für dein Problem relevant ist, aber ich würde sowas:
    C#:
    if (a == 1) {
        if (b == 1) {
            if (c == 1) {
                penis();
            }
        }
    }

    Immer ersetzen mit:
    Code:
    if (a != 1) return;
    if (b != 1) return;
    if (c != 1) return;
    penis();

    Einrückungen wenn möglich immer vermeiden.
    Halt stop, da geh ich net mit. Ich hasse Leute die beide Kombinationen vermischen und in RL Szenarien kannst du nie ausschließlich ohne Einrückungen arbeiten.

  • #1851 Deleted member 1298 2 Nov. 2022, 13:54

    Zitat von: BSKartoffel

    Halt stop, da geh ich net mit. Ich hasse Leute die beide Kombinationen vermischen und in RL Szenarien kannst du nie ausschließlich ohne Einrückungen arbeiten.
    Was meinst du? Im Beispiel von @BigBANG braucht man keine Einrückungen, weil ja alles sequentiell aufgerufen wird. Das ist auch meines Erachtens nach die sauberste und lesbarste Form.

  • Mod/RDW
    #1852 BSKartoffel 2 Nov. 2022, 13:55

    Zitat von: ElFlero

    Was meinst du? Im Beispiel von @BigBANG braucht man keine Einrückungen, weil ja alles sequentiell aufgerufen wird. Das ist auch meines Erachtens nach die sauberste und lesbarste Form.
    Das ist ja auch nur n Codeschnipsel und kein 1000 Zeilen langer Code aus einem Produktivsystem

  • #1853 Deleted member 1298 2 Nov. 2022, 14:08

    Zitat von: BSKartoffel

    Das ist ja auch nur n Codeschnipsel und kein 1000 Zeilen langer Code aus einem Produktivsystem
    Natürlich - ich schneide die Funktionen dann eben nur so klein, dass es letztlich trotzdem so umgesetzt werden kann.

    Mache das auch bei den if-Clauses - wenn man sowas hat:

    C#:
    if (women.isCrazy && women.isHot) penis();

    Einfach in eine Methode auslagern und lesbarer machen. (Mir ist klar, dass das jetzt a weng ein dommes Incel-Beispiel ist, dass zudem zu simple ist - aber der Grundgedanke sollte durchkommen.)

    C#:
    public bool isWomenCrazyAndHot(women)
        => women.isCrazy && women.isHot;
    
    if(isWomenCrazyAndHot(women)) penis();

  • Mod/RDW
    #1854 BSKartoffel 2 Nov. 2022, 14:15

    Zitat von: ElFlero

    Natürlich - ich schneide die Funktionen dann eben nur so klein, dass es letztlich trotzdem so umgesetzt werden kann.

    Mache das auch bei den if-Clauses - wenn man sowas hat:

    C#:
    if (women.isCrazy && women.isHot) penis();

    Einfach in eine Methode auslagern und lesbarer machen. (Mir ist klar, dass das jetzt a weng ein dommes Incel-Beispiel ist, dass zudem zu simple ist - aber der Grundgedanke sollte durchkommen.)

    C#:
    public bool isWomenCrazyAndHot(women)
        => women.isCrazy && women.isHot;
    
    if(isWomenCrazyAndHot(women)) penis();
    Ja natürlich geht das technisch. Finde es nur übelst unleserlich und macht mich immer übel mett xD

  • #1855 Deleted member 1298 2 Nov. 2022, 14:18

    Zitat von: BSKartoffel

    Ja natürlich geht das technisch. Finde es nur übelst unleserlich und macht mich immer übel mett xD
    Was wäre deine leserliche Form? Finde es total simple und lesbar wie ein regulären Satz - sobald was schachtelt muss man doch übel springen. Also ich mein das konstruktiv - vllt. übersehe ich auch was.

  • #1856 RichterinWinkelmann 2 Nov. 2022, 14:20

    Zitat von: ElFlero

    Natürlich - ich schneide die Funktionen dann eben nur so klein, dass es letztlich trotzdem so umgesetzt werden kann.

    Mache das auch bei den if-Clauses - wenn man sowas hat:

    C#:
    if (women.isCrazy && women.isHot) penis();

    Einfach in eine Methode auslagern und lesbarer machen. (Mir ist klar, dass das jetzt a weng ein dommes Incel-Beispiel ist, dass zudem zu simple ist - aber der Grundgedanke sollte durchkommen.)

    C#:
    public bool isWomenCrazyAndHot(women)
        => women.isCrazy && women.isHot;
    
    if(isWomenCrazyAndHot(women)) penis();
    Finde das 2. jetzt auch nicht unbedingt lesbarer, weil Du ja mindestens an so nem Funktionsbaum dich langhangeln musst, die ja auch gerne dann mehrere Funktionen aufrufen.

  • #1857 RichterinWinkelmann 2 Nov. 2022, 14:21

    Mal von PERFORMANCE Gründen abgesehen. 🤡

  • #1858 Deleted member 1298 2 Nov. 2022, 14:21

    Zitat von: RichterinWinkelmann

    Finde das 2. jetzt auch nicht unbedingt lesbarer, weil Du ja mindestens an so nem Funktionsbaum dich langhangeln musst, die ja auch gerne dann mehrere Funktionen aufrufen.
    Was ist die Alternative - 20 Conditions in ein If-Statement packen? Da hangel ich mich lieber an 20 Funktionen mit korrekter Benennung runter, die mir exakt sagen, was diese Methode tut.

  • #1859 Deleted member 1298 2 Nov. 2022, 14:22

    Zitat von: RichterinWinkelmann

    Mal von PERFORMANCE Gründen abgesehen. 🤡
    Das ist jetzt nicht ernsthaft ein Argument? :D

  • Mod/RDW
    #1860 BigBANG 2 Nov. 2022, 14:27

    Zitat von: BSKartoffel

    Halt stop, da geh ich net mit. Ich hasse Leute die beide Kombinationen vermischen und in RL Szenarien kannst du nie ausschließlich ohne Einrückungen arbeiten.
    Es geht nicht darum Einrückungen zu verbieten, sondern Einrückungen zu vermeiden.
    Sowas:
    C#:
    void Penis() {
        if (a == 1) {
            a += 2;
            hallo(a);
        }
    }

    Ist unleserlicher als sowas:
    C#:
    void Penis() {
        if (a != 1) return;
        a += 2;
        hallo(a);
    }