GNU/Linux >> Tutoriales Linux >  >> Linux

¿Mantener la funcionalidad Front-end y CLI del programa separada?

En Linux, muchos programas tienen una versión CLI y una interfaz gráfica de usuario. Leí en alguna parte que esto sigue la filosofía de Linux y es una buena práctica. Por supuesto, es cierto desde la perspectiva de los desarrolladores mantener el código GUI separado del programa real.

Dado un programa, que se puede usar felizmente desde la línea de comandos, me gustaría crear una GUI para la versión de la línea de comandos. ¿Cuáles son mis opciones aquí?

Solo puedo pensar en 2 que usaría el desarrollador de GUI.

  • llamando al programa con los parámetros configurados así:

    system(“algúnprograma –parámetro1 -p2 -p3”)

  • hacer que la versión CLI pueda ejecutarse en modo servidor con sockets (unix, inet, …) y usar esos sockets para comunicarse con el “servidor”

En mi opinión, la solución más limpia sería la segunda, pero esto no siempre es posible sin alterar la versión de la CLI.

La pregunta real es ¿cuál es la forma correcta de tener una versión cli y una versión GUI construidas por separado?

Respuesta aceptada:

Un enfoque diferente es escribir su funcionalidad como una biblioteca. Entonces tienes una GUI que usa la biblioteca; y una CLI que también utiliza la biblioteca. Dependiendo de la complejidad de su tarea, esa puede ser la mejor solución, ya que ambos programas podrían funcionar de forma independiente sin necesidad de ningún tipo de comunicación entre procesos.


Linux
  1. Instale SoftHSM y acceda a él a través del programa Java

  2. ¿Ejecutar un programa Gui al inicio?

  3. ¿Editar y recompilar el programa individual?

  4. ¿Cómo detectar y descubrir que un programa está en interbloqueo?

  5. Posicionar ejecutables independientes y Android

Zeit:una interfaz gráfica de usuario para Crontab para programar trabajos en Linux

Cómo determinar la versión de Ubuntu a través de la GUI y la línea de comandos

Reducir el tamaño de archivo de las imágenes en Linux:métodos CLI y GUI

Cómo escribir y ejecutar un programa C en Linux

Cómo deshabilitar WiFi en el sistema Linux:métodos GUI y CLI

Cómo convertir PDF a imagen en el sistema Linux (método CLI y GUI)