Quelques outils pratiques pour les développeurs
Ces dernières semaines, nous sommes plusieurs développeurs chez af83 à avoir
réinstallé notre système. Pour certains, c'est une opération bien rodée : les
fichiers de configuration sont versionnés, la liste des paquets à
installer est connue,
les documents sont déjà sauvegardés. Pour d'autres, ce fut plus délicat ;-)
Je ne vais pas vous détailler les petites surprises que nous avons pu
rencontrer, chacune étant très spécifique à l'environnement et aux choix de
chaque développeur. Par contre, il me semble intéressant de partager sur
quelques outils que j'utilise et qui pourront rendre service à pas mal de
développeurs.
Le premier outil est The Silver Searcher,
ou ag en abrégé. C'est un remplaçant de grep : il permet de voir dans quels fichiers
se trouve telle ou telle occurrence d'un mot ou d'une expression. Ses avantages
sont d'être plus rapide que grep (ou ack, une autre alternative), de tenir
compte des fichiers .gitignore
et d'avoir quelques autres options bien
pratiques. Il s'installe d'un simple apt-get install silversearcher-ag
sur
Debian Jessy/Sid et Ubuntu 13.10.
Tree est un utilitaire tout
simple. Il permet de lister le contenu d'un répertoire, avec tous les
sous-répertoires et fichiers bien alignés. Mais un exemple reste ce qu'il y a
de plus parlant :
<span class="gp">$</span> tree irssi<span class="go">irssi</span><span class="go">├── beep.wav</span><span class="go">├── config</span><span class="go">├── config.example</span><span class="go">├── default.theme</span><span class="go">├── gajim.wav</span><span class="go">├── litE.theme</span><span class="go">├── qlth.theme</span><span class="go">├── scripts</span><span class="go">│ ├── autorun</span><span class="go">│ │ └── beep.pl -> ../beep.pl</span><span class="go">│ ├── beep.pl</span><span class="go">│ └── forward.pl</span><span class="go">├── void.theme</span><span class="go">└── xor2.theme</span><span class="go">2 directories, 12 files</span>
Vient ensuite l'installation des différents langages. Pour nodejs, je passe
maintenant par les paquets pour Ubuntu. L'installation se résume ainsi à un
apt-get install nodejs nodejs-legacy npm
, puis à créer un
~/.npmrc
pour dire à
npm d'installer ces paquets dans mon $HOME
. Quand on installe nodejs via les
sources, npm vient avec, mais ici, les paquets nodejs et npm sont séparés. Par
contre, cela installe le binaire du premier sous le nom nodejs, car il
existait déjà un paquet node dans Debian. Cela peut poser problème avec
quelques programmes, mais il suffit d'installer nodejs-legacy pour corriger ce
souci.
Pour Ruby, j'ai utilisé longtemps RVM, un peu rbenv, mais finalement, je suis
passé à ruby-install +
chruby. J'apprécie beaucoup le côté
minimaliste et, avec la généralisation de bundler, les gemsets ne me manquent
pas.
Enfin, pour Go, j'utilise les paquets deb générés par
godeb. À
noter, avec la sortie de Golang 1.2, ma config vim a un peu évoluée. En
particulier, goimports s'est vite
trouvé une place dans mon processus de travail (cela permet d'ajouter ou
supprimer automatiquement les imports qui vont bien à chaque sauvergarde, en
plus de reformater le fichier).
Voilà, j'espère que ce billet aura inspiré quelques personnes et n'hésitez
pas à laisser en commentaires vos recommandations.