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!

  • death_to_carrots@feddit.org
    link
    fedilink
    arrow-up
    3
    ·
    14 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
      ·
      14 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
      14 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
          ·
          14 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
            ·
            14 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
              ·
              14 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.