σχεδιασμού του έργου διάταξης / FS για τα μεγάλα έργα Django

ψήφοι
40

Ποιος είναι ο καλύτερος τρόπος για να σχεδιάσει ένα μεγάλο έργο Django; Τα μαθήματα παρέχουν απλές οδηγίες για την εγκατάσταση εφαρμογών, τα μοντέλα και τις απόψεις, αλλά υπάρχουν λιγότερες πληροφορίες σχετικά με το πώς οι εφαρμογές και τα έργα θα πρέπει να αναλύονται, πόσο κοινή χρήση είναι επιτρεπτή / απαραίτητη μεταξύ των εφαρμογών σε ένα τυπικό έργο (προφανώς αυτό εξαρτάται σε μεγάλο βαθμό το έργο) και πώς / πού θα πρέπει να διατηρούνται γενικά πρότυπα.

Υπάρχει κάποιος που έχει παραδείγματα, προτάσεις και εξηγήσεις ως προς το γιατί μια συγκεκριμένη διάταξη του έργου είναι καλύτερο από το άλλο; Είμαι ιδιαίτερα ενδιαφέρονται για την ενσωμάτωση μεγάλου αριθμού των δοκιμών μονάδας (2-5x το μέγεθος της πραγματικής βάσης κώδικα) και την εξωτερική ανάθεση κορδόνι / πρότυπα.

Δημοσιεύθηκε 04/09/2008 στις 17:36
πηγή χρήστη
Σε άλλες γλώσσες...                            


6 απαντήσεις

ψήφοι
6

Αυτή η σελίδα κάνει καλά τη δουλειά του την αντιμετώπιση ορισμένων από τις ερωτήσεις μου: http://www.b-list.org/weblog/2006/sep/10/django-tips-laying-out-application/

ΕΙΔΙΚΑ:

  1. Για να ορίσετε ετικέτες πρότυπο έθιμο ή φίλτρα, θα πρέπει να δημιουργήσετε ένα υπο-κατάλογο στον κατάλογο που ονομάζεται templatetags της εφαρμογής, και πρέπει να περιέχει ένα αρχείο με το όνομα __init__.py έτσι ώστε να μπορεί να εισαχθεί ως μονάδα Python.
  2. Για να ορίσετε τις δοκιμές μονάδα, η οποία θα αυτόματα να παρατηρήσει από πλαίσιο ελέγχου Django του, τα βάζουμε σε μια μονάδα που ονομάζεται τεστ (που μπορεί να είναι είτε ένα αρχείο με το όνομα tests.py ή ένα κατάλογο με το όνομα δοκιμές). Το πλαίσιο δοκιμών θα βρείτε επίσης τυχόν doctests στην εν λόγω μονάδα, αλλά η προτιμώμενη θέση για εκείνους που είναι, φυσικά, οι docstrings των κατηγοριών ή λειτουργίες έχουν σχεδιαστεί για τη δοκιμή.
  3. Για την παροχή εξατομικευμένων SQL που θα εκτελεστεί αμέσως μετά την εγκατάσταση της εφαρμογής σας, να δημιουργήσετε ένα υπο-κατάλογο που ονομάζεται SQL μέσα στο κατάλογο της εφαρμογής? τα ονόματα των αρχείων θα πρέπει να είναι τα ίδια με τα ονόματα των μοντέλων της οποίας πίνακες αυτοί θα λειτουργούν? Για παράδειγμα, εάν έχετε μια εφαρμογή που ονομάζεται ιστολόγιο που περιέχει το όνομα μοντέλου εισόδου, τότε το αρχείο sql / entry.sql μέσα στο directory της εφαρμογής μπορεί να χρησιμοποιηθεί για να τροποποιήσει ή εισαγωγή δεδομένων σε πίνακα καταχωρήσεων από τη στιγμή που έχει δημιουργηθεί.

Η σημείωση για tests.py και δοκιμές (ο κατάλογος) ισχύει επίσης για τα μοντέλα, η οποία βοηθά στην αντιμετώπιση του προβλήματος της ύπαρξης τρόπο σε πολλές δοκιμές (ή μοντέλα) για ένα αρχείο.

Θα ήθελα ακόμα να δούμε μερικά παραδείγματα / προτάσεις για την εφαρμογή / έργου καταρρεύσει, και μεγάλες περιοχές Django που λειτουργούν καλά.

Απαντήθηκε 04/09/2008 στις 17:44
πηγή χρήστη

ψήφοι
17

Οι κύριες κατευθυντήριες γραμμές είναι παρόμοια με οποιοδήποτε άλλο μεγάλο έργο κώδικα. Οι εφαρμογές θα πρέπει να αντιμετωπίσει ένα ενιαίο, σαφώς καθορισμένες ευθύνες. Το όνομα «αίτηση» είναι ψευδεπίγραφος? Django εφαρμογές θα πρέπει να θεωρηθεί περισσότερο ως επαναχρησιμοποιήσιμα συστατικά τα οποία μπορεί να συνδεθεί μαζί για να δημιουργήσουν μια πραγματική εφαρμογή. Δοκιμές για κάθε εφαρμογή θα πρέπει να περιέχονται μέσα σε αυτό το app. Οι εφαρμογές θα πρέπει να αποσυνδεθεί από την άλλη όσο το δυνατόν περισσότερο, αλλά σαφώς θα υπάρχουν εξαρτήσεις, οπότε ο στόχος πρέπει να είναι να κρατήσει το γράφημα εξάρτησης τόσο απλό και λογικό όσο το δυνατόν.

