Προγραμματισμός

Ταχύτητα ή FreeMarker;

Οι μηχανές προτύπων μπορούν να εφαρμοστούν σε μια μεγάλη ποικιλία σεναρίων ανάπτυξης όπου θέλετε να δημιουργήσετε κείμενο βάσει συγκεκριμένων κανόνων επεξεργασίας και χρησιμοποιούνται συχνά ως στοιχείο προβολής σε εφαρμογές MVC. Σε αυτό το άρθρο, ο Jeroen van Bergen εξηγεί πού οι μηχανές προτύπων ταιριάζουν στην αρχιτεκτονική της εφαρμογής σας και σας δείχνουν ορισμένες από τις κοινές λειτουργίες σε όλες τις μηχανές προτύπων. Τέλος, συγκρίνει τους δύο κορυφαίους κινητήρες προτύπων Java, το Velocity και το FreeMarker, όσον αφορά την ισχύ, την ευκολία χρήσης και την απόδοση.

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

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

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

Τι είναι η μηχανή προτύπου;

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

Οι κινητήρες προτύπων χρησιμοποιούνται κυρίως ως στοιχείο προβολής σε αρχιτεκτονική MVC. Η μηχανή προτύπου ενθαρρύνει τον καλό διαχωρισμό μεταξύ της πραγματικής λογικής προβολής και της προβολής που αποδίδεται, η οποία θεωρείται καλό πράγμα. Η χρήση μιας μηχανής προτύπου συνεπάγεται κάποια γενικά έξοδα για την κατασκευή της εφαρμογής, αλλά οι περισσότεροι προγραμματιστές βλέπουν μια γρήγορη απόδοση της επένδυσης όταν η εφαρμογή πρέπει να αλλάξει. Ο διαχωρισμός της προβολής από τη λογική διευκολύνει την ενημέρωση της εμφάνισης και της αίσθησης της εφαρμογής προσαρμόζοντας τα πρότυπα, αντί να χρειάζεται να ξαναγράψετε τον πηγαίο κώδικα. Η σχέση είναι παρόμοια με αυτήν του CSS και του HTML, όπου μια αλλαγή στο στυλ απαιτεί μια μικρή επεξεργασία στο αρχείο CSS, παρά πολλές αναθεωρήσεις στο HTML.

Επισκόπηση μηχανών προτύπων Java ανοιχτού κώδικα

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

Πίνακας 1. Μηχανές προτύπων για την πλατφόρμα Java

ΟνομαΕκδοχήΣκοπόςΔιεύθυνση URLΑδεια
Ταχύτητα1.5Μηχανή προτύπου γενικής χρήσης//velocity.apache.org/Άδεια λογισμικού Apache
FreeMarker2.3.10Μηχανή προτύπου γενικής χρήσης//www.freemarker.org/index.htmlΆδεια BSD
SiteMesh2.3Διάταξη και διακόσμηση ιστοσελίδας//www.opensymphony.com/sitemeshΆδεια OpenSymphony
Τσάι σερβίλ2.3ιστοσελίδες//teatrove.sourceforge.netΆδεια τσαγιού
Τζέιμον2.3.0Μηχανή προτύπου γενικής χρήσης//www.jamon.org/index.htmlΔημόσια άδεια Mozilla
WebMacro Μηχανή προτύπου γενικής χρήσης//www.webmacro.org/GNU General Public License
$config[zx-auto] not found$config[zx-overlay] not found