Δουλεύοντας σε κώδικες κληρονομιάς ( συντηρεί έναν προμηθευτή ΜSK1 συντηρήσει τη ζωή
Εισαγωγή
Ως ελεύθερος προγραμματιστής, μία από τις δεξιότητες που χρειάζεστε για να μάθετε γρήγορα είναι πώς να εργαστείτε σε υπάρχουσες βάσεις κωδικών αποτελεσματικά για το . για το ΜSK2 για το μίσος ήταν τυχερός να έχει κατασκευάσει μια γκάμα από τα συστήματα έκτακτης ανάγκης του -- για το ; για το οποίο αυτό είναι ένα JOY ως έμπειρο προγραμματίζοντας όμως για τον ' δεν γνωρίζει πάντα την περίπτωση
Οι προκλήσεις
Τα συστήματα κληρονομιάς αντιμετωπίζουν σημαντικές προκλήσεις, ειδικά όταν οι βασικοί προγραμματιστές / αναφέρει αρχιτέκτονες ΜSK2 αναφέρει ότι είστε αρκετά τυχεροί για να τους έχετε ΜSK4 αναφέρουν ότι έχουν μετακινηθεί σε . αναφέρει
τεκμηρίωση
Αυτό συχνά παραβλέπεται ιδιαίτερα σε μικρότερες εταιρείες. Γενικά, χρειάζεστε ΜSK2 βασικούς τύπους τεκμηρίωσης
- Οδηγίες νέων προγραμματιστών Πώς διαχειρίζεστε το έργο τοπικά ( ειδικότερα σχετικά με αυτό σε ένα λεπτό ΜSK1 ειδικά ποιες σκέψεις υπάρχουν ΜSK2 αναφέρει για παράδειγμα ότι χρειάζεστε ένα διαφορετικό πλαίσιο από το τρέχον , ειδικά αληθινό με Node δυστυχώς
- Εφαρμογή Docs Σε αυτές τις μέρες, όταν το CI/CD θεωρείται ως το χρυσό- πρότυπο εκμετάλλευσης αυτόM SK2 συχνά παραλείπεται ότι πρέπει να ξέρετε πώς να εκμεταλλευτεί το σύστημα χειροκίνηταMK3 Αυτό είναι ιδιαίτερα αληθινό αν είστεMKK4 εργάζονται σε ένα σύστημα πουMRK5 ήταν γύρω για κάποιο χρονικό διάστημα και έχει πολλά εγχειρίδια βήματαMKR6
- Διαδικασίες επίλυσης προβλημάτων; τι κάνετε όταν το σύστημα πηγαίνει κάτωΜSK1 Ποιος καλείτε? Τι είναι τα βασικά πράγματα για να ελέγξετε ΜSK3 Αυτό συχνά παραβλέπεται αλλά είναι CRUCIAL σε ένα σύστημα παραγωγής
- Αρχιτεκτονική /ΣύστημαΜSK1Design Docs; αναφέρει πώς λειτουργεί το σύστημα ΜSK1 αναφέρει Ποια είναι τα βασικά συστατικά ΜSK2 αναφέρει Ποιες είναι οι βασικές εξαρτήσεις ? αναφέρει Σκεφτείτε αυτό ως χάρτη πορείας σας κατά την εκμάθηση ενός νέου συστήματος . αναφέρει Παρέχει ένα υψηλό επίπεδο αναφοράς για τον τρόπο λειτουργίας του συστήματος που μπορεί να είναι κρίσιμο MC6 αναφέρει ειδικότερα σε μεγαλύτερες εταιρείες , αναφέρει διανεμημένα συστήματα MK8 αναφέρει Αυτό το σχήμα περιλαμβάνει ποιες αποθήκες κώδικα πηγής χρησιμοποιούνται MD9 αναφέρει τι CI αναφέρει MD10 αναφέρει ότι τα συστήματα CD χρησιμοποιούνται MD11 αναφέρει ποιες βάσεις δεδομένων χρησιμοποιούνται για κάθε στοιχείο της εφαρμογής Σε μια .NET Core εφαρμογή αυτό θα περιλαμβάνει ένα διάγραμμα των υπηρεσιών και πώς αλληλεπιδρούν μεταξύ τους ΜSK1 και το μπροστινό άκρο ΜSK2 άλλα συστήματα υποστήριξης ) και ενδεχομένως ASP
Η τεκμηρίωση είναι ένα από τα πράγματα που εμείς ως προγραμματιστές συχνά μισούμε να κάνουμε (ΜSK1Δεν κωδικοποιεί), αλλά αυτόM SK3 έχει ζωτική σημασίαMK4 Καθώς μπορείτε να δείτε I LOVE MarkdownMST5 με τις ίδιες των Mermaid και PlantUML μπορείτε να δημιουργήσετε κάποια πραγματικά όμορφα διαγράμματα και πίνακες ροής που μπορούν να συμπεριληφθούν στην τεκμήρια σαςMSM6
Πρέπει να είναι ΕΠΙΣΤΡΟΦΗ για το ; ειδικά οι προγραμματιστές συχνά μιλούν για το bit- ειδικά για το ΜSK2 ειδικά όπου ένα έργο' γνωρίζει τις εξαρτήσεις γίνονται παλαιότερες ΜSK4 γνωρίζει τους κινδύνους ασφαλείας προς τα κάτω ειδικά. ειδικά Αυτό ισχύει επίσης και για την τεκμηρίωση ειδικότερα; ειδικά αν γνωρίζει' δεν γνωρίζει τρέχοντα ειδικά
Το ' αναφέρει διαφορετικά επίπεδα τεκμηρίωσης, αλλά γενικά Κάθε φορά που αλλάζετε τον κωδικό που αναφέρεται σε ένα έγγραφο, θα πρέπει να ενημερώσετε αυτό το έγγραφο..
Ενεργοποίηση του συστήματος τοπικά
Αυτό είναι συχνά μια πρόκληση; ειδικά αν το σύστημα έχει παραμείνει γύρω για κάποιο χρονικό διάστημα. Πρέπει να ξέρετε ποια έκδοση του Node M SK2 .NET κ.λπ.ΜSK4 ποιες εκδόσεις της βάσης δεδομένωνMK5 τι έκδοση των πλαισίων κ.τ.κ. ΜSK6 Αυτό συχνά ξεχαστεί αλλά είναι CRUCIAL για να πάρει και να τρέξει γρήγορα
Αγαπώ το ' αναφέρουμε συχνά οι προγραμματιστές που λένε ότι αυτό δεν είναι σίγουρα' αναφέρει σχετικό σε αυτές τις μέρες των συστημάτων σύννεφο και μεγάλες διανεμημένες εφαρμογές ειδικά, αναφέρουν, αλλά δεν συμφωνώ με το ΜSK3 ειδικά θα πρέπει να είστε σε θέση να εκτελέσει το σύστημα τοπικά για τα προβλήματα απορρίψεως γρήγορα και αποτελεσματικά για την επίτευξη του . αναφέρουν
- Προφίλ - ίσως αυτό φαίνεται να έχει γίνει ένα ΜSK1 ανεπτυγμένος προγραμματιστής μόνο ΜSK2 δεξιοτήτων , αλλά είναι ιδιαίτερα σημαντικό για το ΜSK4 να είναι σε θέση να προβάλει τον κώδικα σας για να δείτε πού τα μπουκάλι είναι ΜΣΚ5 Αυτό ισχύει ειδικά σε ένα σύστημα κληρονομιάς όπου μπορεί να μην έχετε την πολυτέλεια να είστε σε θέση για να επαναγραφή του συστήματος από scratch ΜСК6 Tools like Δοκτέρ και Μνήμηείναι ανεκτίμητες εδώ. Ειδικά στην ASP.NET εφαρμογέςM SK2 τα μεγαλύτερα προβλήματα είναι γενικά ΜSK3λαςMK4 στο σύστημα; μνήμης διαρροέςM Sk6 συνδεσιμότητα κλπMesk7 Ενώ η εφαρμογή σας θα φαίνεται να εκτελεί FINE για λίγο ξαφνικά βρίσκεστε τοMzk8 καταρρέει Mšk9 χρησιμοποιώντας όλη τη μνήμη στον διακομιστήMosk10
- Ανακάλυψη προβλημάτων στο απορρυπαντικό - ανακοινώθηκε ότι του αρέσει ή όχι τις ημέρες της
Response.Writein Classic ASP είναι πάνω από.Για μια ακόμη μετριοπαθής περίπλοκη εφαρμογή ΜSK1ειδικά εκείνα που είδατε'τα γράψετε)τα 'τα θεωρεί κρίσιμη γιαM SK5το κώδικαMSKA6το κωδικόMKA7Ακολουθήστε ένα αίτημα από την έναρξή του μέσω της υπηρεσίας για να προσδιορίσετε τι θα συμβεί το ΜΙΚΤ8 ποιες εξαιρέσεις δεν μπορούν να συλλάβονται κλπΜСК9 - Συνδεσιμότητα - Ξανά συχνά παραμελημένο ΜSK1 αναρωτιέμαι αλλά δεν υπάρχει φίλτρο εξαίρεσης ASP.NET Κύριος στην κορυφή του σκάφους είναι σίγουρα' αναφέρει αρκετάM SK4 Αναφέρομαι πίσω στο δικό μου Προηγούμενο post, logging είναι ένα κρίσιμο μέρος για την εργασία στο κώδικα LOCALLY. Θυμηθείτε ότι μπορείτε να χρησιμοποιήσετε τύπους καταγραφής πελατών ΜSK2για παράδειγμα, χρησιμοποιώντας το Γεννήτρια πηγής Logging) σε ASPΜSK1NET Κορυφαία. Μπορείτε στη συνέχεια να προσδιορίσετε ποιους τύπους γεγονότων θα πρέπει να συνδεθούν και ποιοι θα έπρεπε να συνδέονται με' ΜSK4 Αυτό είναι ζωτικής σημασίας σε ένα σύστημα κληρονομιάς όπου μπορεί να μην έχετε την πολυτέλεια να είστε σε θέση να ξαναγράψετε το σύστημα από scratch
Για το Application Insights μπορεί να θέλετε τα User Journeys και άλλα χαρακτηριστικά του ; να γνωρίζετε ωστόσο Αυτό γίνεται ακριβό γρήγορα Αν χρησιμοποιείτε
LogInformationγια κάθε αίτηση. Μπορεί να θέλετε να χρησιμοποιήσετε ένα προσαρμοσμένο επεξεργαστή τηλεμέτρου για να φιλτράρετε τις αιτήσεις που δεν θέλετε' θέλουν να συνδεθούν. - Δοκιμή - Πολύ συχνά βλέπω τους προγραμματιστές ΜSK1testing σε preprod' ή σκέφτομαι ότι η δοκιμή μονάδας στη συνέχεια ελέγξτε είναι ENOUGH όσον αφορά τις δοκιμέςM SK3 Η RARELY ISMSKA4 υπάρχουνMK5χει μεγάλη αξία τόσο χρησιμοποιώντας ένα εργαλείο όπως το Resharper / NCrunch για να εκτελέσει αυτόματα μια δοκιμασία μονάδα ΜSK7 όμως θυμηθείτε Οι δοκιμάσεις μονάδων είναι ακριβώς ότι ΜΚ8 έχουν δοκιμαστεί ΜΣΚ9ΜΣΚ10 κώδικα ΜСК11 Πρέπει να διατηρήσετε την ορατότητα στο πώς λειτουργεί πραγματικά το σύστημα μαζί με άλλα συστατικά στοιχεία SPECFLOW για να γράψετε αυτές τις δοκιμές σε ένα ανθρώπινο- μη αναγνώσιμη μορφήΜSK1 Πάλι; κρίσιμο σε ένα σύστημα κληρονομιάς όπου μπορεί να μην έχετε την πολυτέλεια να είστε σε θέση να ξαναγράψετε το σύστημα από τα σκουπίδια ΜSK3
Στο έργο EVERY εργάζομαι στο πρώτο βήμα είναι να αποκτήσω το σύστημα (or ένα μεγάλο μέρος αυτού) λειτουργεί τοπικάM SK2 Με την εμφάνιση του κώδικαΜSK3 λειτουργούν τον κωδικόMSKA4 αποσπάστε τον κωδικό μπορείτε να πάρετε μια αίσθηση για το πώς λειτουργεί το σύστημαMSKI5
Η βάση κώδικα
Σε κάθε σύστημα αυτό είναι το δικό σας. Πηγή αλήθειας, σίγουρα δεν έχει σημασία τι λένε τα docs, σίγουρα τι άλλοι σας λένε για το πώς θα λειτουργήσει αυτό είναι πώς λειτουργείΜSK2 σίγουρα
Ναυτιλία σε μια κληρονομική βάση
Αυτό είναι συχνά προκλητικό, αυτόΜSK1 φαίνεται σαν να βρείτε τον δρόμο σας σε μια νέα πόλη χωρίς χάρτη οδού ΜSK2 Ευτυχώς στις εφαρμογές έχετε ένα σημείο εισόδου ΜΚ3 φόρτιση σελίδας / μια κλήση API στο μπροστινό άκρο κλπ ΜΣΚ5 πάρτε ένα σημείο και ξεκινήστε εκεί ΜСК6
Χρησιμοποιήστε ό, τι χρειάζεστε για να αλληλεπιδράτε με αυτό, αν το ' PostMan, RiderM SK3 HttpClient ή ακόμη και μια ιστοσελίδαMK4 Hook στο αποσπάκι σαςMSKA5 κάνετε την κλήση και ακολουθήστε τη διαδικασία μέσωMSKI6 Rinse και επαναλάβετε για κάθε μέρος του συστήματοςMKA7
Επαναφορά
Γενικά ΔΗΜΙΟΥΡΓΕΙ ΤΟ ΧΩΡΙΣ ΕΣΕΙΣ ΚΑΤΑΣΤΑΞΕΤΕ ΤΟ ΣΧΕΤΙΚΟ.Αυτό'Πάντα δοκιμάζει να M SK2το κλέβει μακριά και ξεκινά ξανάMK3αλλά αντιστέκεται σε αυτό το πειρασμόMSKA4Και ειδικά για ένα τρέχον σύστημαMKA5συνήθωςMska6 Δουλεύει ανασυγκρότηση / ίσως ακόμη και αποκατάσταση ενός συστήματος είναι ένας μεγάλος κίνδυνοςΜSK1 Ναι αυτό' FUN αλλά για κάθε γραμμή κώδικα που αλλάζετε διακινδύνετε να εισαγάγετε νέα συναρπαστικά bugs
Όπως όλα τα άλλα ( ειδικά κατά την σύναψη συμβάσεων ΜSK1 ειδικά πρέπει να δικαιολογήσετε το έργο που εκτελείτε σε ένα σύστημα ΜSK2 ειδικά Ή αυτή η δικαιολογία πρέπει να επικεντρωθεί σε μία από τις ακόλουθες
- Αποτελεσματικότητα - εφόσον το σύστημα είναι αργό και πρέπει να επιταχυνθεί ΜSK1 ας είστε προσεκτικοί ΜSK2 αυτό που Βλέπετε αργό μπορεί να είναι πώς το σύστημα έχει σχεδιαστεί για να λειτουργήσει . Δημιουργία ενός μέρους καπνίσματος γρήγορα μπορεί να εισαγάγει προβλήματα περαιτέρω κάτω από το σύστημα . Θέλεις Η ΜSK5 θα σκοτώσει η ΜSK6 ο διακομιστής βάσης δεδομένων Εάν κάνετε πάρα πολλές αιτήσεις έχετε ένα μηχανισμό που κέρδισε Η ' προκαλεί εξαιρέσεις
- Ασφάλεια - ίσως το σύστημα είναι αβέβαιο και πρέπει να γίνει ασφαλέςΜSK1 Αυτό είναι ένα τρυφερό πράγμα ΜSK2 ειδικά σε ένα κληρονομικό σύστημα ΜΣΚ3 Με λίγα -rot μπορείτε να βρείτε ότι το σύστημα χρησιμοποιεί παλιές εκδόσεις των βιβλιοθηκών που έχουν γνωστά προβλήματα ασφαλείας ΜСК5 Αυτή είναι μια καλή δικαιολογία για την εργασία ΜΚ6 Ωστόσο, παρατηρήστε ότι ενδέχεται να χρειαστεί να ανακαταστήσετε ένα LOT του συστήματος για να το ενημερώσει Μ스크7 ξανά οδηγώντας στο Μσκ8 νέα σφάλματα
- Διατήρηση - ίσως το σύστημα είναι δύσκολο να διατηρηθεί και πρέπει να γίνει ευκολότερο για τη συντήρηση. Γενικά αυτό γίνεται πολύ δουλειάM SK2 η τρέχουσα διάρκεια ζωής της βάσης κωδικών δικαιολογεί αυτόΜSK3 Αν θέλετε' αναφέρει ξοδεύουν περισσότερο χρόνο κάνοντας αυτές τις αλλαγές για τη βελτίωση της συντήρησης από ό, τι θέλετεΜSK5 αναφέρει ποτέ εξοικονομήσει για τον πελάτη τότε αναφέρεται' αναφέρει ότι δεν αξίζει την αξία του.
- Εμπειρία χρήστη - Γενικά θέλω προτεραιότητα σε αυτά τα ζητήματαΜSK1 Για Χρήστης Δεν έχει σημασία αν ο κωδικός σας είναι 1% ίσως καλύτερα ΜSK2 ίσως είναι εκείνοι που πληρώνουν για τη δουλειά που κάνετε στο τέλος ΜSK3 ίσως Αν μπορείτε να κάνετε την εμπειρία τους καλύτερη από ό, τι ' συνήθως αξίζει αυτό . ίσως Ωστόσο MC6 πιθανώς να γνωρίζουμε ότι αυτό μπορεί να είναι ένα MK7 πιθανό κλίμακας SMK8 πιθανότατα αλλαγές MVK9 πιθανόν θα βρείτε ότι εσείς ενδιαφέρεστε με το MC10 ενδέχεται να αλλάξει ένα LOT του συστήματος για να κάνει μια μικρή αλλαγή για τον χρήστη
Η επιχείρηση της εργασίας σε συστήματα κληρονομιάς
Αυτό συχνά παραβλέπεται; ειδικά από τους προγραμματιστές. Πρέπει να είστε σε θέση να δικαιολογήσετε την εργασία που κάνετεM SK2ΜSK3 Αυτό είναι ιδιαίτερα αληθινό σε ένα περιβάλλον σύμβασης όπου εσείςMK4 πληρώνει με την ώρα. Στο τέλοςM Sk6 ΜSK7 δεν Εσάς κωδικός και όχι τα χρήματά σαςMSKA8 ΓΙΑΤΙ εσείς νοιάζεστε' Κάντε μια αλλαγή είναι συχνά πιο σημαντική από την ίδια την αλλαγήMKA10
I'βού δουλεύει ως προμηθευτής για πάνω από μια δεκαετία τώραΜSK1βουτουτουτουτοςτοςτοςτουςτουςτουςουςουςουςμουςμουςμουςμουμουμουμούμουμουμοςμουμουμομουμουμόμουμουμοιμουμουμμουμούμούμουμμμουμουμίμουμουμωνμουμουμιμουμουμώνμουμουμεμουμουσμουμουμίαμουμμοςμουμυμίαμουμουμήμουμουμουςμουμύμουμουνουμουμουρουμουμουμάμουμου
Ως προγραμματιστές , τείνουμε να είμαστε χαρούμενοι επιχειρηματικοί άνθρωποι ΜSK1 εστιάζουν σε ' τελειότητα ΜSK3 σε κάθε γύρο Μ SK4 Στην πραγματικότητα ΜΚ5 δεν χρειάζεται να κάνετε ένα σύστημα ΜΣΚ7 τελείωση ΜСК8 Με ΜSK9 με ΜSK10 αμφισβητείται ότι δεν υπάρχει κάτι τέτοιο Μ스크12 απλά πρέπει να παραδώσετε αξία στον πελάτη Μσκ13
Σε μακροπρόθεσμη δέσμευση αυτό περιλαμβάνει την εξασφάλιση οποιασδήποτε ΝΕΑ κώδικα είναι διατηρήσιμη και κοστίζει-ενεργό για να τρέξειΜSK1Σε συστήματα κληρονομιάς αυτό είναι MUCH HARDER. Συχνά πρέπει να βουρτσίζετε μέσα από ένα swampM SK3 ανησυχούν ότι καθώς μαθαίνετε το σύστημα που CANNOT προσφέρει πολύ αξίαMSKA4 I'm not making any changes Σκέφτεσαι I'm just learning the system.
Αυτό είναι ένα ψευδώνυμο; σας αρέσει' διατηρεί την εκμάθηση του συστήματος για να το κάνει καλύτεραΜSK2 Σας αρέσουν' διατηρείται η εκμάθησή του για να γίνει πιο αποδοτική ΜSK4 Σάς αρέσετε' διατηρούν τη μάθηση του προγράμματος για να καταστεί πιο βιώσιμη . Εάν ένας πελάτης δεν μπορεί να δεχθεί αυτό το βήμα ΜΚ7 τότε θα πρέπει να είστε πολύ προσεκτικοί σχετικά με τον τρόπο που επικοινωνείτε αυτό Μσκ8 αναζητά μια νέα σύμβαση ΜΣ9
Ο λαός
Ξανά συχνά ξεχασμένο, πολύ από το χρόνο που αγαπάς' φέρει ως προμηθευτής επειδή κάποιο βασικό άτομο έχει φύγει (ΜSK3 να εμπλέκεται στην πολιτική αυτούM SK4 αυτόMSKA5 δεν σας ανησυχείMSKI6 Πρέπει να είστε σε θέση να εργαστείτε με τους ανθρώπους που είναι εκεί για να επιτύχετε τους στόχους του έργουMSKE7 Σε μια σύμβαση που αγαπάτε' αναμένεται γενικά να έχουν τους όρους της δέσμευσής σας ξεπεράσει ( διατηρεί τη τρέχουσα σύμβασή μου ότι αγαπάει' αναμένει ΜSK3 βελτιώνει την αξιοπιστία και μειώνει το κόστος εκτέλεσης ΜSK4 αναμένεται επικεντρωθεί σε αυτό. αναμένω Αν αγαπάς' αναμέρει δεν είναι βέβαιος τι σημαίνει τότε ASK αναμέτρησε.
Θυμηθείτε ποιος είναι ο άμεσος σας επαφής ; ειδικά στα πρώτα δύο μήνες ΜSK1 Κρατήστε τους ενημερωμένους ΜSK2 πιθανό να κερδίσετε ' έχουν νέες δυνατότητες για να ανακαλύψουν πώς λειτουργεί το σύστημα ). Γενικά στέλνω ένα συνοπτικό μήνυμα ηλεκτρονικού ταχυδρομείου κάθε εβδομάδα MC5 2 εβδομάδες στην άμεση επικοινωνία μου MK6 αυτό είναι ένας καλός τρόπος για να τους κρατήσει ενημερωμένοι σχετικά με το τι κάνετε MD7 και τι κάνεις MG8 βρείτε MD9
Θυμηθείτε ότι, ίσως αυτό είναι το άτομο που θα εγκρίνει τον λογαριασμό σας; ίσως δεν πρέπει να υπάρχουν εκπλήξεις στο χρόνο τιμολόγησης. Μόλις ξεκινήσετε την επαλήθευση του κώδικα τακτικά αυτό είναι λιγότερο από ένα πρόβλημαM SK3 ίσως έχετε μια εγγραφή ακριβώς ό, τι κάνατε και τον αντίκτυπο είχεΜSK4 Μέχρι τότεMK5 χρειάζεστε να τους κρατήσετε ενημερωμένους Πρέπει να ξέρουν τι κάνατε και γιατί θα πρέπει να σας πληρώσουν για αυτό
Αξιοπιστία
Επαναλαμβάνουμε το , επιστρέφει στον κώδικα κληρονομιάς στο ; ειδικά αν κάνετε μια αλλαγή γενικότερα θα χρειαστεί να την εκτελέσετε σε . ειδικάΑκόμα και ο καλύτερος από εμάς θα FUCK THIS UP από καιρό σε καιρό για , ειδικά στα συστήματα κωδικού κληρονόμου θα υπάρξει κάτι Μπορείς να γνωρίζεις το ' όταν εκτελείτε. Αυτό επιστρέφει στην εγγραφή - αν έχετε έναν διακομιστή στάθμευσης έχει καταχωρίσει ένα LOT ΜSK2 αλλά διατηρείται για σύντομο χρονικό διάστημαM SK3 τότε όταν εκτέλεσε σε THIS μπορείτε να συλλέξετε περισσότερες πληροφορίες σχετικά με το τι απέτυχε
Ανεξάρτητα από το πόσο καλά είστε, πόση τοπική δοκιμή κάνετεΜSK1 κάνουμε είμαστε όλοι ανθρώπινοι ΜSK2 Αυτό είναι ένα κλειδί μέρος του 'M SK4 εκτέλεσης σε μια Παρασκευή ' Κανόνες ΜСК6 αναμένεται μια εκτέλέση για να προκαλέσει ένα νέο πρόβλημα σε ένα σύστημα ΜΣΚ7 Να είστε έτοιμοι να εργαστούν μέχρι αυτό ΜΑΣΚ8 λυθεί ΜΟΣΚ9 Εάν δεν γνωρίζετε γιατί αποτύχει ΜΕΣΚ11 προσθέστε περισσότερες δοκιμές για την αναπαραγωγή του προβλήματος και περισσότερη σύνδεσή σας για να βεβαιωθείτε ότι θα συναντήσετε παρόμοια προβλήματα στο μέλλον
Ειδικά για τα συστήματα παραγωγής το σύστημα στάθμευσης σας μπορεί να μην είναι 1:1 ΜSK1 ειδικότερα όταν σχετίζεται με φορτίοΤα εργαλεία όπως ΚΕΦΑΛΑΙΟ ΕΡΓΑΣΙΑ Μπορεί να σας βοηθήσει να προσομοιώσετε το φορτίο ( διατηρούνται καλύτερα τοπικά όπου μπορείτε να κάνετε σωστό προφίλ όπως αναφέρθηκε προηγουμένως).
εκμετάλλευση
Και πάλι συχνά ξεχασμένο στο φρόνημα για το CI/CD είναι ο λόγος γι 'αυτούςΜSK1Πολύ απλό;ΘΑ ΠΡΟΣΦΥΓΕΙ ΣΤΟ ΜSK3Έχοντας έναν πολύ γρήγορο και αποτελεσματικό τρόπο να αναπτύξετε ένα σύστημα σημαίνει ότι όταν κάνετε σπάσει μπορείτε επίσης να το διορθώσετε πιο γρήγοραM SK4Εάν το σύστημα αναθεώρησης κωδικού CI σας σημαίνει ότι παίρνει MSKA5 ημέρες για να πάρει μια PR συγχωνεύεται τότε ότιMKA6το ταχύτερα μπορείτε λογικά να αποσύρετε ένα σύστημά μας
Ένας αποτελεσματικός μηχανισμός για τη διόρθωση και την εκτέλεση του κώδικα είναι απαραίτητος για ένα αποδοτικό σωλήνα ανάπτυξης. Εάν χρειάζεται περισσότερο χρόνο για να αναπτυχθεί μια διόγκωση από ό, τι χρειαζόταν για να βρεθεί και να εφαρμοστεί η εν λόγω διάταξη στο κώδεμα τότεΜSK1 λιγότερες πιθανότητες να διορθωθούν τα πράγματα.
'Fixing Legacy AppsΜSK1
Το θέλω σε αναφορές, καθώς αυτό είναι ένα ζήτημα; ειδικά για εφαρμογές κληρονομιάς ΜSK1 ειδικότερα όταν η μεγάλης κλίμακας επανένωση είναι έξω από τα όριαΗ ΜSK2 ειδικά υπάρχουνΗ ' διαθέτει δύο κύριες προσεγγίσειςΗ . ειδικά
- Δραστηριότητες Patches
Αυτή είναι η διαδικασία της απλής διόρθωσης του υπάρχοντος κώδικα; πάλι διασφαλίζει ότι δοκιμάζετε προσεκτικά και έχετε διαδικασίες σε θέση να αναστρέψετε ΜSK1 γρήγορα επανεγκατάσταση οποιωνδήποτε διόδων. Έχω κερδίσει' ψέματα αυτό το είδος της ανάπτυξης είναι σπάνια FUN καθώς είστε ακόμα πιθανό να βουρτσίζετε μέσα από την κούραση της υπάρχουσας βάσης κωδικώνΜSK1 Ωστόσο,Μσκ3 ένα απαραίτητο κακό σε πολλές περιπτώσειςΜσΚ4
Όπως συνήθως θα πρέπει να βεβαιωθείτε ότι έχετε κάποια μορφή δοκιμής για να ξεπεράσει τον τρέχοντα κώδικα; ιδανικά θα πρέπει επίσης να δοκιμάσετε για την αποτυχία για το πρόβλημα που προσπαθείτε να λύσετε ΠΡΙΝ κάνετε τη διόρθωση . Είναι IDYLL για αυτό είναι να έχει μια δοκιμή μονάδας που στοχεύει στενά την περιοχή του κώδικα που πρέπει να διορθωθεί, αλλά αυτό είναι συχνά έξω από το πεδίο εργασίας για τις μεγάλες εταιρείες, ειδικά διανεμημένα συστήματα ειδικά. ειδικότερα
Το ' χρησιμοποιεί γενικά ένα σύστημα δοκιμών σε αυτή τη σειρά προτίμησης το :
- Μονάδες δοκιμών - πάλι αυτά είναι προτιμώμενα καθώς μπορείτε να στοχεύσετε αυτούς μόνο για την άσκηση του κώδικα που εργάζεστε σεΜSK1 Ωστόσο,, σε ένα σύστημα κληρονομιάς αυτά συχνά δεν υπάρχουν & εξαιρετικά δύσκολο να αναρριχηθεί SMK4για παράδειγμα σε ένα σύστημα με πολλές εξωτερικές κλήσεις Συμφωνία / η οποία είναι ανόητη στον τρόπο κατασκευήςΣύμφωνο ; δεν χρησιμοποιεί DI π.χ.
- Δοκιμές ενσωμάτωσης - Αυτό είναι ένα υπερφορτισμένο όρο, καθώς μπορεί να καλύψει οτιδήποτε από μια δοκιμή μονάδας που περνά μέσα από πολλαπλά στρώματα κώδικα ΜSK1τα αυτά αποφεύγονται καλύτερα) για να χρησιμοποιήσουν τα χαρακτηριστικά της εξαιρετικής Ελέγξτε Μέσα από ακόμη και σε δοκιμές Selenium. Γενικά θέλετε να δοκιμάσετε το σύστημα ως σύνολοΜSK1 Ωστόσο, να γνωρίζετε ότι αυτές οι δοκιμασίες μπορεί να είναι αργές και εύθραυστες. Χρήση Verify μπορεί συχνά να είναι μια μεγάλη προσέγγιση για τα συστήματα κληρονομιάς όπως μπορείτε τουλάχιστον M SK3 επαλήθευση
- Χειρουργικές δοκιμές - EVERY προγραμματιστής θα πρέπει να προσπαθήσει και να εκτελέσει χειροκίνητα τεστ για οποιοδήποτε κώδικα checkin.Αυτό είναι μόνο η διασφάλιση ότι αυτό που περιμένετε ο χρήστης του 'M SK3ΜSK4αυτό μπορεί να είναι ένας πραγματικός χρήστη ή ένα άλλο συστατικό του συστήματος αλληλεπιδρά με τον κωδικό σαςMSKA5 για να δείτε είναι τι πραγματικά βλέπουνMKA6 Αυτό μπορεί να γίνει τόσο απλό όσο τρέχει το σύστημα τοπικά και ελέγχει την παραγωγή μιας σελίδας ή τόσο περίπλοκο όσο τρέχοντας μια πλήρη σειρά δοκιμών σε έναν διακομιστή στάθμισηςMK7
- Σκιντέρ Skinning Για να εργαστείτε σε συστήματα κληρονομιάς γενικά κερδίζετε'τ έχουν την πολυτέλεια μιας πλήρους ανακαίνισηςΜSK1Αυτό είναι όπου χρησιμοποιώ το 'onion skinningM SK3 προσέγγιση
Για να μπορέσετε να αναβαθμίσετε ΜΕΡΕΣ Συστήματος μπορείτε να προσδιορίσετε συστατικά που μπορούν να χωριστούν από ένα υπάρχον μονολίτο σε μια μικρο-υπηρεσία ( για κάποια αξία ΜSK1micro').Αυτό μπορεί να είναι ένας πολύ καλός τρόπος για να ξεκινήσει η εκσυγχρονισμός ενός συστήματος χωρίς τον κίνδυνο μιας πλήρους αναδιάρθρωσηςM SK3 Κοινά παραδείγματα θα μπορούσαν να είναι η διάσπαση των τερματικών σημείων API σε νέα έργα που χρησιμοποιούν πιο ενημερωμένα στοιχεία.Η τρομοκρατία του DRY μπορεί να εισέλθει εδώ όμωςΜSK1 Μια κακώς δομημένη λύση συχνά έχει πολλά ' βοηθάει ΜSK3 ή ' εξυπηρέτηση Μ SK5 συστατικά τα οποία πραγματικά θα έπρεπε να είναι σε διαφορετικά έργα ΜΚ6 ακόμη και σε πακέτα nuget για περισσότερη παγκόσμια επαναχρησιμοποίηση ΜСК7
Αγαπώ το ' θα καλύψει αυτή την προσέγγιση περαιτέρω σε ένα μελλοντικό άρθρο, καθώς αναφέρει ότι η ' είναι ένα βασικό στοιχείο του τρόπου με τον οποίο εργάζομαι στα συστήματα κληρονομιάς.
Πληρωμή
Τώρα που έχουμε όλα αυτά στο δρόμο έρχεται το σοβαρό πρόβλημα της πληρωμής.Έχω έναν γενικό κανόναΜSK1
Οποιαδήποτε ζητήματα πληρωμής που λατρεύω'm θέλω να προχωρήσω
Εάν το ' ενημερώνει για καθυστερημένη πληρωμή του ; ίσως εξαρτάται από τη σύμβαση σας, αλλά στο LEAST μέσα σε 30 συγκεκριμένες ημέρες, αλλά γενικά πιο κοντά στο 7; πιθανώς αυτό είναι ένα κακό σημάδι για . πιθανώς Εάν υπάρχει ' ενημερώνεται για τα κλίβια πάνω από την τιμολόγησή σας (nickle- και ειδικότερα -dimeingΜSK9 σκέφτεται αν η εταιρεία είναι σε θέση να πληρώσει για τις υπηρεσίες σας σε συνεχή βάσηM SK10
Don'μαρτυρεί με αυτόΜSK1 αν σας αρέσει'μάτε να κάνετε τη δουλειά σας που πρέπει να πληρώσετε σε μια έγκαιρη μόδα ΜSK3 Δεν έχει σημασία πόσο θα το απολαύσετε ; εάν ένας κακός πελάτης μπορεί να σας εκμεταλλευτεί θα σας αρεσουν. Σχεδιάζει'Ποτέ δεν αξίζει τον κόπο
Να είστε ειλικρινείς; μόνο χρέωση για το χρονικό διάστημα που πραγματικά εργάστηκανΜSK1 βεβαιωθείτε ότι' ξεκάθαρα τι κάνατε και γιατί το κάναμε ΜSK3
I'βει ηγετικές ομάδες προγραμματιστών και IΜSK1βουν ήταν ένας προγραμματιζόμενος ΜSK2βούμουν ΜSK3βούνταν ένας εργολάβος και εγώΒούμω ΜSK4βείταν ένας πελάτης ΜΚ5βουμώ ΜΚ6βούμε όλες τις πλευρές αυτού και μπορώ να σας πωΜΚ7βείτε ΜΚ8βετε δεν πληρώνεται εγκαίρως τότε θα πρέπει να μετακινηθείτε σεΜΣΚ9βιάζοντας ΜΚ10βώντας αν έχετε έναν εργοδότη ΜΣΚ11βίζοντας μια FTEΜσκ12βουλευτές πουΜσΚ13βιώνουν δεν παραδίδουν τότε θα χρειαστείτε να αντιμετωπίσετε αυτό γρήγοραΜСК14Όλοι έχουν προσωπικές μάχες αλλά ειδικά σε ένα συμβόλαιολογικό περιβάλλον
Σχετικά με τα ποσοστά; ίσως θα βρείτε το επίπεδο σαςΜSK1 ίσως προσωπικά πληρώνω περισσότερα για έργα όπου έχω περισσότερη ευθύνη ( ο οποίος δεν μπορεί να ΜSK3 μοιάζει διασκεδαστικό ΜSK4 πληρώνομαι λιγότερο για έργες όπου αγαπώ ΜSK5 μαθαίνω μια νέα τεχνολογία ή για αρχάριους . αγαπτώ ΜSK7 εργάζομαι επίσης λιγότερες ημέρες αλλά κρατάω τον ρυθμό μου σταθερό ΜСК8 Αλλά μην κάνετε ΜSK9 αποδέχεται χαμηλό Μσκ10 μπάλα ποσοστό ΜΣΚ11 θέλετε ΜSK12 σε επαγγελματία και θα πρέπει να πληρωθεί ως τέτοιο
Στο συμπέρασμα
Λοιπόν, ότι το ' ευχαρίστησε αυτό το ΜSK1 ευχαρακτηριστικά θέλω στο ' να αποχωρήσει από την εργασία σήμερα και αύριο για το γκρέμ μου Το ' ευχαροποίησε κηδεία και ειλικρινή πανικό λίγο ότι έχω ένα HUGE σύστημα κληρονομιάς για να μάθω το , ευχαράστησε έτσι σκέφτηκα ότι η ' ευχαρώστησε να βουρδίσει τις σκέψεις μου σχετικά με το τι δουλεύει σε αυτά τα συστήματα είναι σαν το & ευχαρήστησε τις προκλήσεις του .