dpal wrote: |
Δουλεύοντας με stuctured programming (VB6) και προσπαθώντας να μάθω και να εφαρμόσω (αν μάθω...) OO Programming δεν μπορώ να βρω κάποιο βιβλίο που να καλύπτει το θέμα διεξοδικά. |
|
Η αλήθεια εδώ είναι ότι δεν υπάρχουν και πολλά resources πάνω στο θέμα. Είναι γενικά ένα λεπτό θέμα όσο έχει να κάνει με τους VB developers. Δεν έχουμε από καμιά μεριά τα "best of" ούτε "best practices". Και όσα βιβλία έχουν να κάνουν με το πρόβλημα έχουν εμφανιστεί τον τελευταίο καιρό.
dpal wrote: |
Δεν μιλάω φυσικά για το τι είναι Inheritance, Polymorphism, κ.τ.λ. Από αυτά μας έχει φουσκώσει η μαμά MS και ο κάθε τυχαίος ή μη που θέλει κάτι να γράψει στο site ή στο Blog του. Είμαι πεπεισμένος ότι μισοί από αυτούς δεν γνωρίζουν το ζήτημα (ημιμαθείς είναι η σωστή λέξη) και απλώς μπλά-μπλα-δίζουν πάνω σε C# και VB.Net. Μιλάω για το πώς ξεκινάς από το Design, τι πρέπει να προσέξεις στο Implementation, τι προσφέρει, τι μειονεκτήματα έχει, πότε δεν πρέπει να χρησιμοποιείται κ.τ.λ.... |
|
Ναι, σε αυτό μαζί σου. Όταν μαθαίνεις VB, μαθαίνεις όλα εκείνα τα τεχνικά πράγματα πως να κάνεις κλάσεις, να τους δίνεις ιδιότητες, να κάνεις public functions/sunroutines και να γίνονται οι μέθοδοι του αντικειμένου και να του προσθέτεις events που ειδοποιούν όλα τα άλλα κομμάτια κώδικα που τρέχουν μαζί με το δικό σου. Άντε στο πιο μεγάλο level εκπαίδευσης VB από την Microsoft μαθαίνεις πως συμπεριφέρεται η DNA πλατφόρμα, τα Component Services, τα Distributed και μη Transaction, ο SQL Server και αυτό ήταν.
Όταν μαθαίνεις .ΝΕΤ προγραμματισμό, η Microsoft δεν έχει αλλάξει καθόλου τον τρόπο που παραδίδει την γνώση. Πάλι μιλάει για της γλώσσες και την αρχιτεκτονική του σε τεχνικό επίπεδο.
Είναι σαν να έχουμε ένα σιδερά και του μιλάμε για καινούργιες τεχνικές πως να φτιάξει κάτι, πως να χρησιμοποιήσει το αμόνι του, κτλ... Κανένας δεν του λέει πως να είναι σιδεράς όμως! Κάτι αντίστοιχο συμβαίνει και με όλη την εκπαίδευση της Microsoft, υπολογίζουν ότι ο προγραμματιστής τα ξέρει όλα αυτά.
Όλοι αυτοί οι προγραμματιστές του .NET, δεν ήταν όλοι ή οι περισσότεροι προγραμματιστές VB και δεν φτιάχτηκε το .NET Framework για τους προγραμματιστές VB! Όλοι αυτοί οι προγραμματιστές που τόσο καιρό τρωγόντουσαν με δύσκολες γλώσσες προγραμματισμού βλ C++ όπως και νεότερες του είδους βλ Java, από την στιγμή που είδαν το .NET έκαναν αυτό που δεν μπορούσαν να κάνουν τόσα χρόνια: Έχουν εκτοξεύσει στον ουρανό την παραγωγικότητα τους και οι VB προγραμματιστές τους κοιτάμε από την γη. Δεν είναι δυνατόν να κρατήσουμε τους ίδιους ρυθμούς με αυτούς και ποτέ δεν το κάναμε.
Αυτά που ζητάς, είναι η εμπειρία που μαζεύεται πάνω στην γλώσσα από την χρήση της. Η VB είναι σε αυτή την μορφή που είναι πάνω κάτω η VB6 είναι από την VB5 SP2, όταν άρχισαν τα components της να είναι apartment threading. Μιλάμε περίπου δέκα χρόνια τώρα, άντε εννιά. Λογικό είναι να έχουμε "best practices" και "best of" γενικότερα. Δεν συμβαίνει αντίστοιχα το ίδιο και το .NET. Είναι πολύ μικρό χρόνο που υπάρχει και "συνεχώς αλλάζει"! Αν δεν σταθεροποιηθεί δεν νομίζω ότι θα ακολουθήσουν πολλοί πιστοί από την VB6...
dpal wrote: |
Το καλύτερο που βρήκα μέχρι τώρα σχετικά με OOP είναι το πρώτο κεφάλαιο (δεν έχω διαβάσει παρακάτω ακόμα...) από το "Holub on Patterns: Learning Design Patterns by Looking at Code" by Allen Holub (ISBN: 159059388X) όπου αναλύει πολλά μη προφανή (σε εμένα τουλάχιστον) στα οποία όμως ανιχνεύω αλήθεια και αποτελεσματικότητα. |
|
Δυστυχώς δεν έχω κάτι έτοιμο να προτείνω επάνω σε αυτό, εκτός από ένα βιβλίο που είχε εμφανιστεί μαζί με το .NET Framework, ειδικά για ΟΟ και VB προγραμματιστές, αλλά έχει εξαφανιστεί πάνω από την βιβλιοθήκη μου εδώ και κάμποσο καιρό και πρέπει να το αναζητήσω... 
dpal wrote: |
Σχετικά με τα όποια site με patterns (ακόμα και αυτό της MS που ανέφερε ο gcapnias) τα βλέπω ως απλά Memo's άλλα σε καμιά περίπτωση ως βοηθητικά για να μάθει κάποιος. Να δούμε αν θα ωριμάσουν με τον καιρό... |
|
Μάλλον το αντίθετο... Έχε υπόψη σου ότι αυτά είναι πιο πολύ Frameworks και έχουν να πουν για λύσεις σε Enterprise επίπεδο. Αλίμονο αν θέλεις να κάνεις μια απλή εφαρμογή που διαχειρίζεται δεδομένα, και πρέπει να βάλεις μέσα ένα module που είναι από μόνο του σαν εκτελέσιμη μορφή περίπου 20MB!
Αυτά τα Frameworks είναι πολύ ώριμα για τους VB developers. Προέρχονται από προγραμματιστές που έχουν μεγάλη πείρα στον χώρο του OO και του Enterprise computing. Δεν είναι πραγματικότητα για ένα περιβάλλον ενός VB developer! Δεν ήταν φτιαγμένος για αυτό, όχι, ότι δεν μπορούσε να φτάσει. Αυτό το ότι μπορούσε να φτάσει, τον έκανε αγαπητό.
dpal wrote: |
Σε ότι δε αφορά τους Developers... ο καθένας έχει την δική του γνώμη για το τι είναι OOP και πώς γίνεται σωστά [<:o)] π.χ. Οι πιο πολλοί νομίζουν ότι εάν είναι ο όλος ο κώδικας σε Classes και χρησιμοποιούμε τα get/set για να δούμε τα δεδομένα τους τότε είμαστε OO Gourous... |
|
Ως γνωστό "best practice" είναι: ότι είναι get/set να το κάνεις public variable και ότι είναι μόνο get ή set να το κάνεις property.
Αυτό από τα "παλιά χρόνια" των VB προγραμματιστών!
George J.