Par “structurer” nous entendons nos decisions que vous faites concernant De quelle fai§on votre projet atteint correctement le objectif.

Posted on Posted in sites-de-rencontre-hispaniques app

Par “structurer” nous entendons nos decisions que vous faites concernant De quelle fai§on votre projet atteint correctement le objectif.

Nous avons besoin de considerer comment exploiter convenablement les fonctionnalites de Python pour creer un code propre et efficace. En termes confortables, “structurer” signifie produire du code propre dont la logique et des dependances paraissent claires ainsi que la facon dont nos fichiers et dossiers paraissent organises dans le systeme de fichiers.

Quelle fonctions doivent aller dans quels modules? Comment circule la donnee au projet? Quelles fonctionnalites et fonctions peuvent etre groupees ensemble et isolees? En repondant a des questions comme ce qui, vous pouvez commencer a planifier, au sens large, ce a quoi votre service fini ressemblera.

Dans cette section, nous allons jeter un ?il encore pres i  propos des systemes de module et d’import de Python tel ils paraissent les elements centraux afin d’effectuer respecter une structure dans votre projet. Nous discuterons ensuite des Plusieurs perspectives sur comment construire du code lequel pourra etre etendu et teste de maniere fiable.

Structure du depot

C’est important

Juste comme le style de codage, le design d’API, et l’automatisation paraissent essentiels a un cycle de developpement sain, la structure d’un depot reste une part cruciale de l’architecture de ce projet.

Quand un utilisateur potentiel ou 1 contributeur arrive sur la page d’un depot, ils voient diverses choses:

Le nom des travaux

J’ai description des travaux

Un tas de fichiers

C’est seulement quand ils font defiler la page que les utilisateurs verront le README de ce projet.

Si la depot reste 1 amas massif de fichiers ou une pagaille imbriquee de repertoires, ils risquent de regarder ailleurs avant meme de lire votre belle documentation.

Habillez vous pour le job que vous voulez, jamais pour le job que vous avez.

Bien sur, les premieres impressions ne semblent gui?re tout. Vous et vos collegues allez passer un nombre d’heures incalculable a bosser sur votre depot, finalement i?tre intimement familier avec l’ensemble des coins et recoins. Son organisation est consequente.

Depot exemple

tl;dr (acronyme de “Too Long, I Didn’t Read it”): C’est votre que Kenneth Reitz recommande.

Entrons au sein d’ certains details.

Le module actuel

./sample/ ou ./sample.py

Le code qui nous interesse

Votre paquet de module reste le point central du depot. Cela ne devrait gui?re etre mis a l’ecart:

Si votre module consiste en un seul fichier, vous pourrez le placer en direct a Notre racine de ce repertoire:

Votre bibliotheque n’appartient pas a un sous-repertoire ambigu tel src ou python.

Licence

Se couvrir juridiquement.

Ceci est vraisemblablement la partie la plus importante de votre depot, en dehors du code source lui-meme. Mes revendications de copyright et le texte en licence complet devraient etre dans votre fichier.

Si vous n’etes pas sur d’une licence que vous souhaitez choisir Afin de ce projet, consultez choosealicense.com.

Naturellement, vous etes aussi libre de publier votre code sans une licence, mais cela risque potentiellement d’empecher beaucoup de personnes d’utiliser la code.

Setup.py

Gestion en distribution et de la creation de paquets

Si votre paquet de module reste a Notre racine de ce depot, ceci devrait evidemment etre aussi a la racine.

Fichier requirements

Dependances de developpement.

Un fichier requirements de pip devrait etre place a J’ai racine du depot. Cela se doit de specifier les dependances requises Afin de contribuer au projet: les tests, les builds et J’ai generation une documentation.

Si la projet n’a aucun dependances de developpement ou vous preferez la configuration de l’environnement de developpement via setup.py , ce fichier peut s’averer non necessaire.

Documentation

Documentation de qualite des paquets.

Ils font tres peu de raison pour cela qu’il y a ailleurs.

Suite de tests

./test_sample.py ou ./tests

Integration de paquets et tests unitaires

En debutant, une rapide suite de tests existera souvent dans un seul fichier:

Une fois que Notre suite de tests grossit, vous pourrez deplacer vos tests dans un repertoire, comme ceci:

Evidemment, ces modules de test doivent importer votre module empaquete concernant le tester. Vous pouvez le Realiser de quelques facons:

Attendre que le paquet soit installe au sein d’ site-packages.

Choisir un modification de chemin simple (mais explicite) Afin de resoudre le paquet correctement.

Je recommande fortement ce soir. Reclamer a un developpeur de lancer setup.py develop Afin de tester une base de code qui change activement lui demande aussi d’avoir une configuration d’environnement isole Afin de chaque instance de la base de code.

Pour apporter votre contexte d’importation aux tests individuels, creez un fichier tests/config.py.

Ensuite, en modules de test individuels, importez le module tel ceci:

Cela fonctionnera toujours comme prevu peu importe la technique d’installation.