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!

you are viewing a single comment's thread
view the rest of the comments
[–] 4 points 6 months ago (1 child)

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).

  • source
  • parent
  • hideshow 2 child comments
  • [–] 3 points 6 months ago (2 children)

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

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

  • source
  • parent
  • hideshow 4 child comments
  • [–] 3 points 6 months ago (1 child)

    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.

  • source
  • parent
  • hideshow 2 child comments
  • [–] [S] 2 points 6 months ago* (last edited 6 months ago) (1 child)

    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);`
    
  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 6 months ago (1 child)

    Deine Unfähigkeit, prepared Statements zu verwenden, ist jetzt aber ein Du-Problem.

  • source
  • parent
  • hideshow 2 child comments
  • [–] [S] 2 points 6 months ago (1 child)

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

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 6 months ago (1 child)

    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.

  • source
  • parent
  • hideshow 2 child comments
  • [–] [S] 2 points 6 months ago (1 child)

    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.

  • source
  • parent
  • hideshow 2 child comments