Quelqu'un peut-il s'il vous plaît la preuve pourquoi il est une mauvaise pratique à utiliser la solution comme ceci:django/importations de python perfomance
Dans les vues de django dans 98% des cas, vous devez utiliser
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.utils.translation import ugettext as _
de toute façon dans mon projet mon chaque point de vue a ces importations et tout est utilisé presque dans chaque seconde fonction d'une vue: maintenant ajouter quelques modèles et formes
from datetime import datetime
from django.conf import settings
from django.contrib.auth.models import User
from django.core.urlresolvers import reverse
from django.core import paginator
from django.db import connection
from django.db.models import Q
from django.http import HttpResponseRedirect, Http404, HttpResponse
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django.utils.translation import ugettext as _
, et j'ai 50 lignes de conneries qui est impossible à r pas du tout.
La première chose qui m'est venue à l'esprit est bien sûr de faire plus de vues, de diviser certaines opérations et etc et etc .. mais toujours environ 30 lignes d'importations tuant mon orientation en code.
Ensuite, j'ai juste décidé de mettre tout ce qui est utilisé dans les vues par 95% du temps, dans le répertoire /project/app/imports/view.py. Maintenant, j'ai toutes les choses courantes avec ONE importer, mais mon collègue m'a attaqué, qu'il est très difficile de lire ce genre de code, parce que vous ne pouvez pas voir ce qui est importé, et pourquoi diable il est si difficile de ouvre un onglet de plus dans votre IDE .. ??? [en particulier ceci va aux utilisateurs de vim, ils ont des FRAMES, et il utilise vim]
J'ai fait la même chose avec les modèles, mes modèles ont leur propre répertoire, parce qu'il y a plus de 50 là dedans, et ces fichiers ne sont pas petits - environ 150 lignes chacun .. Même ces fichiers ont peu de modèles à l'intérieur .. donc je vais juste faire quelque chose comme:
from myapp.models.mymodel import *
et il y a quelques endroits où je fais simplement: from myapp.models import *
[ .py de initialisation myapp/imports dir a lieu ici]
Problèmes:
1) ok donc premier problème est l'espace de noms, ce type d'importation de modèle est peut-être vraiment ridicule .. mais la décision avec des vues et des formes, est tout simplement rien lazziness pour ouvrir un onglet supplémentaire dans votre IDE
2) problème de performance? mon collègue se disputant vraiment beaucoup avec cet argument, que "chaque importation prend 256kb de RAM" ?? (en exécutant le fichier .pyc compilé? Non je ne crois pas que;)
La question en fait est sur le problème de performance en raison des importations.
p.s. Je suis vraiment nouveau en python (juste 3 mois), et j'ouvre les arguments OBJECTIFS pour tous les problèmes et inconvénients de cette solution.
MISE À JOUR
Une fois que je posé la question sur la façon de déplacer les importations de fichier autonome pour que personne ne se plaint de cette =) question est here
il ne s'agit pas de paresse de l'écriture, mais de la lecture, cela fait tout le désordre dans le code. donc ce n'est pas un argument de toute façon. Parlant de la performance, il a également dit que parce que ce projet aura des tonnes de visiteurs par jour [cela ira vraiment énorme], cela pourrait être un problème – holms
btw Je parlais de mettre toutes les importations en fichier autonome =) – holms
@holms, je sais exactement de quoi vous parlez. Je vous appelle simplement à vous être paresseux du point de vue de vos collègues. – aaronasterling