May 31, 2013

Ένα βιβλίο για όσους ξεκινούν στο Oracle ADF (Oracle ADF 11gR2 Development Beginner's Guide)

Η τελευταία κριτική μου για βιβλίο σχετικό με το ADF ήταν πριν περίπου έξι μήνες. Κοιτάζοντας πίσω στο χρόνο φαίνεται πως περίπου κάθε εξάμηνο τα τελευταία 2-3 χρόνια έχουμε μια νέα κυκλοφορία σχετικά με το ADF είτε από την Packt είτε από την Oracle Press. Ενώ όμως αφθονούν οι τίτλοι για προχωρημένα θέματα ή μεθοδολογίες στο ADF, αυτό που επίσης χρειάζεται είναι ένας οδηγός για αυτούς που ξεκινούν τώρα με το framework, μιας και το επίσημο documentation της Oracle (developer's guide) μάλλον δεν είναι πολύ φιλικό για μια πρώτη επαφή. Χρειάζονται βιβλία λοιπόν που να εξηγούν με απλά λόγια και παραδείγματα το πώς λειτουργεί το ADF, ώστε διαβάζοντας το κάποιος "πρωτάρης" σε μικρό χρονικό διάστημα να προσανατολιστεί πάνω στο framework. Ένα αντίστοιχο βιβλίο, και μάλιστα πολύ καλό για την εισαγωγή στον προγραμματισμό στο ADF είναι το "Quick start Oracle Fusion Development" του Grant Ronald.

Πρόσφατα, κυκλοφόρησε και το "Oracle ADF 11gR2 Development Beginner's Guide", με συγγραφέα τον Vinod Krishnan, από την Packt Publishing που απευθύνεται σε τεχνικούς που κάνουν την πρώτη τους γνωριμία με το ADF, χωρίς να απαιτούνται ειδικές γνώσεις, πέρα από τις βασικές του προγραμματισμού σε Java. Ο ρυθμός που είναι καλός, είναι πλούσιο σε παραδείγματα και screenshots, αλλά υπάρχουν και φορές που καταπιάνεται με ειδική τεχνική λεπτομέρεια, που δεν είναι ίσως απαραίτητη ή χρήσιμη σε κάποιον που κάνει τα πρώτα βήματα του στο ADF. Η δομή του βιβλίου είναι ως εξής: περιλαμβάνει έντεκα κεφάλαια. Τα θέματα αναπτύσσονται με την μορφή: περιγραφή του ζητήματος, εκτέλεση της διαδικασίας (time for action), επεξήγηση του πώς δουλεύει η λύση (what just happened ?) και πρόκληση στον αναγνώστη για περαιτέρω εξερεύνηση στην ενότητα "Have a go hero". Τέλος, κάθε κεφάλαιο κλείνει με την μορφή ανακεφαλαιωτικό ερωτήσεων (quiz) Ας δούμε λοιπόν την ύλη του σε λεπτομέρεια.

Το πρώτο κεφάλαιο ("Installing and Configuring JDeveloper IDE") αφιερώνεται στην εγκατάσταση και λειτουργία του JDeveloper, στα μενού, τα παράθυρα, τους συντάκτες κειμένου που διαθέτει και την εν γένει "φιλοσοφία" του. Είναι πραγματικά πολύ κατατοπιστικό και χρήσιμο για κάποιον που προέρχεται από κάποιο άλλο IDE (πχ Eclipse ή Oracle Forms) ώστε να μπορέσει γρήγορα να εξοικειωθεί και να γίνει παραγωγικός, κάτι που φυσικά θέλει τον χρόνο του. Το δεύτερο κεφάλαιο ("Getting Started with ADF") εξηγεί σε βασικές γραμμές την αρχιτεκτονική του ADF και αναλύει, από την αρχή ως το τέλος, ένα παράδειγμα ανάπτυξης μιας μικρής εφαρμογής σε ADF, με πολύ αναλυτικά βήματα και screenshots. Το κεφάλαιο τρία ("Understanding the Model Layer") εστιάζει στα ADF Business Components (entities, view objects, application modules) και διαθέτει έναν πολύ αναλυτικό οδηγό για τις επιλογές στις οθόνες παραμετροποίησης του ADF (declarative programming) Το αμέσως επόμενο κεφάλαιο ("Validating and Using the Model Data") δίνει παραδείγματα validations με δηλωτικά χαρακτηριστικά και με Groovy expressions και στο δεύτερο μισό του αναφέρεται στον επηρεασμό της συμπεριφοράς του framework με την χρήση Java καθώς και στον χειρισμό των transactions. Είναι ένα πολύ σημαντικό κεφάλαιο, που ίσως να χρειάζεται περισσότερη απλοποίηση στην περιγραφή.

Το κεφάλαιο πέντε ("Binding the Data") είναι πραγματικά ένα θαυμάσιο κεφάλαιο γιατί επεξηγεί με ακρίβεια και λεπτομέρεια τον μηχανισμό των data bindings που είναι από τα πιο παράξενα πράγματα για έναν newcomer στον κόσμο του ADF. Το επόμενο κεφάλαιο μας εισάγει στο web programming με τα ADF Faces κάνοντας χρήση templates και δίνοντας μια σύντομη παράθεση των user interface components και των ιδιοτήτων τους. Αισίως, το κεφάλαιο επτά ("Working with navigation flows") μας παρουσιάζει τον ADF Controller και κατά επέκταση τα ADF task flows. Υπάρχει επίσης μια σύντομη αναφορά στα ADF regions και στο lifecycle. Προχωρώντας στο κεφάλαιο οκτώ ("Layout with Look and Feel") έχουμε μια ανάλυση του τρόπου παραμετροποίησης της εμφάνισης των σελίδων με την χρήση ADF skins. Επίσης, αμέσως μετά στο "Implementing Security" θα βρούμε απλά παραδείγματα ενσωμάτωσης security σε ADF εφαρμογές. Το προτελευταίο κεφάλαιο ("Deploying the ADF application") είναι πολύ χρήσιμο γιατί περιγράφει τη δομή των ADF distributables, την αξιοποίηση των ADF libraries, του MDS καθώς και της ρύθμισης του embedded Weblogic Server. To τελευταίο κεφάλαιο ("Advanced features of ADF") αναλύει μερικά από τα πιο προχωρημένα θέματα όπως optimizations για ADF BC, contextual events, MDS customization, JDeveloper extensions κ.α που σπάνια βρίσκονται συγκεντρωμένα σε ένα βιβλίο.

Η γενική γνώμη μου είναι πως το Oracle ADF 11gR2 Development Beginner's Guide είναι ένα χρήσιμο βιβλίο, προκειμένου κάποιος να μάθει γρήγορα και με απλό τρόπο τα βασικά του ADF. Τα αναλυτικά παραδείγματα του καθενός κεφαλαίου συνοδεύονται με το online code appendix που επίσης βοηθάει στο να δοκιμάσει κάποιος τις λύσεις στον JDeveloper. Από την άλλη μεριά, κάποιες προσθέσεις θα το έκαναν ακόμα καλύτερο. Για παράδειγμα τα βασικά που ζητάει οποιοσδήποτε που ξεκινά με το ADF όπως δημιουργία search forms και κριτηρίων, συνδυαστικά (join) view objects, βασικός προγραμματισμός σε JSF και πρόσβαση στα bindings κλπ ή οι αναλογίες με άλλα Java/.NET ή Oracle Forms frameworks..

No comments: