Was ein netter Nachmittag mit Kokain und Programmieren werden sollte, ist zu zwei Tagen Arbeit ausgeartet. Und der schlimmste Teil war, die Benutzerdoku zu schreiben!

  • luciferofastora@feddit.org
    link
    fedilink
    arrow-up
    4
    ·
    22 days ago

    Wenn mein Problem ist, dass ich in einer Datei einen häufigen regelmäßig geformten Ausdruck finden und durch einen anderen ersetzen will?

    Ein Beispiel wäre anpassen von Skripten nach einer Datenbankmigration um die Schemata und Tabellenamen anzupassen (ja, die neue Datenbank hat Tabellenamen verändert).

    • death_to_carrots@feddit.org
      link
      fedilink
      arrow-up
      3
      ·
      22 days ago

      Dann brauchst du keine regulären Ausdruck, sondern musst Token ersetzen. Da reicht Pattern-Matching.

      Bzw. verwenden deine Skripte zu viele hart-codierte Strings.

      • luciferofastora@feddit.org
        link
        fedilink
        arrow-up
        3
        ·
        22 days ago

        Dann brauchst du keine regulären Ausdruck, sondern musst Token ersetzen. Da reicht Pattern-Matching.

        Das sagt mir nichts, fürchte ich, aber ich lass mich gerne belehren.

        Bzw. verwenden deine Skripte zu viele hart-codierte Strings.

        Ich geh schon bei jeder Gelegenheit her und isolier alle Folgeabfragen gegen die ursprünglichen Quellen. Die jeweiligen Tabellen werden genau einmal direkt bezeichnet, danach haben sie ein Alias, gerade um so was zu minimieren. (Und weil die ursprünglichen Bezeichnungen beschissen sind, keine Ahnung was die Entwickler da geritten hat. Gleiches Spiel mit den Spalten.)

        Hilft halt nix, wenn ich insgesamt 100 verschiedene Tabellen abfrag, die jeweils irgendwo in Konstanten auszulagern. Das Schema, ja, hätte ich können wenn ich geahnt hätte, dass die das umstrukturieren, wäre aber auch nicht das Problem gewesen.

        Aber dass sie das Namensschema durch die Bank ändern, das war nicht angekündigt oder auch nur zu ahnen.

      • bleistift2@sopuli.xyzOP
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        22 days ago

        Bzw. verwenden deine Skripte zu viele hart-codierte Strings.

        Ja, es ist viel besser, dem seltenen Fall, dass sich Tabellennamen ändern, dadurch zu begegnen, indem man seine Tabellennamen in Konstanten auslagert. Das führt garantiert nicht zu Aneurysmen, glaub mir.

        const SQL = `SELECT ${CUSTOMER_TABLE_NAME_COLUMN} FROM ${CUSTOMER_TABLE_NAME} JOIN ${TARIFF_TABLE_NAME} USING (${CUSTOMER_TABLE_ID_COLUMN);`
        
          • bleistift2@sopuli.xyzOP
            link
            fedilink
            Deutsch
            arrow-up
            2
            ·
            22 days ago

            Vielleicht hast du bessere Prepared Statements als ich. In meinen kann ich nicht den Tabellennamen konfigurierbar machen.

            • death_to_carrots@feddit.org
              link
              fedilink
              arrow-up
              1
              ·
              22 days ago

              Da der Tabellen-Name ein nur von dir kontrollierter Wert ist, kannst du ihn mittels String-Concatination in dein prepared Statement einbauen, um danach die Variablen zu ersetzen.

              • bleistift2@sopuli.xyzOP
                link
                fedilink
                Deutsch
                arrow-up
                2
                ·
                22 days ago

                Kann es sein, dass du den Kontext vergessen hast? Bei luciferofastora ging es um

                anpassen von Skripten nach einer Datenbankmigration um die Schemata und Tabellenamen anzupassen

                worauf du „zu viele hart-codierte Strings“ und später „Prepared Statements” geantwortet hast.