Welchen namen für Kommandozeilen-Parameter für Konsolenmodus?



  • Hi,
    angenommen ein Programm das normalerweise eine GUI bietet aber auch über Kommandozeile ohne GUI-Ausgabe gestartet werden kann. Für Automatisierungszeugs.
    Welchen Namen würdet ihr dem Kommandozeilen-Parameter geben welcher das Prog ohne GUI startet?
    Denkbar wären zB.
    --console
    --no-gui
    --automated
    ...

    Ich denke es gibt da viele real-World Beispiele? Bitte zitieren wenn ihr welche kennt. Vielleicht gibt es einen Pseudo-Standard?



  • Bei Unity3D Editor sind das 2 parameter:

    • -batchmode
    • -nographics

    Wobei nur -nographics das UI ausschaltet und -batchmode für automatisierung da ist


  • Mod

    Meistens macht man es so, dass die GUI eine separate Anwendung ist, die das Kommandozeilenprogramm steuert. Vorbild: Sehr viele Anwendungen in der Linuxwelt. Das hat auch allerlei Vorteile zum Deployment der Anwendung, weil die grafische Oberfläche (mit ihren meistens erheblichen Abhängigkeiten) optional wird.

    Mir ist schon klar, dass du das wahrscheinlich ungern hörst, da das vermutlich erhebliche Änderungen an deiner Anwendungsarchitektur erfordert, aber so ist nun einmal die übliche Antwort. Die Trennung von Funktionalität und Darstellung hat schließlich so einige Vorteile, daher kommt das.



  • @SeppJ
    Ich stimme Dir da voll zu, würde es genau so machen und hör es auch nicht ungern 🙂
    Nur hab ich die App nicht entwickelt. Und es ist jetzt nunmal so, dass die App erstmal leider rein GUI war und die Konsolenfunktionalität später drangeklatscht wurde.


  • Mod

    Wenn die volle Funktionalität auch auf der Kommandozeile verfügbar ist, würde das zumindest bedeuten, dass der vorherige Entwickler intern die Oberfläche und Funktion halbwegs sauber getrennt hat. Dann bestünde zumindest eine recht gute Erfolgsaussicht bei nicht zu hohem Aufwand, falls du dich berufen fühlst, das formell in zwei separate Anwendungen zu zerlegen.

    Ansonsten ist --batchmode ganz passend, um mal etwas direkt zum Thema beizutragen.



  • Eine alternative wäre die gesamte logik (ohne den gui part) in eine library zu packen und dann dafür zwei frontends zu bauen, welche die Library verwenden

    • Gui
    • Console

    Ob das frontend jetzt die Library statich oder "dynamisch" (unter windows *.dll) linkt ist dann geschmacksache


  • Banned

    @SeppJ sagte in Welchen namen für Kommandozeilen-Parameter für Konsolenmodus?:

    Meistens macht man es so, dass die GUI eine separate Anwendung ist, die das Kommandozeilenprogramm steuert.

    Exakt so geht das. Und idealerweise kommunizieren GUI und Back-End über Sockets o.ä, was es erlaubt, dass sich beide Komponenten auf separaten Maschinen befinden.


Log in to reply