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 :

Mon premier projet


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Mon premier projet
    Bonjour à tous,

    Voici mon premier projet https://github.com/jojotango/BigBlockList un script
    qui en gros fait le même travail que Peer Guardian en sûrement moins bien

    Il parse, télécharge des listes et les concatènes en une seule

    Avant de programmer des choses plus intéressantes.
    J'aimerais avoir des avis de devs sur... tout!

    Je me pose beaucoup de questions sur :

    • Les données reçus, si je créer une "class" qui peut être utiliser par un autre dev dois je tester les arguments donnés?
      Pour utilisateur c'est évident mais pour un developpeur.
    • La structure (src, core, lib, doc, man)
      Je vois beaucoup de codes source structuré différemment.
    • La construction d'un paquet? Comment gérer les chemins des libs persos?
      Faut-il utiliser make? même si ce n'est pas un langage compilé.
    • Même la POO est elle utiliser à correctement ou mal exploité?



    Je vous remercie pour votre attention.

    PS: Je suis sous Nunux mais je pense qu'il marche aussi sous Windows
    Dernière modification par Invité ; 22/08/2017 à 10h52. Motif: Presentation

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour, il y a quelqu'un ?

    Je suis un peu comme un diesel.. C'est un peu plus claire dans ma ptite tête.
    Du coup je pense qu'il faut partir sur la création d'un "module" je trouve ce terme un peu vague d'ailleurs..

    Wikipedia:
    Le terme module en programmation identifie une structure de programmation.
    Donc pour moi Modude == Container de librairies..

    en partant de là je me retrouverais avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    |---- main.py
    |---- setup.py
    |---- Module
               |---- __init__.py    
               |---- NomDuModule.py
               |    
               |---- Librairie1
               |          |---- __init__.py
               |          |---- fichier1.py
               |          |---- fichier2.py
               |          |---- ...
               |
               |---- Libairie2
               |          |---- __init__.py
               |          |---- ...
    Comme ça mon module sera installé dans le python path (Dans lequel ?!? aucune idée) avec un ./setup.py install...
    Ensuite un petit script genre:
    /usr/bin/monmodule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    """
    Ce script importe et instancie mon module "module"
    Pour pouvoir être exécuté
    il doit être placé dans un chemin du $PATH pour les linuxiens
    """
    from module import NomDuModule
     
    NomDuModule('/var/log/NomDuModule/', '/etc/NomDuModule')
    Pour Chemins "logs et config" je pourrais les mettre en argument dans ma class "NomDuModule" et utiliser des setters pour les attributs des autres classes.

    Qu'en pensez vous? C'est Pythoniquement juste?
    Dernière modification par Invité ; 29/08/2017 à 14h22.

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Salut,

    Citation Envoyé par jojotango Voir le message
    Qu'en pensez vous? C'est Pythoniquement juste?
    Si vous cherchez une sorte de logique de pour découper votre programme en composants, packages, modules, classes, fonctions,... il n'y en a pas: c'est le développeur qui choisit son découpage à partir de sa propre logique, d'un historique du code, de son humeur,.... Il doit juste s'appliquer à respecter quelques contraintes: ce que sait/peut faire le langage pour réaliser ces découpages et arriver à expliquer/motiver ses choix pour comprendre où ranger/trouver (ou l'expliquer à d'autres).

    Pour faire une analogie avec la vie de tous les jours, jetez un œil à l'ameublement d'une cuisine.
    C'est plein de tiroirs, placards,... qu'il faudra bien remplir pour ranger: vaisselles, casseroles, denrées alimentaires,... et chacun pourra choisir un rangement adapté à son utilisation de la cuisine.
    Ceci dit, si vous aidez à ranger après un bon repas, il vous faudra demander où ranger quoi... car "la logique" de ce rangement ne sera pas la votre et vous allez devoir apprendre.



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

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour @wiztricks et merci de votre réponse.

    L'image de la cuisine est assez parlante
    En faite il n'y a pas de secret il faut tester se tromper.. Je n’arrête pas de faire et de refaire :/ mais c'est formateur, car
    avant je ne voyait même pas l'utilité d'un __init__.py

    Quand j'aurais trouvé des solutions fiables je ferai un edit.

  5. #5
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 970
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 970
    Par défaut
    Je débute aussi en Python mais je vois que tu es déjà plus loin

    Par contre, j'ai de l'expérience de gros projet en Perl, .NET, Java pour Android...

    Je pense qu'il ne faut pas créer une tripotée de fichiers si ce n'est pas immédiatement nécessaire, et s'il y a une "chance que"...
    Reste dans la simplicité et utilise des classes où tu dois en utiliser. Comme en Java, on pourrait définir des classes à l'infini mais il faudra ensuite le supporter.
    Crée tes petites classes et définis de bonnes méthodes, de bons attributs... C'est en forgeant qu'on devient forgeron.

    Rem: dernièrement, j'ai eu l'idée de créer un plan de lecture (Bible).
    Misère qu'elle prise de tête. Quand on a le résultat final c'est très simple mais pour y arriver avec les menus...
    Pleins de possibilités, de choix re-revus.
    Au final => quelque-chose de simple, QUI FONCTIONNE et qui couvre beaucoup de choses.

    Si tu fais de mauvais choix, tu t'en rendras vite compte avec la db, l'interface utilisateur...
    Ce qui m'a vraiment boosté et débloqué c'est quand je suis rentrer dans sa programmation alors que j'avais encore des questions en tête.
    Commence par la db.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour @hotcryx, merci du conseil

    Effective t'as raison je vais commencer par virer le fichier /resources/dir.py qui n'est pas vraiment utile.
    Le fichier /resources/manips.py aussi avec ses class MUrl et MFile c'est pas très parlant il faudrait que je fasse du 2 en 1,
    ou au moins trouvé un meilleur nom..

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/04/2008, 14h58
  2. Mon premier projet en C++
    Par oranocha dans le forum C++
    Réponses: 4
    Dernier message: 05/03/2008, 14h14
  3. Besoin d'aide pour guider mon premier projet
    Par FabaCoeur dans le forum Débuter avec Java
    Réponses: 16
    Dernier message: 03/12/2007, 09h09
  4. Mon premier projet GWT
    Par gufra dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 07/11/2007, 13h20
  5. [ affichage contacts ] Mon premier projet GWT
    Par hocinema dans le forum GWT et Vaadin
    Réponses: 5
    Dernier message: 26/08/2007, 21h15

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