Master Yoda wrote: |
Γενικότερα έχω αρχίσει να πιστεύω ότι η Ν-Tier αρχιτεκτονική είναι λίγο ουτοπική. Στην πράξη κάποια πράγματα συμφέρει να τα μπερδέψεις στα tiers για λόγους ποικίλους. Αυτομάτως καταρρέει η ιδέα της N-Tier αρχιτεκτονικής. Προσωπικά αυτό μου λεει απλά να μη δίνω και τόση σημασία σε αυτήν την ορολογία που πιστεύω ότι εξυπηρετεί περισσότερο εμπορικού σκοπούς!
|
|
Η n-tier αρχιτεκτονική, όπως και τόσα άλλα πράγματα στην πληροφορική, δεν αποτελούν πανάκεια ούτε το "χρυσό χάπι" για όλες τις περιπτώσεις. Ειναι όμως μια δοκιμασμένη αρχιτεκτονική για projects που ποικίλλουν από μικρά ως τεράστια, και σκοπό της έχει να διαχωρίσει τα διάφορα layers της εφαρμογής ωστε να κάνει τη σχεδίαση, τη συντήρηση και την επέκτασή της ευκολότερες. Σίγουρα για να κάνεις κάτι ευκολότερο θα πρέπει αρχικά να το σχεδιάσεις λίγο πιό περίπλοκα από τη βασική προσέγγιση (code now, think later). Ομως, δεν υπάρχουν 100% σαφείς προδιαγραφές για μια n-tier αρχιτεκτονική. Ητοι, όπως και στα design patterns, δεν είσαι αναγκασμένος να υλοποιήσεις στο 100% αυτό που ορίζεται από μια προτεινόμενη προδιαγραφή ή από ένα best practice, αλλά καλείσαι να το προσαρμόσεις στις ανάγκες της εκάστοτε εφαρμογής. Ναι, αλλού μπορεί να μεταφέρεις ένα μέρος του business logic στο data tier και αλλού όχι. Αλλού ενδέχεται να μην έχεις καν business logic layer, αν και τελικά μετά από πολλά διαπιστώνει κανείς οτι ακόμα και στις μικρότερες εφαρμογές ορισμένες φορές σχεδιαστικά συμφέρει, παρ'όλο που στην αρχή φαίνεται too much.
Τον τελευταίο καιρό κατασκεύαζα μια μικρή win32 εφαρμογή δημιουργίας προσφορών για μια συγκεκριμένη οικογενεια προϊόντων. Ξεκίνησα φτιάχνοντας μια monolithic εφαρμογή (ολα σε ένα), ωσπου διαπίστωσα οτι η διαδικασία υπολογισμού των τιμών ήταν εξαιρετικά περίπλοκη (attribute-based), και πλήρωσα το λάθος μου αυτό "σκοτώνοντας" όλο τον κώδικα που είχα φτιάξει και ξαναφτιάχνοντας την εφαρμογή ως 3-tiered από την αρχή. Πραγματικά, η απόσβεση που είχα ήταν τεράστια, μια και ο πελάτης διόρθωσε στην πορεία ορισμένα κομμάτια των προδιαγραφών διαφοροποιώντας λίγο τα αρχικά ζητούμενα, αλλά και ζήτησε επεκτάσεις οι οποίες θα ήταν αδύνατο να γίνουν σε μια 1-tier εφαρμογή χωρίς ο προγραμματιστής να καταναλώσει ικανή ποσότητα ηρεμιστικών.
Επειδή βρίσκομαι σε διακοπές και γράφω από internet cafe, επιφυλάσσομαι να γράψω περισσότερα όταν γυρίσω στην Αθήνα.
Σωτήρης Φιλιππίδης
DotSee Web Services