Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια

1st Architecture Days post-event comments

Πριν μερικές ώρες γύρισα από το πολυαναμενόμενο event του dotnetzone.gr, για αρχιτεκτονική λογισμικού [link]. Θα ήθελα να συγχαρώ τους διοργανωτές για την οργάνωση και τη θεματολογία. Δυστυχώς έπρεπε να αποχωρήσω στο τελευταίο μέρος λόγω υποχρεώσεων αλλά θα ήθελα να σας μεταφέρω την εμπειρία από τα τρία πρώτα μέρη.

Locating and addressing performance issues: From software to hardware architecture - Διομήδης Σπινέλλης

22102009103 22102009104

Ο κύριος Διομήδης Σπινέλλης, μέσα σε μία ώρα έθιξε τα κύρια σημεία του code quality, και τρόπους και αρχές για ελέγχο του κώδικά μας, με στόχο την (ποιότητα)=>ταχύτητα, ασφάλεια, εξοικονόμηση. Οι πρακτικές και έννοιες πήγασαν από την δική του εμπειρία και μεθοδολογία, που εύκολα ένας συνειδητοποιημένος ακροατής, αν κρατήσει τις ιδέες και τις υλοποιήσει με τα δικά του εργαλεία και συστήματα, σίγουρα θα κάνει πολλά βήματα εμπρός σε οποιαδήποτε πλατφόρμα και αν εργάζεται. Η παρουσίαση πλούσια σε εικόνες, κώδικα, shell, profiling and more! Αριστούργημα.

Συνοπτικά ο δεκάλογος που μου έμεινε:

  1. Ανάλυση του προβλήματος σε επίπεδο απασχόλησης CPU-> user time vs system time vs idling vs clock time (procmonitor and more)
  2. Ανάλυση κώδικα με γραφήματα εξαρτήσεων στον κώδικα, flags στους compilers για πλήρες reporting μέχρι και σε επίπεδο γραμμής πηγαίου
  3. Βελτιστοποίηση αλγορίθμων με σύνεση. Εντοπισμός lower + upper bounds + reusability καλών βιβλιοθηκών + προσαρμογή στα δεδομένα μας
  4. Γνώση των εσωτερικών μηχανισμών με μετρητές απόδοσης σε επίπεδο cpu, με διαιρέσεις δεικτών με πλούσια σημασιολογία (Διαίρεση δείκτη 1/ δείκτη 2 := π.χ. utilization κάποιου πόρου χ => συμπέρασμα)
  5. Προσοχή στα ΙΟ  (μνήμη, ιεραρχίες, locality of reference)
  6. Αποφυγή ΛΣ και κλήσεων σε αυτό
  7. Background processing + thrashing => πρόβλημα με φυσική μνήμη
  8. Αλγόριθμοι με τοπικότητα αναφορών (εδώ δόθηκε ένα ακόμα οπτικό παράδειγμα με δύο αλγορίθμους για πράξη πινάκων)
  9. Γνωρίστε τα δεδομένα σας, το κόστος τους, το βάρος τους, το “σχήμα τους”
  10. Memory management, εντοπισμός bottlenecks

 

Modeling in the Enterprise with Microsoft "Oslo" – Νατάσα Μανουσοπούλου

22102009108 22102009109

