Μερικές σκόριπιες σκέψεις και προσωπικές απόψεις:
panko wrote: |
Τι καταγράφω, Υπάρχει κάποια λίστα του τί πρέπει να καταγράφει μια εφαρμογή που σέβεται τον εαυτό της |
|
Debugging information: Πρέπει να καθορίσεις σε ποιο σημείο της εφαρμογής κάνεις το loging των exceptions που έρχονται. Αν είναι smart client εφαρμογή (με web services ενδιάμεσα) έχεις δύο σημεία: Τα webmethods στα web services και το UI στον client (ή κάπου "πάνω πάνω"). Αν δεν έχεις smart client παραλείπεις το πρώτο. Logging "πάνω-πάνω" σημαίνει ότι όλη σου η ιεραρχία κάνει handling τα exceptions της, προσθέτει τα δικά της κατανοητά μηνύματα και ξανακάνει throw τα exceptions μέχρι να φτάσουν στο ανώτερο επίπεδο το οποίο και θα κάνει log το πλήρες exception με όλα τα inner exceptions (και ίσως και ένα stack trace).
Auditing: Αυτό είναι δικό σου θέμα, καθώς αφορά αποκλειστικά το δικό σου μοντέλο business. Πρέπει να καθορίσεις ποιες ενέργειες είναι σημαντικές και είναι χρήσιμο να καταγραφούν, καθώς και τι στοιχεία καταγράφεις για αυτές τις ενέργειες. Σκέψου επίσης και πως θα εκμεταλευτείς αυτές τις πληροφορίες στο μέλλον (τι search θα κάνεις στα δεδομένα που θα μαζεύεις).
Performace tracing: Σκέψου ποια είναι τα bottlenecks της εφαρμογής και που πραγματικά αξίζει να κρατάς τέτοιες πληροφορίες. Αν το bottleneck είναι η βάση, τότε ίσως αυτό το θέμα πρέπει να παραμείνει στη βάση και η εφαρμογή να μην μετράει τίποτα. Αν έχεις μερικές ρουτίνες που όντως χρειάζονται σημαντικό υπολογιστικό χρόνο, που διαφέρει από client σε client και από χρήση σε χρήση, ίσως θα μπορούσε να σε καλύψει το γενικότερο auditing (απλά να καταγράφεις το χρόνο που χρειάστηκε η ενέργεια για να ολοκληρωθεί μαζί με τα υπόλοιπα στοιχεία που κρατάς). Αν δουλεύεις με smart client εκτός από τη βάση μπορεί να σου δώσει αρκετά καλά στοιχεία και ο IIS, οπότε δεν χρειάζεται κάποια ειδική μέριμνα στην εφαρμογή.
panko wrote: |
Σε ποια φάση της ανάπτυξης πρέπει να καθοριστούν όλα αυτά |
|
Όσο πιο νωρίς τόσο πιο καλά. Ιδιαίτερα για το debug info και ιδιαίτερα αν συμμετέχουν πολλοί developers στο project, είναι απαραίτητο να καθορίσετε κάποια standards από την αρχή.
panko wrote: |
Πως συνδέονται με την καταγραφή απαιτήσεων |
|
Ρώτα τον πελάτη αν θέλει να καταγράφονται κάποιες ενέργειες (για το Auditing). Για τα debug info, είναι θέμα δικής σου ευκολίας και ο πελάτης δεν χρειάζεται να ξέρει τίποτα. Για το performace είναι ανάμικτο, πρέπει να δεις αν ο πελάτης θέλει τέτοια στοιχεία αλλά και εσύ θα βοηθηθείς από αυτό.
panko wrote: |
Πιθανές κατηγοριοποιήσεις των καταγραφομένων events |
|
Έχει να κάνει αρκετά με το project αυτό το θέμα, αλλά και με τον τρόπο που δουλεύετε. Αν πχ, κάθε developer αναλαμβάνει κάποιες φόρμες, μια αποτελεσματική κατηγοριοποίηση θα χώριζε τα events ανάλογα με τη φόρμα που παρουσιάστηκαν για να έχει ο κάθε developer μπροστά του αυτά που τον αφορούν. Αν κάθε developer δουλεύει διαφορετικό layer, ίσως να χρειαζόταν αντίστοιχα διαφορετική κατηγοριοποίηση.
panko wrote: |
Προτάσεις για τις πληροφορίες που πρέπει να καταγράφονται στα διάφορα tiers της εφαρμογής - άλλα πράγματα θέλω στο data, άλλα στο business και άλλα στο UI. Τι γίνεται με τους perfomance counters, Πως καταλαβαίνω ποιούς πρέπει να κατασκευάσω κλπ |
|
Δεν μπορώ να σκεφτώ κάτι για αυτά, ίσως αν μας έλεγες μερικά πράγματα παραπάνω για την εφαρμογή;
Χρήστος Γεωργακόπουλος