plomberie

Une définition du Jargon Français.
Aller à : Navigation, rechercher

nom féminin.  [Unix]. Résultat de l'emploi d'un ensemble de commandes simples et d'utilitaires appelés glu qui, sous un shell, offre moyen de rediriger les sorties d'un programme vers les entrées d'un autre.

On décompose ainsi un traitement en isolant ses composantes puis en les assignant chacune à un programme générique modeste et bien circonscrit donc maîtrisé. Ces programmes génériques sont interconnectés par de la plomberie simple, ou bien, lorsque les traitements nécessaires sont jugés trop difficiles à décomposer ainsi, par de véritables programmes ad hoc d'ordinaire rédigés grâce à un langage de glu offrant moyen, au prix d'un développement, de s'affranchir de certaines limites des outils génériques.

En évitant cette approche on risque de tout intégrer en réalisant une merveille optimale et facile à maintenir (c'est rare) ou une usine à gaz.

Voir aussi canal (sens 2), pipeline, pipe, tube. De plus la commande « tee » (raccord en T) dédouble une sortie.

L'utilité extrême de la plomberie constitue l'une des principales caractéristiques d'Unix. Voir aussi KISS.

Att.png Rien à voir avec plomber et déplomber, qui concernent la protection.

Dans certains contextes ce terme est ce que la porcelaine dissimule (ou plutôt frontalise).

Exemples

Sous un shell Unix:

$ echo -e "toto\ntiti\ntata\ntutu\ntiti" > monfichier
$ cat monfichier    # montre le contenu du fichier nommé « monfichier »
toto
titi
tata
tutu
titi
$ sort monfichier   # trie le contenu du fichier (sans le modifier) et présente le résultat
tata
titi
titi
toto
tutu
$ sort < monfichier # équivalent à la commande précédente, mais on ne laisse pas le 
# programme « sort » accéder au fichier, on demande au shell de lui communiquer son contenu
tata
titi
titi
toto
tutu
$ sort < monfichier |uniq -c # « uniq -c » dénombre
      1 tata
      2 titi
      1 toto
      1 tutu
$ sort < monfichier |uniq -c|sort -r
      2 titi
      1 tutu
      1 toto
      1 tata
$ sort < monfichier |uniq -c|sort -r > monresultat
$ cat monresultat
      2 titi
      1 tutu
      1 toto
      1 tata

Outillage disponible

Afin d'abréger une commande fréquemment employée avec certaines options, on peut définir un alias de shell qui, si nécessaire, profitera d'une plomberie simple.

Si on prend ensuite conscience qu'un traitement simple est nécessaire on pourra réaliser une fonction de shell.

Si le traitement se complique un peu ou si on souhaite peaufiner, par exemple en ajoutant une modeste interface utilisateur ou une capacité à détecter et rapporter des erreurs, mieux vaut la remplacer par un script de shell (ou fichier batch).

Si la maintenance adaptative fait trop grossir ce dernier ou s'il doit fonctionner sur plusieurs familles de systèmes on le transformera en script de langage de glu.

Si l'affaire se complique encore il sera parfois possible, d'ordinaire au prix de sacrifices, de remplacer tout cela par un paramétrage ou une macrocommande, voire une extension, d'un progiciel existant adapté. C'est l'approche aujourd'hui adoptée par le gros des utilisateurs professionnels.

Sinon le développement d'un programme spécifique est théoriquement souhaitable et une épopée commence.