CosmicLabDESY / CosmicAtWeb

webbased statistical analysis and plotting tool for DESY Zeuthen
GNU General Public License v3.0
0 stars 3 forks source link

Backend refactoring #29

Open zepatrik opened 6 years ago

zepatrik commented 6 years ago

Aktuell kann auf alle Dateien in ctplot/web zugegriffen werden. Die JavaScript Dateien werden bei jeder Anfrage gebundled. Außerdem muss es für die deutsche und englische Version viele Dateien doppelt geben und somit doppelte Arbeit und Fehleranfälligkeit bei Änderungen (wie hier). Ich würde das backend gerne folgender maßen umbauen:

  1. Statische Dateien (*.html, *.js, *.css) sollen nur bei updates dieser gebundled werden. Für jede Datei soll nur eine Version vorhanden sein, mehrsprachige Dateien werden ähnlich wie bei flat file cms bei jedem update an der website mithilfe von templates und dictionaries generiert.
  2. Die bereits bestehende API wird so oder so ähnlich weiter verwendet. Vermutlich sollte hierfür besser ein framework verwendet werden um Fehler zu vermindern, z.B. https://pythonhosted.org/WSGIServlets/index.html

Der erste Punkt ist wichtig, um einfache Wartbarkeit und Performance sicherzustellen. Außerdem wird ein zweisprachiger Ansatz ohne diese Änderung schwierig und fehleranfällig. Durch das Verwenden von templates kann z.B. #28 sehr einfach umgesetzt werden und muss nicht für jede Sprache durchgeführt werden.

27 kann sehr einfach beim aufräumen der API nebenbei hinzugefügt werden.

@caroschwerdt @mw10178

Für eine einfache Migration brauche ich auch Informationen zum Server, vielleicht kann @terliuk hier weiterhelfen.

mw10178 commented 6 years ago

hallo patrik, wenn ich deine email richtig verstanden habe, dann ist das erst ein vorschlag. wir haben das heute kurz diskutiert, das problem was wir sehen, ist, dass die variante bei aller eleganz fuer studenten recht kompliziert ist., wenn sie dann in zukunft aenderungen machen sollen, wie waers mit folgendem vorschlag:

ich bin am donnerstag nachmittags in zeuthen, wir koennten dann auch telefonieren beste gruesse michael

Von: "zepatrik" notifications@github.com An: "CosmicLabDESY/CosmicAtWeb" CosmicAtWeb@noreply.github.com CC: "mw10178" michael.walter@desy.de, "Mention" mention@noreply.github.com Gesendet: Montag, 12. März 2018 18:33:09 Betreff: [CosmicLabDESY/CosmicAtWeb] Backend refactoring (#29)

Aktuell kann auf alle Dateien in ctplot/web zugegriffen werden. Die JavaScript Dateien werden bei jeder Anfrage gebundled. Außerdem muss es für die deutsche und englische Version viele Dateien doppelt geben und somit doppelte Arbeit und Fehleranfälligkeit bei Änderungen (wie [ https://github.com/CosmicLabDESY/CosmicAtWeb/commit/b9946e0fad170e2cbb9cd9833a34456656981196#diff-2b8d6d8539dc5217ace557bede906a1fL121 | hier ] ). Ich würde das backend gerne folgender maßen umbauen:

1. Statische Dateien ( *.html , *.js , *.css ) sollen nur bei updates dieser gebundled werden. Für jede Datei soll nur eine Version vorhanden sein, mehrsprachige Dateien werden ähnlich wie bei [ https://de.wikipedia.org/wiki/Flat-File-Content-Management-System | flat file cms ] bei jedem update an der website mithilfe von templates und dictionaries generiert. 
2. Die bereits bestehende API wird so oder so ähnlich weiter verwendet. Vermutlich sollte hierfür besser ein framework verwendet werden um Fehler zu vermindern, z.B. [ https://pythonhosted.org/WSGIServlets/index.html | https://pythonhosted.org/WSGIServlets/index.html ] 

Der erste Punkt ist wichtig, um einfache Wartbarkeit und Performance sicherzustellen. Außerdem wird ein zweisprachiger Ansatz ohne diese Änderung schwierig und fehleranfällig. Durch das Verwenden von templates kann z.B. [ https://github.com/CosmicLabDESY/CosmicAtWeb/issues/28 | #28 ] sehr einfach umgesetzt werden und muss nicht für jede Sprache durchgeführt werden. [ https://github.com/CosmicLabDESY/CosmicAtWeb/issues/27 | #27 ] kann sehr einfach beim aufräumen der API nebenbei hinzugefügt werden. [ https://github.com/caroschwerdt | @caroschwerdt ] [ https://github.com/mw10178 | @mw10178 ]

Für eine einfache Migration brauche ich auch Informationen zum Server, vielleicht kann [ https://github.com/terliuk | @terliuk ] hier weiterhelfen.

— You are receiving this because you were mentioned. Reply to this email directly, [ https://github.com/CosmicLabDESY/CosmicAtWeb/issues/29 | view it on GitHub ] , or [ https://github.com/notifications/unsubscribe-auth/AezKxIJ_MR5t_0xMrNASnzhwQ9_4YPPLks5tdrFVgaJpZM4SnEe7 | mute the thread ] .

-- Michael Walter Deutsches Elektronoen-Synchrotron DESY Platanenallee 6 D-15738 Zeuthen Germany Phone: +49-33762-7-7264 email: michael.walter@desy.de

zepatrik commented 6 years ago

Ok, das habe ich leider nicht richtig verständlich gemacht Es wird einfacher werden Änderungen zu machen, auch für Leute, die sich nicht so gut auskennen. Alle Texte werden in einem dictionary gespeichert, sodass dieses unabhängig vom code geändert werden kann. Dafür würde ich als dictionary eine csv Datei verwenden, diese kann sogar mit excel oder ähnlichem bearbeitet werden. Um die Texte in den code zu bekommen schreibe ich ein kleines script, dass diese in das Template einfügt. Als Template kann man im Prinzip auch die deutsche oder englische Version der bestehenden Datei verwenden und die zweite Sprache durch ersetzten generieren. Ich werde das gerne am Donnerstag noch näher erläutern. Dieser Schritt ist nötig, da das Projekt im aktuellen Zustand nicht in der Lage ist die Anforderungen sinnvoll zu erfüllen.