Question

Voici la situation: l'entreprise que je travaille à droite m'a donné maintenant la liberté de travailler avec Java ou Python pour développer mes applications. La société a une expérience principalement en java.

J'ai décidé d'aller avec python, donc ils étaient très heureux de me demander de donner l'entretien à tous les projets / scripts python liés à la maintenance de la base qu'ils ont.

Ce ne est pas si mal à gérer ce genre de choses et son genre de plaisir à voir combien de temps libre, j'ai comparé aux programmeurs Java. Il y a juste un mais, la mise en page des projets est un gâchis.

Il y a beaucoup de scripts qui se trouvaient simplement dans des machines virtuelles partout dans l'entreprise. Certains d'entre eux ont des fonctionnalités complexes qui se propage à travers quelques modules (4 au maximum.)

Alors que d'y penser à ce sujet, je compris que je ne sais pas comment répondre, voici donc 3 questions.

  • Où puis-je mettre les scripts autonomes? Nous utilisons git comme notre système de versioning.
  • Comment structurer la mise en page du projet d'une manière que l'utilisateur n'a pas besoin de creuser profondément dans les dossiers pour exécuter les programmes (en java j'ai créé un pot ou un pot et un script shell pour gérer certaines opérations bootstrap.)
  • Qu'est-ce qu'un moyen standard pour créer des modules qui permettent réutilisabilité facile (mycompany.myapp.mymodule?)
Était-ce utile?

La solution

  

Où dois-je mettre des scripts autonomes?

Vous les organiser « fonctionnellement » -. D'après ce qu'ils font et pourquoi les gens les utilisent

Le langage (Python vs. Java) est hors de propos.

Vous devez penser de scripts comme de petites applications centrées sur un besoin et de créer des structures de répertoire appropriées pour cette application.

Nous utilisons /opt/thisapp et /opt/thatapp. Si vous voulez un point de montage partagé, vous pouvez utiliser un chemin différent.

  

Comment structurer la mise en page du projet d'une manière que l'utilisateur n'a pas besoin de creuser profondément dans les dossiers pour exécuter les programmes

Vous les organiser « fonctionnellement » - en fonction de ce qu'ils font et pourquoi les gens les utilisent. Au niveau supérieur d'un répertoire /opt/thisapp, vous pourriez avoir un __init__.py (parce qu'il est un paquet) et peut-être un script main.py qui commence le vrai travail.

En Python 2.7 et Python 3, vous avez le module runpy. Avec cela, vous le nom de votre script principal de haut niveau __main__.py

http://docs.python.org/library/runpy.html # module runpy

  

Qu'est-ce qu'un moyen standard pour créer des modules qui permettent réutilisabilité facile (mycompany.myapp.mymodule?)

Lisez à propos packages. http://docs.python.org/tutorial/modules.html#packages

Autres conseils

package est un moyen de la création d'une hiérarchie du module: si vous faites un fichier appelé __init__.py dans un répertoire, Python traitera ce répertoire comme un paquet et vous permet d'importer son contenu en utilisant les importations en pointillé:

spam \
       __init__.py
       ham.py
       eggs.py

import spam.ham

Les modules à l'intérieur d'un paquet peut référencer les uns les autres. - voir les documents

Si ce sont tous les scripts de maintenance DB, je Organisons appelé DB ou quelque chose, et placez-les tout en elle. Vous pouvez avoir les sous-paquetages pour les plus complexes. Donc, si vous aviez un script pour, je ne sais pas, nettoyer les journaux de transactions, vous pouvez le mettre dans ourDB.clean et faire

import ourDB.clean
ourDB.clean.transaction_logs( )
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top