Sous Linux, de nombreux programmes ont une version CLI et une interface graphique. J'ai lu quelque part que cela suit la philosophie Linux et est une bonne pratique. Bien sûr, du point de vue des développeurs, il est vrai de garder le code de l'interface graphique séparé du programme réel.
Étant donné un programme, qui peut être utilisé avec bonheur à partir de la ligne de commande, je voudrais créer une interface graphique pour la version en ligne de commande. Quelles sont mes options ici ?
Je ne peux penser qu'à 2 que le développeur de l'interface graphique utiliserait.
-
appeler le programme avec les paramètres configurés comme suit :
system("unprogramme –paramètre1 -p2 -p3")
-
avoir la version CLI capable de fonctionner en mode serveur avec des sockets (unix, inet, …) et utiliser ces sockets pour communiquer avec le "serveur"
La solution la plus propre serait la deuxième à mon avis, mais ce n'est pas toujours possible sans modifier la version CLI.
La vraie question est quelle est la bonne façon d'avoir à la fois une version cli et une version GUI construites séparément ?
Réponse acceptée :
Une approche différente consiste à écrire votre fonctionnalité sous forme de bibliothèque. Ensuite, vous avez une interface graphique qui utilise la bibliothèque ; et une CLI qui utilise également la bibliothèque. Selon la complexité de votre tâche, cela peut être la meilleure solution, car les deux programmes peuvent fonctionner indépendamment sans avoir besoin d'aucune sorte de communication inter-processus.