Χρονοντούλαπο:

Contact via email

Just the two of us........... Από το Blogger.
Δευτέρα, 31 Ιανουαρίου 2011

PostHeaderIcon Χρονομηχανή... Οι αγαπημένες ιστορίες του Ζαχαρία Δεντοφτιάχνω Επεισόδιο 2



Πίσω στο 2005 ένας πανέξυπνος bloger έγγραψε τις Περιπέτειες ενός δύσμοιρου developer του
Ζαχαρία Δεντοφτιάχνω... Απολαύστε:

Επεισόδιο 2ο

Ο κατηραμένος IFης

Μια συνηθισμένη μέρα στο γραφείο. Ο πρώτος κουβάς καφέ έχει ήδη καταναλωθεί, και ο Ζαχαρίας βρίσκεται στο στάδιο της ενδοσκόπησης. Αυτοσυγκεντρώνεται προκειμένου να έχει άλλη μια αποδοτική και δημιουργική ημέρα, εξερευνώντας το ασφυκτικά γεμάτο mailbox του, το οποίο αποτελείται κατά κύριο λόγο από σοβαρά, άκρως επείγοντα επαγγελματικής φύσεως μηνύματα: "StocholmClubbing.pps", "AnIdiotWithASillyBear.wmv", "HolidayCalculator.xls". Ωπ, τι είναι αυτό; Μήνυμα από τον αρχι-δηβέλοπερ! (no? pun intented - Βοήθειά μας).
________________________________________
From: Απόλυτος Ξερόλας [mailto:tapairnoxontra@triakilakodika.gr] 
Sent: Monday, May 23, 2005 09:00 AM
Subject: URGENT FUNCTIONALITY ENHANCEMENT

Ζαχαρία,
σου επισυνάπτω τον κώδικα του project "FTYS'TA" που υλοποιήσαμε πρόπερσι για τον όμιλο ξενοδοχείων ASYLLIPTIMPIXLA AE. Θα έχεις ακούσει για αυτό. Ειχαν κάποια προβλήματα με τα συνεργεία καθαριότητας (κυρίως μικροαπάτες στη διαχείριση από την εταιρία που ανέλαβε την υπηρεσία) και ήθελαν να παρακολουθούν έσοδα/έξοδα και τα συναφή λεπτομερώς.
Ομως λόγω της συγχώνευσης με τον όμιλο BETADINE SA χρειάζονται αλλαγές στον τρόπο υπολογισμού των εσόδων τους, και συγκεκριμένα σε ο,τι αφορά τις δαπάνες καθαρισμού. Σε παρακαλώ εντόπισε το συναφές functionality και υλοποίησε τις παρακάτω αλλαγές:
(ακολουθούν οι αλλαγές)
Θα πρέπει να είναι up and running ASAP. Οσο πιό ASAP τόσο μεγαλύτερο bonus θα πάρω. Θα σε κεράσω, το υπόσχομαι.
Τακης
ΔΤΦ: (Σκέφτεται) Χα! Piece of cake. Θα το τελειώσω σε κανα μισάωρο και μετά θα έχω όλη τη μέρα να απαντάω σε αυτόν τον Patrick στο dotnetzone.gr που αρέσκεται να ακολουθεί όλο τη μέθοδο 1.β....θα τον κάνω να γίνει παλαιοπώλης σήμερα....για να δούμε τον βρωμοκώδικα αυτόν....
(κλικ κλικ κλικ open? yes, κλικ κλικ....χμ, ενα αρχείο μόνο, everything.vb? ΠΩΣ; 89333 γραμμές κώδικα; )

Στο σημείο αυτό ο Ζαχαρίας χρειάστηκε να βγεί επειγόντως για να αγοράσει χάπια για την πίεση (και ενα jack daniels). Ωσπου να γυρίσει, σας παραθέτουμε ένα απόσπασμα από τον κώδικα για να περάσει η ώρα.

'----------------------------------------
'THIS IS FUNCTION CALCULATEREVENUE
'----------------------------------------
Friend Function CalculateRevenue( _
       ByVal strRevenue as int64, ByRef blnResult as int32) As Boolean
      
      
       '-----------------------------
       ' HANDLE SITUATIONS
       '-----------------------------
       If m_str15a = "1" andalso m_str13b = "true" or m_int8c = -1 Then
             
              Try
                     'Return 10000
                     blnResult=Convert("10000", int32)
                    
                     'Return TRUE
                     Return (true)
                    
                     '--------------------------
                     ' ERROR HANDLING (EXCEPTION)
                     '--------------------------             
              Catch ex as Exception
             
              'If something goes wrong, give error
                     Throw New Exception ("Exception Occured")
             
              Finally
                    
                     'Try something to fix problems. See code.
                     Try
                  'Call SuperComponent.TryToAdjustEverything
                          SuperComponent.TryToAdjustEverything()

                     '--------------------------
                     ' ERROR HANDLING (EXCEPTION)
                     '--------------------------             
                     Catch Ex as Exception               
                           'If something goes wrong, give error
                           Throw New Exception ("Exception Occured Inside")
                     End Try
              End Try
                                           Else IF m_str67z = "none" Then
             
              'Make m_redVariable equal to 1
              m_redVariable = 1
             
              'If m_redVariable is not zero
              If m_redVariable<>0 Then
                     'Do nothing
                     'If m_redVariable is zero
              Else
                    
                     'If nothing ok check those
                     If m_intAllOk = "no" andalso blnString = 546 Then
                    
                   'Call SuperComponent.DieWithSomething
         IfSuperComponent.DieWithAnAwfulSound(m_objAlwaysOpenConnection)Then
                                
                        'Call me recursively. Everything will be allright then
                         CalculateRevenue (-5, m_greenVariable)
                                 
                           End If
                    
      End If 'End inner if
                                End If     'End outer if
       End If         'End outer-outer if

