Menü×

Der IT-Thread

  • #1861 Lyoner 2 Nov. 2022, 14:29

    Zitat von: BigBANG

    Es geht nicht darum Einrückungen zu verbieten, sondern Eindrü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);
    }
    Mir egal, hab beide male nur Penis verstanden

  • #1862 Hetzer-chan 2 Nov. 2022, 14:39

    Zitat von: Qu4rkey

    und wie weit bist du?
    Noch nicht so weit, hab die ersten Kapitel geschafft, aber dann wieder mehr mit Arbeit zu tun gehabt. Wirkt aber bislang einfacher als angenommen.

  • #1863 RichterinWinkelmann 2 Nov. 2022, 14:41

    Zitat von: ElFlero

    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.
    Naja, wenn es so viele sind kann man das schon in eine function checkConditions() oder so verpacken, aber finde ich jetzt bei
    Code:
    if (a && b && c) {
        penis()
    }
    unnötig.

  • #1864 Karl Klammer 2 Nov. 2022, 14:49

    Zitat von: Hetzer-chan

    Noch nicht so weit, hab die ersten Kapitel geschafft, aber dann wieder mehr mit Arbeit zu tun gehabt. Wirkt aber bislang einfacher als angenommen.
    Man muss halt die Grundlagen erst einmal verinnerlichen, aber wenn man dann sieht, dass eigene Spielereien funktionieren bzw man ein bestehendes Brojeggd mehr und mehr ausbauen kann, ist das schon geil.

    Kann auch dieses neunteilige Tutorial wärmstens empfehlen:



    Die einzelnen Videos sind immer so 10-20min lang, aber es wird eben nicht nur prüde erklärt sondern fortlaufend anhand eines widdsichen Verkaufsbot gezeigt, was man so alles einbauen kann.

  • #1865 pump3 2 Nov. 2022, 14:50

    Zitat von: ElFlero

    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.
    Ich wiederhole mich ungerne aber wenn es nur um binäre konditionen geht, als a == true bzw a==false, dann ist ein bitvector mit switch-case statement vermutlich das beste.
    C++:
    bool a;
    bool b;
    bool c;
    bool d;
    std::Vector<bool>[3] bitvec;
    
    
    
    switch (bitvec)
    {
        case 1000: //a==true, alles andere false
            blabla...;
        case 1100: //a== true, b==true, alles andere false
            bla;
        case 1001: //a== true, b,c ==false, d==true
            ...
    }

  • #1866 RichterinWinkelmann 2 Nov. 2022, 14:53

    Zitat von: pump3

    Ich wiederhole mich ungerne aber wenn es nur um binäre konditionen geht, als a == true bzw a==false, dann ist ein bitvector mit switch-case statement vermutlich das beste.
    C++:
    bool a;
    bool b;
    bool c;
    bool d;
    std::Vector<bool>[3] bitvec;
    
    
    
    switch (bitvec)
    {
        case 1000: //a==true, alles andere false
            blabla...;
        case 1100: //a== true, b==true, alles andere false
            bla;
        case 1001: //a== true, b,c ==false, d==true
            ...
    }
    Wenn Du dann ein Array mit 20 Feldern hast, und daraus tatsächlich modular was auslesen willst, statt entweder nur alles 1 = gut, sonst = schlecht, ist das ja mal das ultimative in Unübersichtlichkeit, oder?

  • #1867 Karl Klammer 2 Nov. 2022, 14:56

    image.png

  • #1868 Deleted member 1298 2 Nov. 2022, 15:01

    Zitat von: pump3

    Ich wiederhole mich ungerne aber wenn es nur um binäre konditionen geht, als a == true bzw a==false, dann ist ein bitvector mit switch-case statement vermutlich das beste.
    C++:
    bool a;
    bool b;
    bool c;
    bool d;
    std::Vector<bool>[3] bitvec;
    
    
    
    switch (bitvec)
    {
        case 1000: //a==true, alles andere false
            blabla...;
        case 1100: //a== true, b==true, alles andere false
            bla;
        case 1001: //a== true, b,c ==false, d==true
            ...
    }
    Zitat von: RichterinWinkelmann
    Wenn Du dann ein Array mit 20 Feldern hast, und daraus tatsächlich modular was auslesen willst, statt entweder nur alles 1 = gut, sonst = schlecht, ist das ja mal das ultimative in Unübersichtlichkeit, oder?
    Loide, meins sollte ein abstraktes Beispiel sein - das nächste mal hänge ich ein n-Conditions ran, damit es ersichtlich ist, dass meins jetzt nur ein einfaches Beispiel war, weil ich zu sehr Rainer bin um da was komplexes runterzuschreiben.

    Und es müssen nicht zwingend nur binäre Konditionen sein.

  • Mod/RDW
    #1869 BigBANG 2 Nov. 2022, 15:08

    Zitat von: pump3

    Ich wiederhole mich ungerne aber wenn es nur um binäre konditionen geht, als a == true bzw a==false, dann ist ein bitvector mit switch-case statement vermutlich das beste.
    C++:
    bool a;
    bool b;
    bool c;
    bool d;
    std::Vector<bool>[3] bitvec;
    
    
    
    switch (bitvec)
    {
        case 1000: //a==true, alles andere false
            blabla...;
        case 1100: //a== true, b==true, alles andere false
            bla;
        case 1001: //a== true, b,c ==false, d==true
            ...
    }
    Ab einer gewissen Größe macht an der Stelle das Chain of Responsibility Pattern Sinn.

  • #1870 Deleted member 1298 2 Nov. 2022, 15:12

    Zitat von: BigBANG

    Ab einer gewissen Größe macht an der Stelle das Chain of Responsibility Pattern Sinn.
    Liebe die Seite! :love:

  • #1871 pump3 2 Nov. 2022, 15:52

    Zitat von: RichterinWinkelmann

    Wenn Du dann ein Array mit 20 Feldern hast, und daraus tatsächlich modular was auslesen willst, statt entweder nur alles 1 = gut, sonst = schlecht, ist das ja mal das ultimative in Unübersichtlichkeit, oder?
    Ja, idealerweise kommt man gar nicht erst in die Situation sich zwischen dem und 20 if-klausen entscheiden zu müssen.

  • #1872 Deleted member 1298 2 Nov. 2022, 15:54

    Zitat von: pump3

    Ja, idealerweise kommt man gar nicht erst in die Situation sich zwischen dem und 20 if-klausen entscheiden zu müssen.
    Da stöhne ich mal laut in Legacy-Anwendung o. spezifischem Kundenwunsch, von dem er sich nicht abbringen lässt, auf.

  • Mod/RDW
    #1873 BigBANG 2 Nov. 2022, 21:22

    Bezüglich GWN Server-Infrastruktur (und Backups):
    Momentan habe ich zwei Ansätze.

    Ansatz 1:

    1. Daten werden auf separaten File Server gehostet
    2. Zwei Web Server greifen auf File Server zu
    3. Ein Web Server dient als Dev-Environment, der andere als Prod-Environment
    Das hätte den Vorteil, dass ich auf dem Dev-Environment mit Prod-Daten testen kann. Zudem ist man flexibel was Trolle angeht. Wenn wieder ein Troll dem Webhost schreibt wir wären eine Nazi-Seite und der Webhost willkürlich den Stecker zieht, interessiert das den File Server und den anderen Server nicht. Die Seite wäre innerhalb weniger Minuten wieder erreichbar. Der File Server ist nach außen zudem komplett unbekannt.

    Ansatz 2:
    1. Hauptserver bleibt wie er ist
    2. Zweiter Web Server wird hinzufügt
    3. Über rsync werden alle Daten des Hauptservers alle paar Minuten auf den zweiten Server übertragen
    Das hätte den Vorteil, dass ich automatisch ein Backup aller Daten habe. Allerdings kann ich weiterhin nur auf dem Hauptserver testen. Wenn der Hauptserver aus irgendeinem Grund down geht, kann ich nicht so schnell auf den anderen wechseln, weil dieser nicht darauf ausgelegt ist selbst die Website zu hosten.
    Trotzdem wäre ein gewisser Trollschutz eingebaut, weil man den zweiten Server schnell zum Hauptserver machen kann.
    Vielleicht hat noch jemand Input.

  • #1874 Deleted member 1298 2 Nov. 2022, 21:30

    Zitat von: BigBANG

    Bezüglich GWN Server-Infrastruktur (und Backups):
    Momentan habe ich zwei Ansätze.

    Ansatz 1:
    1. Daten werden auf separaten File Server gehostet
    2. Zwei Web Server greifen auf File Server zu
    3. Ein Web Server dient als Dev-Environment, der andere als Prod-Environment
    Das hätte den Vorteil, dass ich auf dem Dev-Environment mit Prod-Daten testen kann. Zudem ist man flexibel was Trolle angeht. Wenn wieder ein Troll dem Webhost schreibt wir wären eine Nazi-Seite und der Webhost willkürlich den Stecker zieht, interessiert das den File Server und den anderen Server nicht. Die Seite wäre innerhalb weniger Minuten wieder erreichbar. Der File Server ist nach außen zudem komplett unbekannt.

    Ansatz 2:
    1. Hauptserver bleibt wie er ist
    2. Zweiter Web Server wird hinzufügt
    3. Über rsync werden alle Daten des Hauptservers alle paar Minuten auf den zweiten Server übertragen
    Das hätte den Vorteil, dass ich automatisch ein Backup aller Daten habe. Allerdings kann ich weiterhin nur auf dem Hauptserver testen. Wenn der Hauptserver aus irgendeinem Grund down geht, kann ich nicht so schnell auf den anderen wechseln, weil dieser nicht darauf ausgelegt ist selbst die Website zu hosten.
    Trotzdem wäre ein gewisser Trollschutz eingebaut, weil man den zweiten Server schnell zum Hauptserver machen kann.
    Vielleicht hat noch jemand Input.
    Wäre ein Backup von Prod nicht sinnvoller für die Dev-Environment? Ich mein für uns hier ist es ja scheißegal, wenn bei einem Beitrag von emailog auf einmal Zeuch von Preppi drin steht, aber bei nem richtigen Produkt würde man ja maximal einen Dump einspielen aber nicht beides auf die gleiche Quelle zeigen lassen.

    Würde weg eins gehen, aber auch die Datenquellen trennen.

  • #1875 RichterinWinkelmann 2 Nov. 2022, 21:37

    Zitat von: ElFlero

    Wäre ein Backup von Prod nicht sinnvoller für die Dev-Environment? Ich mein für uns hier ist es ja scheißegal, wenn bei einem Beitrag von emailog auf einmal Zeuch von Preppi drin steht, aber bei nem richtigen Produkt würde man ja maximal einen Dump einspielen aber nicht beides auf die gleiche Quelle zeigen lassen.

    Würde weg eins gehen, aber auch die Datenquellen trennen.
    So Geussel steht ja wahrscheinlich eh in einer DB, die man nochmal separat auf einem DB-Server hosten kann, dann kannst natürlich auch eine andere Instanz an den Testserver klemmen und das regelmäßig syncen. Ich glaub hier geht's eher um Softwareanpassungen, wo dann das Testsystem gut wäre, ich aber auch nicht 100% verstehe wie das funktionieren soll mit dem Prod/Dev Unterschied wenn die Dateien zentral wo liegen.
    Wenn ein paar Mediendaten verloren gehen ists total egal, wer kehrt wegen bunter Bildchen?

  • Mod/RDW
    #1876 BigBANG 2 Nov. 2022, 21:38

    Zitat von: ElFlero

    Wäre ein Backup von Prod nicht sinnvoller für die Dev-Environment? Ich mein für uns hier ist es ja scheißegal, wenn bei einem Beitrag von emailog auf einmal Zeuch von Preppi drin steht, aber bei nem richtigen Produkt würde man ja maximal einen Dump einspielen aber nicht beides auf die gleiche Quelle zeigen lassen.

    Würde weg eins gehen, aber auch die Datenquellen trennen.
    Ja, dass der Dev-Server auf die Prod-Daten zugreift wäre togglebar. Entweder er mounted den remote File Server, oder verwendet einen lokalen dump. Würde in docker-compose nur eine Zeile sein, die man austauschen muss. Die Flexibilität, dass der Dev-Server im Falle eines Ausfalls zum zweiten Prod-Server wird, wäre halt nice.

  • #1877 Karl Klammer 2 Nov. 2022, 21:39

    Zitat von: RichterinWinkelmann

    Wenn ein paar Mediendaten verloren gehen ists total egal, wer kehrt wegen bunter Bildchen?
    Wenn dann die Animeentenlachse weg sind verklag ich euch!

  • #1878 Deleted member 1298 2 Nov. 2022, 21:40

    Zitat von: BigBANG

    Ja, dass der Dev-Server auf die Prod-Daten zugreift wäre togglebar. Entweder er mounted den remote File Server, oder verwendet einen lokalen dump. Würde in docker-compose nur eine Zeile sein, die man austauschen muss. Die Flexibilität, dass der Dev-Server im Falle eines Ausfalls zum zweiten Prod-Server wird, wäre halt nice.
    Okay, das heißt fürs testen verwendest du einen lokalen Dump, der Stand x des Produktivsystems spiegelt, du kannst aber auch einfach fix die Prod-Datenbank anklemmen? Wenn so, würde ich den weg gehen - klingt für mich erstmal gut.

  • #1879 Pedder 3 Nov. 2022, 00:16

    Zitat von: BigBANG

    Wenn wieder ein Troll dem Webhost schreibt wir wären eine Nazi-Seite und der Webhost willkürlich den Stecker zieht, interessiert das den File Server und den anderen Server nicht.
    Bidde was, ist das wirklich schon passiert? Kannst ja mal einen gewissen Joshua Moon fragen, hab gehört der kennt sich mit so was aus.

    Finde es aber generell besser, wenn es wie in Ansatz 2 ein separates Backup gibt. Beim ersten Ansatz gäbe es ja nur das auf dem einen Fileserver, oder? Würde Backups aber auch eher nur ein mal pro Tag machen, alle paar Minuten hört sich etwas overkill an und so oft wird der Fall, dass man den Testserver zur überbrückung von Downtime verwenden muss auch nicht eintreten, die Wartezeit würde man dann schon verkraften.

  • #1880 Deleted member 1298 3 Nov. 2022, 00:19

    Zitat von: Pedder

    Bidde was, ist das wirklich schon passiert? Kannst ja mal einen gewissen Joshua Moon fragen, hab gehört der kennt sich mit so was aus.

    Finde es aber generell besser, wenn es wie in Ansatz 2 ein separates Backup gibt. Beim ersten Ansatz gäbe es ja nur das auf dem einen Fileserver, oder? Würde Backups aber auch eher nur ein mal pro Tag machen, alle paar Minuten hört sich etwas overkill an und so oft wird der Fall, dass man den Testserver zur überbrückung von Downtime verwenden muss auch nicht eintreten, die Wartezeit würde man dann schon verkraften.
    Oder man nimmt Version 1 und zieht sich trotzdem täglich ein Backup.

LSMaxx