Ποια είναι η διαφορά μεταξύ αρχιτεκτονικής 3 επιπέδων και αρχιτεκτονικής n-tier;


Απάντηση 1:

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

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

Η αρχιτεκτονική τριών επιπέδων είναι μια συγκεκριμένη αρχιτεκτονική n-tier που έχει τρεις ορόφους:

  1. ΠαρουσίασηApp Logic ή Business LogicData Access

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

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

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


Απάντηση 2:

N επίπεδο θεωρώ ως ένα μοντέλο τομέα, συν N προσαρμογείς σε οτιδήποτε εξωτερικό: βάση δεδομένων SQL, βάση δεδομένων NoSQL, υπηρεσία web, web UI, json API σε πελάτη React και ούτω καθεξής.

Έχω ακούσει αυτό που ονομάζεται hexagonal αρχιτεκτονική πριν. Το απλό παράδειγμα μου είναι εδώ:

Δημιουργία καθαρού κώδικα με εξαγωνική αρχιτεκτονική Προβολή από το πρότυπο κώδικα


Απάντηση 3:

N επίπεδο θεωρώ ως ένα μοντέλο τομέα, συν N προσαρμογείς σε οτιδήποτε εξωτερικό: βάση δεδομένων SQL, βάση δεδομένων NoSQL, υπηρεσία web, web UI, json API σε πελάτη React και ούτω καθεξής.

Έχω ακούσει αυτό που ονομάζεται hexagonal αρχιτεκτονική πριν. Το απλό παράδειγμα μου είναι εδώ:

Δημιουργία καθαρού κώδικα με εξαγωνική αρχιτεκτονική Προβολή από το πρότυπο κώδικα