netweek - Κληρονόμοι παλιού κώδικα

Τετάρτη, 18 Ιουλίου 2018

ΔΙΑΦΗΜΙΣΗ

Software

Κληρονόμοι παλιού κώδικα

22 Δεκεμβρίου 2017 | 10:47 Γράφει ο Θεοδόσης  Λαδόπουλος Topics: Opinion,Programming,Απόψεις

Σάκης Λαδόπουλος

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

Καθώς η θεωρία από την πράξη απέχει παρασάγγας, το κομμάτι του software development αποτελεί έναν άκρως ενδεικτικό τομέα που η ανωτέρω διαπίστωση βγαίνει... ασπροπρόσωπη. Οι καλύτερες σκέψεις για την σημασία και της επιπτώσεις του παλαιού κώδικα, μοιραία έρχονται από έναν παλαιό και πολύπειρο Developer. Δε μπορώ παρα να τις παραθέσω αυτούσιες: «Πλάκα κάνεις! Αυτό ούτε που διαβάζεται!»

Η οργή έδειχνε να ξεχειλίζει, το πρόσωπό του είχε κοκκινίσει, οι σφυγμοί του πρέπει να είχαν... χτυπήσει «ταβάνι», ενώ ότι φλέβα υπήρχε στο σώμα του βρισκόταν σε πλήρη ένταση. Φανερά ενοχλημένος ο senior developer έφυγε από το γραφείο του, ψάχνοντας νευρικά τις τσέπες του για αναπτήρα και τσιγάρα. Πίσω του άφησε ανοικτή την οθόνη, πλημυρισμένη με χιλιάδες γραμμές κώδικα. Ναι, ήταν «σεντόνια» παλαιού κώδικα ο οποίος έπρεπε να αλλαχθεί. Το σενάριο είναι λίγο-πολύ γνωστό: κώδικας ετών που πρέπει να αλλαχθεί γιατί ο πελάτης / το business / η νέα έκδοση του προϊόντος απαιτούν νέα χαρακτηριστικά. Ή ακόμη χειρότερα: γιατί «εκεί» προστέθηκε «αυτό» και άρα πρέπει και «εδώ» να γίνει μία «μικρή» αλλαγή. Εντάξει, ίσως όχι τόσο μικρή αλλαγή αλλά τελικά αναμενόμενη στο ευρύτερο πλαίσιο του κύκλου ζωής ενός λογισμικού.

«Μήπως επί τη ευκαιρία να το γράφαμε από την αρχή; Μάλλον θα μας πάρει λιγότερο παρά να…» Γνωστό και αυτό το ρεφραίν στους απανταχού developers. Και η αιτία βασικά είναι μία: ως developers θέλουμε να φτιάχνουμε, όχι να μελετούμε. Θέλουμε να γράφουμε, όχι να διαβάζουμε. Είμαστε περισσότερο παραγωγικά όντα παρά εκτελεστικά, περισσότερο δημιουργοί και λιγότερο «γραφειοκράτες».

Όπως όμως σε μία συζήτηση είναι περισσότερο κρίσιμο το να ακούμε προσεκτικά τον συνομιλητή μας παρά να περιμένουμε την παύση του για να μιλήσουμε, ακριβώς ανάλογα και στη συγγραφή του κώδικα είναι παραπάνω από αναγκαίο να δώσουμε στον εαυτό μας τον απαραίτητο χρόνο να διαβάσουμε και να κατανοήσουμε τον παλαιό κώδικα πριν αρχίσουμε με ενθουσιασμό (καλά, είπαμε να πούμε κανά αστείο να περάσει και η ώρα...) τη συγγραφή του νέου. Σε αντίθετη περίπτωση οι συνέπειες είναι δραματικές αφού οι παλαιοί κώδικες περιλαμβάνουν συνήθως business cases που ποτέ δεν φανταστήκαμε, debugging ετών και exceptions που δύσκολα μπορεί να πιάσει ο φρέσκος (αλλά στην πραγματικότητα συνήθως απλά βιαστικός) νέος κώδικάς μας.

Όσο επιχειρούμε να διερευνήσουμε την κατάσταση που ισχύει στο code developing, τόσο δείχνουμε να καταλήγουμε σε μια... πονεμένη πραγματικότητα η οποία κατά πως φαίνεται «χαρακτηρίζει» την ίδια την αγορά. Και φυσικά τις ιδιαιτερότητες, αλλά κυρίως τις... παθογένειες του εν λόγω τομέα. Τι αποδεικνύεται στην πράξη; Φτάνουμε λοιπόν να έχουμε καλούς συγγραφείς, κακούς αναγνώστες και… άσχημους (αλλά ώριμους) παλαιούς κώδικες. Και όλα αυτά επειδή απλά δεν έχουμε την υπομονή να διαβάσουμε, να κατανοήσουμε και να μάθουμε από τον παλαιό κώδικα, από τα σεντόνια που κάποιοι άλλοι -ποιος να ξέρει πότε και κάτω από ποιες συνθήκες- έχουν γράψει. Το καλύτερο βέβαια μένει πάντα για το τέλος: μια αναζήτηση στο source history του version control system δείχνει (όχι σπάνια) ότι ο συγγραφέας των σεντονιών μπορεί να ήταν… εμείς οι ίδιοι!

Βέβαια, η αλήθεια είναι πως πράγματι ένας κώδικας έχει γραφτεί προκειμένου να εξυπηρετήσει συγκεκριμένες (συνήθως) ανάγκες, πληρώντας δεδομένες απαιτήσεις, λαμβάνοντας υπόψη και αξιοποιώντας Χ συνθήκες για Ψ ζητήματα.

Μπορεί να μην ισχύει η λογική του «One size fits all», εντούτοις όμως δεν αποκλείεται να ταιριάζει με οριμένα ή ακόμη και περισσότερα «θέλω» εκ μέρους του εκάστοτε πελάτη. Οπότε, απαιτείται μια «καθαρή» ματιά και σκέψη με τον αντίστιχο βαθμό ψυχραιμίας και συγκέντρωσης προκειμένου να διαπιστώσετε εάν μπορείτε να κάνετε τη δουλειά σας ταχύτερα, πιο έξυπνα, όσο και ευκολότερα.

netweek (T. 408)
Έχετε άποψη;
Ο σχολιασμός των άρθρων προϋποθέτει την Είσοδο σας στο Netweek Online.
ΔΙΑΦΗΜΙΣΗ

Δείτε ακόμη...

Οι πιο δημοφιλείς ειδήσεις σήμερα

Αυτοί που διάβασαν αυτό διάβασαν επίσης

Τα πιο δημοφιλή Topics

Οι πιο δημοφιλείς ειδήσεις σε αυτήν την ενότητα

Οι πιο δημοφιλείς ειδήσεις σε άλλες ενότητες

ΔΙΑΦΗΜΙΣΗ
ΔΙΑΦΗΜΙΣΗ

Συνεντεύξεις / Πρόσωπα

 
ΔΙΑΦΗΜΙΣΗ

Topics

Banking / Finance

International

Τηλεπικοινωνίες

Πολιτισμός / Ψυχαγωγία

e-government

Μουσική Βιομηχανία

Retail

Ευρωπαική Ένωση

Services

Ενέργεια / Περιβάλλον

©2018 Boussias Communications, all rights reserved. Κλεισθένους 338, 153 44 Γέρακας, info@boussias.com, Τ:210 6617777, F:210 6617778