J'ai commencé une application dans Google App Engine droit quand il est sorti, à jouer avec de la technologie et de travailler sur un petit projet que j'avais pensé depuis longtemps mais jamais eu l'occasion de le commencer. Le résultat est BowlSK. Cependant, comme il a grandi, et les fonctionnalités ont été ajoutées, c'est devenu vraiment difficile de garder les choses organisées, principalement en raison du fait que c'est mon premier projet de python, et je ne savais rien à ce sujet jusqu'à ce que j'ai commencé à travailler.
Ce que j'ai:
- Niveau principal contient:
- tous les .py fichiers (il ne savait pas comment faire des paquets de travail)
- tous les .modèles html pour les principales pages de niveau
- Les sous-répertoires:
- des dossiers distincts pour les css, images, js, etc.
- les dossiers qui les détiennent .modèles html pour subdirecty de type url
Exemple:
http://www.bowlsk.com/ cartes à la page d'Accueil (par défaut), modèle "index.html"
http://www.bowlsk.com/games/view-series.html?series=7130 cartes de ViewSeriesPage (encore une fois, package par défaut), modèle "games/view-series.html"
C'est méchant. Comment restructurer? J'ai eu 2 idées:
-
Dossier principal contenant: appdef, index, main.py?
- Sous-dossier pour code. Est-ce que avez à être mon premier paquet?
- Sous-dossier pour les modèles. Hiérarchie de dossiers correspondent paquet hiérarchie
- Les sous-dossiers individuels pour le css, images, js, etc.
-
Dossier principal contenant appdef, index, main.py?
- Sous-dossier pour code + modèles. De cette façon, j'ai la classe de gestionnaire droit à côté du modèle, car à ce stade, je vais ajouter beaucoup de fonctionnalités, de sorte que les modifications apportées à une moyenne de modifications à l'autre. Encore une fois, dois-je avoir ce nom de dossier être le premier nom de package pour mes cours? J'aimerais le dossier "src", mais je ne veux pas que ma classe soit "src.WhateverPage"
Est-il une meilleure pratique? Avec Django 1.0 sur l'horizon, il y a une chose que je peux faire maintenant pour améliorer ma capacité à intégrer avec elle quand il devient l'officiel GAE moteur de template? Je voudrais simplement commencer à essayer ces choses, et de voir ce qui semble mieux, mais pyDev de la prise en charge du refactoring ne semble pas gérer les déplacements des paquets très bien, donc il sera probablement une tâche non triviale pour obtenir tout cela fonctionne à nouveau.
Merci.