Petites astuces de programmation : un gain de productivité souvent sous-estimé
En bref
- L'article énumère des « petites astuces » (raccourcis shell, commandes SQL, trucs git, etc.) qui peuvent améliorer marginalement la productivité au quotidien.
- L'auteur souligne que ces connaissances fragmentées, bien qu'évidentes en théorie, demandent une adoption consciente pour devenir vraiment utiles.
- Il propose de partager une astuce par jour en entreprise pour faciliter la découverte progressive de ces techniques sans surcharger les équipes.
Ce que dit la source
L'auteur constate que beaucoup de productivité d'ingénierie provient de petits éléments de connaissance, connaître l'existence d'une fonctionnalité de langage, savoir que TCP_NODELAY règle un délai réseau inexpliqué, ou maîtriser un détail de git ou sed. Il soutient que ces nuggets de savoir sont particulièrement précieux parce qu'ils ne demandent pas beaucoup de contexte mental pour être utiles : vous n'avez pas besoin de maîtriser Python pour lancer `python3 -m http.server`. L'auteur propose ensuite des exemples concrets (fzf pour la recherche d'historique fuzzy, atuin pour une base SQLite, SELECT sans FROM, EXPLAIN ANALYZE, regex word boundaries, logarithmes pour les métriques, Array.flatMap, git pickaxe, etc.) et termine en suggérant que le partage régulier de ces astuces en entreprise, notamment via Slack, accélère la montée en compétence collective.
- fzf et atuin offrent des améliorations du shell : recherche fuzzy d'historique via Ctrl+R, ou remplacement complet par une base SQLite interrogeable, avec support de l'historique par répertoire.
- SELECT sans FROM en SQL (PostgreSQL, MySQL) permet de tester le comportement d'une fonction ou d'une expression rapidement, sans faire requête sur une table.
- EXPLAIN ANALYZE en PostgreSQL et MySQL exécute réellement la requête et fournit des données de performance détaillées, bien plus informatives que EXPLAIN seul.
- git log -S pattern (« git pickaxe ») localise tous les commits qui ont ajouté ou supprimé une chaîne : particulièrement utile sur de vieilles bases de code.
- Logarithmes appliqués aux métriques (p.ex. `Math.floor(Math.log10(value))`) créent des buckets logarithmiques qui s'adaptent mieux aux distributions réelles que des buckets linéaires, et réduisent le coût de stockage.
- Les commandes modernes Unix comme ripgrep (rg) et les glob patterns `*/.md` (avec `shopt -s globstar` en bash) remplacent avantageusement find et grep pour la plupart des usages.
- zsh nécessite une configuration explicite pour activer l'autocomplétion avancée via FPATH et compinit, contrairement à bash qui l'offre partiellement par défaut.
Dans les commentaires
Débat partagé : la majorité reconnaît la valeur des astuces fragmentées, mais plusieurs commentateurs souèlent l'écart entre connaître une astuce et l'utiliser régulièrement, exigeant une adoption consciente. Quelques critiques mineures sur le périmètre (plutôt des astuces shell et CLI que de programmation à proprement parler) et sur le partage quotidien en Slack (perçu par certains comme potentiellement intrusif).
- Plusieurs commentateurs notent l'écart critique entre découvrir une astuce et en faire une habitude : mémoriser Ctrl+R ne suffit pas si on retombe dans le réflexe des flèches haut/bas. Un commentateur recommande de documenter les astuces dans un répertoire local facilement accessible pour les consulter sous stress, sans chercher sur Internet.
- Un exemple concret (tcpflow pour débugguer une troncature TCP en déploiement blue/green) illustre comment une astuce sortie du néant peut résoudre un problème réputé insoluble ; l'analogie avec la mémoire de survie (un détail lu il y a 10 ans ressurgit au bon moment) résonne.
- Quelques commentateurs expriment une préférence pour automatiser via Makefile ou tooling plutôt que de mémoriser des commandes ad hoc, ou remettent en question le périmètre (ce ne sont pas vraiment des « programmation tricks », plutôt des « computing tricks »).
- Le partage quotidien en Slack proposé par l'auteur génère une réserve : au moins un commentateur le trouverait ennuyeux, même s'il ne voudrait pas le montrer pour ne pas passer pour un jerk.
- Suggestion inverse : une fonctionnalité de JetBrains (liste des raccourcis moins utilisés) aurait de la valeur dans Vim ou zsh pour la découverte outillée, plutôt que la dépendance au partage manuel.
Notre lecture
Le sujet est honnêtement moins une révélation qu'une formalisation bienvenue : tout développeur confirmé accumule naturellement ces astuces, mais peu les systématisent ou les partagent. La vraie friction n'est pas la découverte, c'est la mémorisation et adoption, ce que l'article ne résout pas vraiment. Le modèle « une astuce par jour » est séduisant mais demande une discipline et une audience réceptive (risque de surcharge ou d'indifférence selon la culture d'équipe). À retenir pour les tech leads : curer et documenter une base d'astuces locales (répertoire de snippets, Makefile bien structuré, ensemble de scripts maison) génère plus de valeur durable qu'un flux quotidien en Slack. Intéressant pour améliorer l'efficacité opérationnelle d'une équipe, mais pas une percée méthodologique, pas de décision DSI impliquée.