Principes d'ingénierie logicielle

Étude de cas : développer un logiciel en Python

Mark Pedigo

Principal Data Scientist

Feuille de route

Feuille de route indiquant les parties du projet terminées et celles à démarrer.

Étude de cas : développer un logiciel en Python

Modularité

Modularité : principe clé de l'ingénierie logicielle

  • Modules distincts et indépendants
  • Fonctionnalités ciblées et spécifiques
  • Interfaces claires et bien définies
  • Développement, tests, maintenance séparés
Étude de cas : développer un logiciel en Python

Principe DRY

« Don't Repeat Yourself » : principe clé de l'ingénierie logicielle

  • Répétition minimale
  • Composants et classes réutilisables
  • Écrire une fois, partager largement
  • Code propre, maintenable, moins sujet aux erreurs
Étude de cas : développer un logiciel en Python

Packaging

Packaging : principe clé de l'ingénierie logicielle

  • Hiérarchie de dossiers organisée
  • Gérer et structurer le code efficacement
  • Le fichier __init__.py pour l'initialisation du module
Étude de cas : développer un logiciel en Python

Créer un package

  • Structure minimale : dossier de package + fichier Python
  • Package : dossier + fichier __init__.py
  • Noms de dossiers courts, en minuscules, avec underscores
  • __init__.py : identifie le dossier comme un package
Étude de cas : développer un logiciel en Python

Imports absolus et relatifs

  • Supposons la structure de projet suivante
project \
   |--- package
   |    |--- module1.py
   |    |--- module2.py
   |--- main.py
  • Import absolu : chemin complet depuis la racine
    • from package import module1
    • from package.module1 import function
  • Import relatif : chemin selon l'emplacement courant (. = courant, .. = parent)
    • from . import module1
    • from .module1 import function
  • Absolu : clair, mais moins portable
  • Relatif : flexible, dépend du contexte
Étude de cas : développer un logiciel en Python

Passons à la pratique !

Étude de cas : développer un logiciel en Python

Preparing Video For Download...