End Function


ΔΤΦ....(γκλουπ)....
(σηκώνει το τηλέφωνο)
ΔΤΦ: Απόλυτε;
ΑΠΞ: Ελα Ζαχαρία. Το πηρες; Δεν είναι τίποτα, ετσι; Piece of cake.
ΔΤΦ: Εχμ, (βαθιά αναπνοή). Ποιος το έχει φτιάξει αυτό; 
ΑΠΞ(Βαθειά αναπνοή). Ζαχαρία, δεν χρειάζεται να σκαλίζουμε το παρελθόν τώρα. Ο γέγοναι γέγοναι.
ΔΤΦ: ΠΟΙΟΣ το έχει φτιάξει αυτό Απόλυτε;
ΑΠΞ: Ζαχαρία, δεν εχει σημασία. Σημασία έχει τώρα να γίνει η δουλειά
ΔΤΦ: Απόλυτε, το comment 'TODO: (c) Apolytos "Supercoder" Kserolas - I don't know WTF is going on here σου λέει τίποτα;
ΑΠΞ: Ζαχαρία! Ολοι περάσαμε από αυτά! Ολοι κάναμε λαθάκια! Τωρα μπορείς να συγκεντρωθείς στην επέκταση;
ΔΤΦ: Θα χρειαστεί refactoring. Πολύ. Παρα πολύ. 
ΑΠΞ: .....
ΔΤΦ: Εξωφρενικά πάρα. Πολύ. Πολύ.
ΑΠΞ: .....
ΔΤΦ: Απιστευτα και χυδαία πολύ. Refactoring. Απίστευτα.
ΑΠΞ: .....
ΔΤΦ: .....
ΑΠΞ: .....
ΔΤΦ: Refactoring είναι η επανασυγγραφή του κώδικα σε απλούστερη και πιό συντηρήσιμη μορφή.
ΑΠΞ: Ζαχαρία....μπορεί να έκανα μερικά λαθάκια αλλα ΣΕ ΔΙΑΒΕΒΑΙΩΝΩ ΟΤΙ ΞΕΡΩ τι ειναι rifactouring. Λοιπον...
ΔΤΦ: REfactOring.
ΑΠΞ: Ναι, whatever. Λοιπον δεν προλαβαίνουμε. Ακολουθησε την πεπατημένη και γράψε νέο functionality ως έχει.
ΔΤΦ: Δεν υπάρχει πεπατημένη.
ΑΠΞ: Μα ακολουθείται σαφώς ένα design pattern.
ΔΤΦ: Σαφως. Λεγεται "πλυσιμο χρωματιστών στους 90 βαθμούς μαζί με τα λευκά". 
ΑΠΞ: Διακρίνω ειρωνεία; 
ΔΤΦ(γκουχ) οχι Απόλυτε, είναι ευφημισμός για το Observer Strategy of Abstract Factory Decorators που σαφώς ακολουθεί ο κώδικας. Σου. 
ΑΠΞ: Φυσικά. Ειναι δοκιμασμένο Gang of Five Design Pattern. Διαβασε και κανενα βιβλίο.
ΔΤΦ(Σκεφτεται) μανα γιατί με γέννησες και με άφησες να γίνω developer....
ΔΤΦ: Φυσικά, φυσικά....
ΔΤΦ: Απόλυτε;
ΑΠΞ: Παρακαλώ.
ΔΤΦ: Γκουχ. Θα χρειαστεί πολύ δουλειά. Για το νέο functionality θα πρέπει να αφαιρέσω το κομμάτι των Factories και να το αντικαταστήσω με τα Satisfactories. Επίσης οι Observers θα πρέπει να αποκτήσουν πιό ενεργό ρόλο και να γίνουν Executives. Τελος οι Decorators θα αντικατασταθούν από Gardeners. Μονο έτσι θα λειτουργήσει το πράγμα. Θα χρειαστώ δύο μήνες και πίτσα στο τέλος κάθε βάρδιας. Με διπλό τυρί. 
ΑΠΞ: Χαίρομαι που το βλέπεις θετικά και που έχεις τόσο καλό motivation. Καπου έχω διαβάσει και εγώ για τους Gardeners, πραγματικά πολύ λειτουργικό. Θα εισηγηθώ 3 μήνες και ένα καλό bonus στο τέλος του project. Σε ευχαριστώ πολύ για την αφοσίωσή σου Ζαχαρία!
ΔΤΦ: Παντα, μα ΠΑΝΤΑ στη διάθεσή σου Απόλυτε.......
(κλικ) 
ΔΤΦΜΑΝΟΥΛΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑΑ

0 σχόλια :

Δημοσίευση σχολίου

Του καιρού...

Θεσσαλονίκη

BlogUp Us!

Follow by Email

Follow my blog with bloglovin