Contenu de la présentation PyCon US 2025.
Guide pour passer d’un Jupyter Notebook à un système évolutif
Jupyter Notebook est un outil très utile pour l’analyse interactive, notamment l’exploration de données, la visualisation et l’enseignement. Mais lorsqu’il faut déployer du code en production et que la réutilisabilité, l’automatisation et la robustesse deviennent importantes, les limites du notebook apparaissent. Cet article présente le processus et les points clés pour transformer du code écrit dans Jupyter Notebook en un système évolutif, facile à maintenir et reproductible.
Avantages et inconvénients des notebooks
- Avantages : comme on peut voir le code et le texte ensemble et vérifier immédiatement les résultats, ils excellent pour l’analyse exploratoire de données et l’enseignement. [00:03:18]
- Inconvénients : l’état des variables peut varier selon l’ordre d’exécution des cellules, le contrôle de version est difficile, et l’automatisation comme la réutilisation du code sont compliquées, ce qui freine le passage à l’échelle. [00:04:24]
Quand faut-il passer à un script ?
- Quand il faut déployer le code en production
- Quand d’autres personnes doivent pouvoir réutiliser le code
- Quand le code doit être exécuté automatiquement
- Quand la robustesse du code est importante
- Quand le notebook est devenu trop complexe [00:05:32]
Étapes clés et outils pour la transition
1. Extraction et conversion du code
- NBConvert & Jupytext : ces outils permettent d’extraire facilement le code du notebook vers un script Python. Jupytext est particulièrement utile car il fournit aussi une fonction de synchronisation entre notebook et script. [00:10:44]
2. Processus de refactoring
- Séparer le travail par unités fonctionnelles : identifiez chaque étape du notebook, créez une fonction adaptée à chaque étape, puis déplacez le code dans ces fonctions. [00:12:52]
- Écrire des tests : rédigez des tests unitaires ou d’intégration afin de garantir l’exactitude du code. C’est particulièrement important pour éviter les erreurs pouvant survenir lors du copier-coller. [00:13:08]
- Gérer les exigences et les dépendances : clarifiez les modules et leurs dépendances afin que le code puisse être exécuté facilement dans d’autres environnements. [00:13:15]
- Introduire le CI/CD : mettez en place un pipeline CI/CD (intégration continue / déploiement continu) pour automatiser le processus de déploiement. [00:13:15]
Conseils supplémentaires pour améliorer la qualité du code
- Formatage cohérent du code : utilisez un formateur de code pour conserver la cohérence.
- Documentation : prenez l’habitude de documenter clairement l’objectif du code et son mode d’utilisation.
- Séparation de la configuration : gérez les paramètres et informations de configuration dans des fichiers séparés. [00:21:11]
Compétences clés et évolution de l’état d’esprit
- Modularisation : la capacité à décomposer le code en fonctionnalités modulaires réutilisables est essentielle.
- Automatisation : automatisez le workflow pour gagner en efficacité.
- Refactoring guidé par les tests : améliorez le code tout en maintenant la stabilité des fonctionnalités grâce aux tests.
Pendant la phase d’exploration, il est important d’exploiter pleinement la flexibilité de Jupyter Notebook, puis d’adopter un état d’esprit orienté vers la transformation du code de production en scripts automatisés, robustes et reproductibles. [00:22:16]
Aucun commentaire pour le moment.