Menü×

Der IT-Thread

  • Mod/RDW
    #1821 Sylvester 1 Nov. 2022, 14:16

    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.
    Ich hab hier einen Styleguide, der sagt, dass man nur ein return in einer Funktion haben darf. 🙃

  • Mod/RDW
    #1822 BigBANG 1 Nov. 2022, 14:18

    Zitat von: Hexley

    Ich hab hier einen Styleguide, der sagt, dass man nur ein return in einer Funktion haben darf. 🙃
    Direkt in den Ofne nei mit dem Styleguide.
    Findet der das geiler mit Einrückungen zu machen oder wie?

  • Mod/RDW
    #1823 Sylvester 1 Nov. 2022, 14:32

    Zitat von: BigBANG

    Direkt in den Ofne nei mit dem Styleguide.
    Findet der das geiler mit Einrückungen zu machen oder wie?
    Nö, wegen der Übersichtlichkeit nur ein return erlaubt.

  • #1824 Deleted member 1298 1 Nov. 2022, 14:34

    Zitat von: Hexley

    Nö, wegen der Übersichtlichkeit nur ein return erlaubt.
    Gud - dann schmeiß ich halt Exceptions und fang den Scheiss außerhalb auf, wenn du mir mein Return wegnimmst. 😠

    Edit: Mir ist grad wieder eingefallen, dass ich das tatsächlich häufig so mache. 😛

  • Mod/RDW
    #1825 Sylvester 1 Nov. 2022, 14:39

    Zitat von: ElFlero

    Gud - dann schmeiß ich halt Exceptions und fang den Scheiss außerhalb auf, wenn du mir mein Return wegnimmst. 😠

    Edit: Mir ist grad wieder eingefallen, dass ich das tatsächlich häufig so mache. 😛
    Exceptions sind auch böse - in C++. Sagen zumindest einige.

  • #1826 Deleted member 1298 1 Nov. 2022, 14:47

    Zitat von: Hexley

    Exceptions sind auch böse - in C++. Sagen zumindest einige.
    Nie jemand ghabt der C++ heißt. :D

  • Mod/RDW
    #1827 BigBANG 1 Nov. 2022, 14:49

    In C++ braucht man keine Exceptions, die User müssen mit den segmentation faults selbst klarkommen.

  • #1828 RichterinWinkelmann 1 Nov. 2022, 14:58

    Zitat von: Hexley

    Exceptions sind auch böse - in C++. Sagen zumindest einige.
    The runtime error detection is the programmers responsibility.🤡

  • #1829 Elon Nurz 1 Nov. 2022, 15:01

    Zitat von: BigBANG

    Direkt in den Ofne nei mit dem Styleguide.
    Findet der das geiler mit Einrückungen zu machen oder wie?

    Bin zwar schon lange kein C++ Programmierer mehr, aber auch in anderen Sprachen sollte man das übersichtlich halten. Kollege von mir liebt Routinen, in denen alles in mehreren hundert Zeilen Code abgehandelt wird. Zig verschachtelte Schleifen und Selektionen. Wollte schon mehrmals Spargelstecher werden, weil ich das Leid einfach nicht mehr ertragen konnte

  • #1830 Deleted member 1298 1 Nov. 2022, 15:05

    Zitat von: Emil Nurz

    Bin zwar schon lange kein C++ Programmierer mehr, aber auch in anderen Sprachen sollte man das übersichtlich halten. Kollege von mir liebt Routinen, in denen alles in mehreren hundert Zeilen Code abgehandelt wird. Zig verschachtelte Schleifen und Selektionen. Wollte schon mehrmals Spargelstecher werden, weil ich das Leid einfach nicht mehr ertragen konnte
    Solche Loide sollde man halt wirklich züchtigen dürfen.

    Schön mal Uncle Bob vorbeischicken, damit der regelt.

  • Mod/RDW
    #1831 BigBANG 1 Nov. 2022, 15:06

    Ich würde halt einfach die PRs rejecten und sagen er soll ein paar Youtube Tutorials schauen und freundlich erklären wie es sauberer geht.

  • #1832 Deleted member 1298 1 Nov. 2022, 15:09

    Zitat von: BigBANG

    Ich würde halt einfach die PRs rejecten und sagen er soll ein paar Youtube Tutorials schauen.
    Hab ich tatsächlich schon gemacht, Stimmung im Team dann massiv gekippt, PMs waren auf der Seite von denen die a weng Scheißcode abgeliefert und rum geheult haben - seitdem gebe ich einen Fick darauf. Dann dauern meine CR's halt länger und meine Schätzungen werden höher. Wird vllt. bei einem anderen Arbeitgeber mal anders gemacht.

    Räume nicht mehr den Müll von anderen auf. Ich klemm mein Zeug halt irgendwie rein, dass es sauber ist und schiebe alle Fehler die aus altem Code kommen weiter. Hab sogar stellenweise erzwungen, dass ich alleine an einem Backend arbeite, weil ich so schneller bin, als wenn ich drei unfähige Kollegen an der Seite habe.

    "Melden macht frei" ist dahingehend eine Devise mit der ich sehr gut fahre.

  • #1833 Pedder 1 Nov. 2022, 15:11

    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.

    Zitat von: Hexley

    Nö, wegen der Übersichtlichkeit nur ein return erlaubt.
    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

  • Mod/RDW
    #1834 BigBANG 1 Nov. 2022, 15:22

    Zitat von: ElFlero

    Hab ich tatsächlich schon gemacht, Stimmung im Team dann massiv gekippt, PMs waren auf der Seite von denen die a weng Scheißcode abgeliefert und rum geheult haben - seitdem gebe ich einen Fick darauf. Dann dauern meine CR's halt länger und meine Schätzungen werden höher. Wird vllt. bei einem anderen Arbeitgeber mal anders gemacht.
    Natürlich ist das Management auf der Seite derjenigen, die weniger Zeit in guten Code investieren wollen. Je schneller es geht, desto besser.
    Ich würde solche Umgebungen vermeiden. Das Problem ist nämlich: wenn du lange genug in einen Abgrund schaust, schaut er auch in dich hinein.

    Wenn du nur noch in einer Legacy-Hölle codest und alle PRs auch nur Legacy-Teppichflickereien sind, wird man irgendwann selbst zum Legacy-Teppichflicker.
    Am besten ist es, wenn man Kollegen hat, die besser als man selbst programmieren. Dann kann man wachsen.
    Meine persönliche Devise, um nicht zum Legacy-Teppichflicker zu werden:
    Immer die modernste IDE verwenden mit den besten Code-Vorschlägen. (Ich habe durch JetBrains viel gelernt).
    Immer den aktuellsten Design Patterns Guide der Sprache gelesen haben, die man gerade programmiert.

    Aber am allerbesten lernt man natürlich von anderen (guten) Devs.

  • #1835 Rollatormann 1 Nov. 2022, 15:39

    Zitat von: BigBANG

    Ich habe aber kein Interesse daran eine Führungskraft zu sein. Das ist ein komplett andere Disziplin als zu programmieren. Ich möchte weiterhin dieselbe Hinregion wie beim Programmieren verwenden. Das ist der Bereich, den ich seit Jahren trainiere und mich darauf spezialisiere.
    Wenn ich Führungskraft sein wollen würde, müsste ich das alles über den Haufen werfen und mich mehr auf Softskills konzentrieren.

    Bin mit meiner Führungsposition sehr zufrieden. Ist viel Planung und Koordination, aber wenn das Team dann bescheid weiss, kann ich an meinen eigenen Tasks arbeiten ohne gesagt zu bekommen dass ich jetzt diesen Task abzuarbeiten hab - wenn du verstehst.
    Hab ich keinen Bock, mach ich ein Nickerchen - ist ja niemand da der mir etwas sagt. Falls doch jemand etwas von mir wollte, ja lel Meeting bitte, darauf steht ihr Management Heinis doch so sehr.

    Wenn etwas brennt ist 9-5 natürlich Geschichte, dann gibt es keinen Lead der dir die Arbeit im Zweifel abnimmt oder reassigned, da wird dann halt auch mal ein Wochenende oder bis 3 Uhr morgens durchgearbeitet.

    Aber im großen und ganzen ist das schon 1 nice Gschicht.

  • #1836 pump3 1 Nov. 2022, 16:09

    Zitat von: BigBANG

    Direkt in den Ofne nei mit dem Styleguide.
    Findet der das geiler mit Einrückungen zu machen oder wie?
    Kompromiss:
    C++:
    void bigBangTrigger(const& mytype in_param1, const int &in_param2, int &out_param1)
    {
        out_param1 = calculateSachen(in_param1, in_param2)
    }
    0 returns, alles über nebeneffekte gelöst

    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
    Das ist doch behindert.
    Einfach einen BitVector und dann ein Case-switch statement der die einzelnen bits checkt. (nicht zu verwechseln mit bitchchecker) item1, item2... sind dann einfach die positionen im Vector.

  • #1837 Rollatormann 1 Nov. 2022, 16:23

    outparams ins glas

  • #1838 Karl Klammer 1 Nov. 2022, 16:40

    Wie ich mir vorstelle wie sie gucken wenn ich berichte wo's klemmt und dingst

    Drachenlord-Reaktion-Kampfansage.gif

  • #1839 Karl Klammer 1 Nov. 2022, 16:56

    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.
    Da steht aber Code C#
    🤔

  • #1840 Gelöschtes Mitglied 1510 1 Nov. 2022, 16:58

    was macht ihr da eigentlich