IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Méthodologie de développement


Sujet :

Python

  1. #1
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 602
    Par défaut Méthodologie de développement
    Bonjour,

    dans mon équipe de développeurs Python, nous travaillons dans un environnement avec des règles strictes :

    - Développement en mode Test Driven Development (Développement piloté par les tests) : on écrit les tests sur une méthode n'existant pas encore. Les tests plantent. On écrit la méthode. Les tests passent au vert, on passe aux tests suivants.
    - L'objectif dans les tests est de couvrir 100 % du code, sauf exceptions sans importance capitale. La lib pytest-cov nous permet de cerner facilement les portions de code non encore couverts par les tests en mode graphique.
    - Bien entendu, nous gérons 3 types de tests : unitaires (tests sur une méthode), fonctionnels (tests sur une fonctionnalité appelant plusieurs méthodes) et d'intégration (tests sur le programme en entier).
    - Nous sommes biberonnés au quotidien avec pytest, pytest-mock, pytest-django (si on bosse avec Django pour en rajouter une couche). Avec ces libs, on patche (mocke) tout et on teste tout.
    - On patche tout ce qui est nécessaire à travers nos tests afin de simuler par exemple une connexion en FTP qui fonctionne, ou bien qui plante, ou bien de simuler un effect de bord à l'appel d'une méthode afin de s'assurer qu'on tombe bien dans l'exception levée par un try/except.
    - Nous travaillons chaque programme sous environnement virtuel.
    - Tous nos programmes sont exploités en mode CI/CD sous Azure DevOps, d'où l'importance des nombreux tests et de l'environnement virtuel pour ne déployer que le strict nécessaire au bon fonctionnement du programme.

    Et du coup, je pose deux questions à ceux qui liront ce petit pavé et auront envie d'y répondre :

    - est-ce une méthodologie de travail courante ailleurs ?
    - qu'est-ce que ce sera demain ?

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 677
    Par défaut
    Salut,

    Citation Envoyé par Arioch Voir le message
    - est-ce une méthodologie de travail courante ailleurs ?
    - qu'est-ce que ce sera demain ?
    C'est la base des équipes de développements "industrialisés" (et le forum où discuter de méthodes de développement serait plutôt ALM).

    Est ce qu'elle est courante avec Python? Je ne le pense pas car Python est un langage plutôt utilisé par des équipes réduites qui n'ont pas les moyens d'industrialiser... voire de gérer leur production logicielle.

    Demain? Il y aura toujours un gap entre les outils que peut s'offrir un artisan et ceux de l'industrie (quel que soit le langage).
    Et il y aura toujours des besoins ponctuels/spécifiques qu'on préférera confier à un stagiaire ou a un collaborateur qui se débrouille plutôt que de formaliser ses besoins, consulter des prestataires,...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 602
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Est ce qu'elle est courante avec Python? Je ne le pense pas car Python est un langage plutôt utilisé par des équipes réduites qui n'ont pas les moyens d'industrialiser... voire de gérer leur production logicielle.
    Voilà qui est du genre à me rassurer

    J'ai passé plus de 15 ans à concevoir des scripts Perl où le besoin était "j'ai besoin de ça, fonce et débrouille toi" et j'allais à l'essentiel.

    Désormais, on a tous basculé, qui de PHP vers Python, qui de Perl vers Python, qui de Java vers Python et on est tous emberlificotés dans un système où cracher le moindre code demande des tests, le code, une revue de code, son déploiement automatisé vers l'environnement de recette/pré-prod/prod.

    A vivre au quotidien, c'est un peu l'enfer car, trivialement, le plaisir de coder est noyé dans une masse de travail rébarbative.

    Donc, ça m'intéresse et -limite- me soulage si cette manière de pratiquer n'est pas LA manière la plus courante.

  4. #4
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour

    Il reste que si le développement "intuitif" est souvent acceptable avec Python, il y a plusieurs points qui deviennent dangereux:
    - développement de gros projets (plusieurs dizaines de milliers de lignes de code)
    - développement avec plusieurs programmeurs
    - développement sous assurance qualité
    - Python est un langage assez permissif
    - Python est un langage interprété

    Par exemple, comme c'est un lange interprété, il ne suffit pas d'exécuter une fonction pour la valider: il faut compléter par un analyseur de code.

    Je suggère donc que, même avec Python, la nature et l'importance des méthodes de développement à utiliser soient adaptées au projet!

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 677
    Par défaut
    Salut,

    Citation Envoyé par Arioch Voir le message
    A vivre au quotidien, c'est un peu l'enfer car, trivialement, le plaisir de coder est noyé dans une masse de travail rébarbative.
    Quel que soit le langage, le contrôle qualité doit être proportionné aux risques (et aux conséquences) de constater des problèmes après la livraison/"mise en production".
    Après on a des problèmes d'organisation... car même si une bonne partie des vérification peut être faite avec des outils gratuits (mais coûteux à mettre en place), il a pas mal de monde pour vérifier que tout est fait dans les règles, avance suivant le planning projet, à prioriser les "bugs", ...

    Cette organisation là est coûteuse à mettre en place (ça marche par essais/erreurs/historique...) mais une fois qu'elle est "efficace" pour fabriquer du logiciels dans certains domaines, difficile de la "moduler" en fonction du projet (on va appliquer les mêmes exigences partout), on va plutôt moduler côté nombre et compétences de ceux qui codent.

    note: quelque part, les patrons arbitrent et décident. Pour ça, ils faut des indicateurs cohérents fournis (entre autre) par le contrôle qualité... et aux codeurs de suivre.

    Dans l'artisanat, on est beaucoup moins cornaqué... et les heures supplémentaires ne coûtent rien. Néanmoins, il faut savoir porter les casquettes de commercial, chef de projet, développeur, formateur,... et gérer ses risques.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Méthodologie de développement avec Maven ?
    Par BakaOnigiri dans le forum Maven
    Réponses: 0
    Dernier message: 07/07/2011, 13h23
  2. Méthodologie de développement
    Par sevyc64 dans le forum EDI/Outils
    Réponses: 3
    Dernier message: 12/05/2010, 21h10
  3. Base de données et méthodologie de développement.
    Par Pierre8r dans le forum JTheque
    Réponses: 1
    Dernier message: 10/08/2009, 17h43
  4. Méthodologie de développement
    Par furiet dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 21/01/2009, 20h03
  5. Réponses: 6
    Dernier message: 25/10/2007, 18h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo