Eine frage an die programmierer hier:

Ich habe eine web-app, die (aus datenschutsgruenden) an verschiedene kunden lizensiert, und vor ort auf deren server installiert wird, wo sie nur lokal zu erreichen ist. Dort passen die kunden die software individuel an, was bedeutet dass sie ihre eigenen (web-)formulare erzeugen die daten sammeln und spaeter ausgewertet werden. Die software stammt noch aus den 90ern, und das frontend sieht auch dementsprechend aus.

Das problem ist nun, dass bestimmte bestandteile modernisiert werden sollen, ohne das bei bestehenden kunden die existierenden forms kaputtgehen. Also einfach jquery rauswerfen und bootstrap rein funktioniert nicht. Selbst wenn wir die 0815-ui fuer login, suche usw. umschreiben wuerden, waere die angepasste kundensoftware kaputt die dann eben versucht auf die alte css/js dateien zuzugreifen um irgendwelche styles oder js-code anzuwenden die vor 10 jahren mal der heisse scheiss war. Die existierenden dateien muessen bleiben wo sie sind, bis der kunde sich entscheidet seine forms selbst zu erneuern.

Teil der software sind also die statischen web assets (js, css, … die in irgendwelchen ordnern auf der platte liegen), und die forms selbst sind irgendwo in der DB oder im code gespeichert.

Wie wuerdet ihr vorgehen, die app schrittweise zu erneuern, ohne die bestehenden kundenanpassungen kaputtzumachen? Mein erster instinkt waere, fuer neu hinzukommende assets versionen-verzeichnisse (z.b. js/datatables/3_0/datatables.js sowie js/datatables/latest/datatables.js ) anzulegen die dann von den forms aus verlinkt werden damit jedes form prinzipiell unabhaengig von anderen teilen ist, aber vielleicht gibt es jemanden der sowas schonmal gemacht hat und andere/bessere loesungen hat?

  • AnAngryAlpaca@feddit.deOP
    link
    fedilink
    Deutsch
    arrow-up
    2
    ·
    1 year ago

    Darüber hat man wohl firmenintern schon diskutiert, neu schreiben ist aber (für die Entscheider) keine Option, da dann eben all die bestehenden Anpassungen der einzelnen Kunden ebenfalls hinüber wären die das System schon seit 20+ Jahren nutzen.

    Wäre auch meine bevorzugte Lösung, aber das würde eine Menge anderer Leute sehr sehr unglücklich machen…

    • Double_A
      link
      fedilink
      Deutsch
      arrow-up
      2
      ·
      1 year ago

      Wie oft werden denn bei dieser Software wirklich neue Features hinzugefügt? Evtl. wäre es eine Möglichkeit einfach 2 verschiedene Produkte zu haben. Die neue ohne irgendwelche Altlasten, und die alte wo man nurnoch kritische Bugs fixt.

      • AnAngryAlpaca@feddit.deOP
        link
        fedilink
        Deutsch
        arrow-up
        2
        ·
        edit-2
        1 year ago

        Ja, aber nicht so wie du denkst:

        Das system auf einer relativ exotischen software die ihre wurzeln irgendwo in den 70ern hat, deren existenz mir bis vor 2 monaten unbekannt war, und wofuer man auch abseits der offiziellen dokumenation praktisch 0 infos findet. Bedeutet, das der kunde auch keinen wald-und wiesen .net/java/php programmierer daran arbeiten lassen kann da syntax und programmstrukturierung ziehmlich “rustikal” sind. Die software hat auch noch unterstuetzung fuer terminalausgaben eingebaut, so richtig old-school womit man ganze tabellen schoen formatiert auf einemn 80x25er bildschirm ausgeben kann. Das wird u.a. im finanzbereich oft genutzt, wo man 200 millionen datensaetze in weniger als einer sekunde durchsuchen muss.

        Am ende ist es so das kundenspezifische anpassungen gemacht werden, es werden irgendwelche neuen klassen geschrieben die im server abgelegt werden und die der kunde dann nutzen kann.

        Also z.b. hat der kunde aufbau und material fuer ein gebaeude in “seiner” datenbank (selbst nach seinen eignen anforderungen angelegt) mit seinen eigenschaften gespeichert, und dann ist die anforderung eine funktion zu schreiben die daraus bestimmte werte fuer statik und festigkeit berechnet - also schon so sachen die komplexer sind und man nicht (schnell oder einfach) selbst mal eben in Excel oder SQL umsetzten kann.

        Also das ist nichts triviales wo man jetzt per add-on oder so ein cookie consent banner ins wordpress blog nachladen wuerde wenn du das meinst…