Arrête, je vais rougir ! Tes compliments me font plaisir, mais il y a bien meilleur que moi sur ce forum. Je ne fais pour le moment que des pâtés de sable.
Je comprends tes arguments pour la non-division du script. La plupart ne sont pas valables, parce-que tu as moyen de tout laisser dans un seul fichier, tout en divisant (template de configuration dans des variables au début du script, sérialisation par définitions de fonctions, …) Le seul argument valable à mon sens est que le refactoring demanderait bien trop de travail pour un résultat incertain. Je précise tout de même qu’écrire du code propre n’est pas directement lié à l’optimisation de l’utilisation des ressources d’un PC. D’ailleurs, on peut difficilement parler de Bash et d’optimisation ^^ Écrire du code propre permet de simplifier la maintenance (voire tout juste la rendre possible) que ce soit pour quelqu’un d’autre ou pour soi-même, d’améliorer la portabilité (le code & try, ça marche pour les petits scripts maisons qu’on utilise un jour et jette le lendemain, mais pas pour les projets distribués), simplifie le debugging, clarifie l’esprit, plante des arbres, termine les guerres et résoud les problèmes de faim dans le monde.
Pense juste à ces points la prochaine fois que tu codes un nouveau script. Personne n’a écrit un compilateur optimisé et lisible le premier jour, alors fais mieux pour chaque nouveau projet, et tu vas décoller ! (Pour info, ma formation n’a rien à voir avec l’informatique. Ce que je pense connaître, je l’ai appris via des tutos, de la documentation, beaucoup d’erreurs, et grâce aux membres de ce forum.)
Enfin, quand je parle de division sémantique plutôt que séquentielle, voici un exemple.
Imaginons ce script inutile :
echo $(( 1 + 2 ))
echo $(( 1 + 3 ))
Une division séquentielle (par des fonctions) sertait ça :
[code]func1() {
echo $(( 1 + 2 ))
}
func2() {
echo $(( 1 + 3 ))
}
func1
func2[/code]
C’est inutile. Ça ne simplifie pas l’écriture, ça rajoute des lignes et n’optimise pas le temps d’exécution, la mémoire consommée ou une autre ressource.
Une division sémantique ressemble plutôt à ça :
[code]
print_sum() {
echo $(( $1 + $2 ))
}
print_sum 1 2
print_sum 1 3[/code]
Ici, la division a un sens, puisqu’une tâche répétitive a été sérialisée.
L’exemple est ici sans intérêt. Mais il faut imaginer que print_sum est une fonction un peu plus complexe, et que des erreurs se sont glissées dans le copier-coller lors de la tentative d’écriture du premier script ^^
Enjoy !
A+
Duna