Μία πραγματικά φοβερή τεχνική παρουσίαση από την Νατάσα, για το OSLO, την πλατφόρμα μοντελισμού της Microsoft που βρίσκεται σε εμβρυακό στάδιο ακόμα, επιτρέποντας σε ανθρώπους που προέρχονται από διαφορετικά περιβάλλοντα να επικοινωνούν μεταξύ τους, κατά τη διαδικασία του requirements engineering. Η έμφαση δίνεται κυρίως στους προγραμματιστές, εφοδιάζοντάς τους, με το επίπεδο γενίκευσης εκείνο, που θα τους βοηθήσει στην μετέπειτα διαδικασία. Η πλατφόρμα αποτελείται από τρία πράγματα: το εργαλείο, την “γλώσσα” για να μπορείς να ορίζεις ειδικές γλώσσες για το πρόβλημά σου και ένα κοινό σημείο αποθήκης μοντέλων, ώστε μετά να πέσουν όλοι πάνω για την παρουσίαση των εννοιών που μοντελοποιήθηκαν (είτε μέσω ενός Entity Framework Diagram, είτε μέσω ui και της πανίσχυρης XAML, είτε ακόμα μέσα από Sharepoint). Τρία πράγματα για αρχή, λοιπόν: Διαμοιρασμός πληροφορίας, ευκολία παραμετροποίησης, διαχείριση αλλαγών (στα requirements). Το πρώτο που πρέπει να καταλάβουμε είναι πως αποκτούμε μία formal γλώσσα για να περιγράψουμε την φυσική γλώσσα και μετα-δεδομένα για να περιγράψουμε κώδικα. Τι καλύτερο δηλαδή από το να έχουμε τον προγραμματιστή μας δίπλα, στην συνέντευξη για requirements document, και την ώρα που μαθαίνουμε το domain του πελάτη να γράφουμε δίπλα κάτι τόσο generic που μετά θα το κάνουμε, ui ή business object ή report ή ή ή… Η Νατάσα μας έδειξε ένα πολύ όμορφο παράδειγμα με μοντελοποίηση ερωτηματολογίου το οποίο το δόμησε με MGrammar και το παρουσίασε με Sharepoint. Παραθέτω ένα παράδειγμα μοντελοποίησης του πεδίου “Οικογένεια” που βρήκα εδώ. Interesting huh? :)

module Example {     language Family {         interleave Whitespace = ' '|'\n'|'\r'|'\t';         token Name = ('a'..'z'|'A'..'Z')+;         syntax Persons             = p:Person                 => [p]             | list:Persons "","" p:Person                 => [valuesof(list), p];         syntax Children             = ""{"" p:Persons ""}"" "";""                 => p;         syntax Person             = first:Name last:Name                 => Person {                     First { first },                     Last { last }                 }             | first:Name last:Name c:Children                 => Person {                     First { first },                     Last { last },                     Children { c }                 };         syntax Main             = p:Person*                 => p;     } }

Και έτσι μπορώ να γράψω στον κώδικα, το δεδομένο μου το οποίο μπαίνει σε ένα πολύ όμορφο POCO. Πανέμορφο!

Bob Williams {     Joanie Williams,     Cathy Williams,     Bob Williams     {         Josh Williams,         Jennie Williams,         Julie Williams     }; };

Reliability, Availability, and Scalability - Have your cake and eat it too - Udi Dahan

22102009110 

Πραγματική έμπνευση η παρουσίαση του διάσημου Udi Dahan… Μας παρουσίασε τις έννοιες reliability, availability και scalability στο enterprise service bus. Τι γίνεται όταν έχουμε έναν Application Server και έναν DB Server και κάποιος συνδυασμός τους ή ένας από τους δύο βρεθεί εκτός λειτουργίας προσωρινα; Πώς χτίζουμε υποδομή για να αποφύγουμε προβλήματα όπως μη διαθεσιμότητα, τα οποία θα επηρρεάσουν το business μας; Όμορφες ιδέες και απλές στην υλοποίηση, ξεκαθαρίζουν το τοπίο, όπως one way messaging ( request response / publish subscribe), handling messages, rolling back business operations που αποτελούνται από διάφορες πηγές (π.χ., ανεξάρτητα orchestrated Web Services) με τέτοιο τρόπο που θα είναι σαν πραγματικό πισωγύρισμα στο χρόνο. Ιδέες όπως οι παραπάνω γίνονται encapsulate στο open source project του Udi ονόματι NServicebus.

 

Πολύ δυνατές παρουσίες με πλούσιες ιδέες, πρακτικές, τάσεις και τεχνολογίες, που χτίζουν καλύτερα οικοδομήματα.

Posted: Παρασκευή, 23 Οκτωβρίου 2009 2:14 πμ από το μέλος George J. Capnias
Δημοσίευση στην κατηγορία: ,

Σχόλια:

Χωρίς Σχόλια

Ποιά είναι η άποψή σας για την παραπάνω δημοσίευση;

(απαιτούμενο)

(απαιτούμενο)

(προαιρετικό)

(απαιτούμενο)
ÅéóÜãåôå ôïí êùäéêü:
CAPTCHA Image

Ενημέρωση για Σχόλια

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

Παραμείνετε ενήμεροι στα τελευταία σχόλια με την χρήση του αγαπημένου σας RSS Aggregator και συνδρομή στη Τροφοδοσία RSS με σχόλια