Σταθερότητα του API¶
Το Django δεσμεύεται όχι μόνο για τη σταθερότητα του API αλλά και για τη μελλοντική του, από την έκδοση 1.0, συμβατότητα. Με άλλα λόγια, ο κώδικας που γράφετε, χρησιμοποιώντας μια έκδοση του Django, θα συνεχίσει να λειτουργεί και με μελλοντικές εκδόσεις. Θα χρειαστεί, μόνο, να κάνετε μερικές μικροαλλαγές όταν αναβαθμίζετε την έκδοση του Django για το project σας: δείτε στην ενότητα «Αλλαγές μη συμβατές με παλαιότερες εκδόσεις» του άρθρου σημειώσεις διανομής για την έκδοση (ή τις εκδόσεις) στην οποία αναβαθμίζετε.
Τι σημαίνει «σταθερότητỶ
Μέσα σε αυτό το πλαίσιο, σταθερότητα σημαίνει:
Όλα τα δημόσια APIs (το οτιδήποτε μέσα σε αυτό το εγχειρίδιο) δεν θα μετακινηθούν ή μετονομαστούν χωρίς πρώτα να ορίσουν τα κατάλληλα aliases προκειμένου να είναι συμβατά με παλαιότερες εκδόσεις.
Όταν προστεθούν νέα features σε αυτά τα δημόσια APIs – που είναι αρκετά συχνό φαινόμενο – δε θα σπάσουν ή αλλάξουν την έννοια των ήδη υπαρχουσών μεθόδων. Με άλλα λόγια, «σταθερότητα» δεν σημαίνει (απαραιτήτως) «τελικό», δηλαδή, αν προσθέσουμε μια μέθοδο Χ σε κάποιο API και στο μέλλον την εμπλουτίσουμε να δέχεται περισσότερα ορίσματα αλλά εσείς συνεχίζετε να χρησιμοποιείτε την πρώτη έκδοση της μεθόδου αυτής, τότε η μέθοδος που χρησιμοποιείτε παραμένει «σταθερή» (στη λειτουργία της) αλλά όχι στο «τελικό» της στάδιο (καθώς προστέθηκαν νέα features σε αυτή).
Αν, για κάποιο λόγο, ένα API, δηλωμένο ως σταθερό, χρειαστεί να αφαιρεθεί ή να αντικατασταθεί, θα οριστεί ως deprecated και θα παραμείνει στο Django για τις επόμενες δύο διανομές, τουλάχιστον. Αν χρησιμοποιείτε, στον κώδικα σας, αυτό το API τότε θα εμφανίζονται κατάλληλα warnings για να σας ενημερώνουν σχετικά με το deprecation του API αυτού.
Δείτε στις Official releases για περισσότερες πληροφορίες σχετικά με την αρίθμηση των εκδόσεων του Django και την πολιτική του deprecation του Django.
Ο μοναδικός λόγος που θα μας αναγκάσει να «σπάσουμε» τη συμβατότητα με παλαιότερες εκδόσεις είναι κάποιο σφάλμα στο API ή κάποιο κενό ασφάλειας.
Σταθερά APIs¶
Γενικά, οτιδήποτε είναι γραμμένο στο εγχειρίδιο του Django, με εξαίρεση αυτά που είναι γραμμένα στα εσωτερικά του Django, θεωρείται σταθερό.
Εξαιρέσεις¶
Ωστόσο, υπάρχουν μερικές εξαιρέσεις στην ανωτέρω υπόσχεση σχετικά με τη σταθερότητα και την συμβατότητα με παλαιότερες εκδόσεις.
Διορθώσεις σε θέματα ασφάλειας¶
Αν αντιληφθούμε κάποιο πρόβλημα σχετικά με την ασφάλεια – από κάποιον που ακολούθησε την διαδικασία αναφοράς σφαλμάτων για θέματα ασφάλειας – θα κάνουμε ότι είναι δυνατόν για να το φτιάξουμε. Αν χρειαστεί, για λόγους ασφάλειας, θα «σπάσουμε» τη συμβατότητα με παλαιότερες εκδόσεις. Βλέπετε, η ασφάλεια προέχει της συμβατότητας.
APIs που έχουν οριστεί ως εσωτερικά¶
Κάποια συγκεκριμένα APIs έχουν οριστεί ως «εσωτερικά» με δύο τρόπους:
- Μερικά σημεία στο εγχειρίδιο αναφέρονται στα «εσωτερικά» και τα αποκαλούν κατ’ αυτό τον τρόπο. Αν το εγχειρίδιο αναφέρει ότι κάτι είναι εσωτερικό, διατηρούμε το δικαίωμα να το αλλάξουμε.
- Συναρτήσεις, μέθοδοι και άλλα objects με το πρόθεμα της κάτω παύλας (
_
). Αυτός είναι ο συνήθης τρόπος στην Python για να προσδιορίσουμε κάτι ως private. Αν κάποια μέθοδος ξεκινάει με μια_
, τότε θεωρείται εσωτερικό API.