Προτιμώ να κρατήσει όλα τα πρότυπα για ένα έργο σε ένα ενιαίο κατάλογο προτύπων έργων σε όλη την, με ένα υποκατάλογο για κάθε εφαρμογή (χρησιμοποιώντας ένα υποκατάλογο πρότυπο για κάθε εφαρμογή είναι μια πολύ ισχυρή σύμβαση στο Django, καθώς αποφεύγει τις συγκρούσεις όνομα του προτύπου μεταξύ των εφαρμογών) . Ο λόγος για ένα ενιαίο κατάλογο προτύπων έργων σε ολόκληρη είναι ότι τα πρότυπα, τα δέντρα πρότυπο κληρονομιά, και τα ονόματα μπλοκ μπορεί να είναι αρκετά συγκεκριμένο έργο, γι 'αυτό είναι δύσκολο να παρέχουν «default» πρότυπα app που μπορούν να συνδεθούν σε οποιοδήποτε έργο. Έχουν γίνει κάποιες προσπάθειες να εγκατασταθούν σε τυποποιημένες συμβάσεις ονομασίας για τα πρότυπα σε όλη την τοποθεσία βάσης και των τμημάτων για τα καθορίζουν, αλλά δεν έχω δει ένα πρότυπο βγει ακόμα (ο τρόπος που κάνουμε τα πράγματα πάνω σε Pinax είναι ίσως το πιο κοντινό έχουμε σε ένα πρότυπο).

Re «εξωτερίκευση string», αν εννοείτε i18n και l10n, Django έχει ισχυρή υποστήριξη για το ότι και τα τυποποιημένα μέρη όπου βάζει τα αρχεία .po - ελέγξτε τα έγγραφα .

Απαντήθηκε 25/09/2008 στις 20:30
πηγή χρήστη

ψήφοι
3

Το έργο Pinax είναι χτισμένο γύρω από την ιδέα των μικρών επαναχρησιμοποιήσιμων εφαρμογές, οι οποίες μπορούν εύκολα να συγκεντρωθούν σε ένα έργο. Έχουν χρησιμοποιηθεί το πρόγραμμα Cloud 27 ως ένα έργο επίδειξης.

Το έργο Django δουλεύω (που ονομάζεται Basie. Είναι προ-0,1, οπότε δεν υπάρχει σύνδεση ακόμα.) Προσπαθεί να ακολουθήσει το μοντέλο Pinax, και μέχρι στιγμής ότι λειτουργεί έξω αρκετά καλά.

Απαντήθηκε 31/10/2008 στις 01:22
πηγή χρήστη

ψήφοι
1

τρέχουσα διάταξη μου προέρχεται από μένα θέλουν να έχουν μια δοκιμή-έκδοση από τις περιοχές μου. Αυτό σημαίνει ότι έχει δύο σχέδια για κάθε χώρο, δεδομένου ότι χρειάζονται διαφορετικές διαμορφώσεις, και με αναγκάζει να κινηθούν όλες τις εφαρμογές των έργων.

Έχω δημιουργήσει δύο φακέλους: $ APP_ROOT / devel και $ APP_ROOT / prod. Αυτά περιέχουν όλες τις εφαρμογές. Χρησιμοποιώντας τον έλεγχο πηγή (στην περίπτωση git μου) έχω τις εφαρμογές στο devel στην αναθεώρηση HEAD, ενώ οι εφαρμογές σε prod κλειδωμένο στην ετικέτα PROD. Τα πρότυπα έχουν επίσης το δικό τους φάκελο με την ίδια διάταξη, όπως τις εφαρμογές.

Τώρα είμαι σε θέση να κάνει όλα εξέλιξη μου στο φάκελο devel-εφαρμογές και την αντίστοιχη πρότυπο-φάκελο. Όταν έχω κάτι είμαι ευχαριστημένος με, έχω μια ετικέτα η αναθεώρηση και ενημέρωση prod.

Απαντήθηκε 09/01/2009 στις 11:35
πηγή χρήστη

ψήφοι
9

Βρήκα διάταξη Zachary είναι αρκετά χρήσιμο Blog »συμβάσεις Django έργου Zachary Voase του, Revisited.

Απαντήθηκε 22/04/2010 στις 02:17
πηγή χρήστη

ψήφοι
1

Μου αρέσει πολύ Randall Degges' θέση σε αυτό το θέμα. Φεύγει από πληροφορίες σχετικά με το πώς να κολλήσετε τις ρυθμίσεις αρχεία μαζί, αλλά θα έχουν μια θέση σε αυτό θα είμαι σε θέση να συνδέσει, αλλά προς το παρόν ο καθένας μπορεί να ελέγξει έξω repo μου , όπου έχω συμπεριλάβει κάποια κατεύθυνση στην readme.

Απαντήθηκε 21/07/2012 στις 13:40
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more