πώς να αποφύγετε τον κωδικό σπαγγέτι


Απάντηση 1:

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

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

Πολλοί έμπειροι προγραμματιστές αντιμετωπίζουν τα έργα τους σχεδιάζοντας ή γράφοντας τις ιδέες τους πριν από την κωδικοποίηση. Αυτό τους βοηθά να αποφύγουν τον κώδικα σπαγγέτι καθορίζοντας τις μεταβλητές, τις μεθόδους και τις τάξεις που χρειάζονται για το πρόγραμμά τους χωρίς να τις κωδικοποιούν καθώς πηγαίνουν. Ένας άλλος τρόπος για να αποφύγετε τον κώδικα σπαγγέτι θα ήταν να χρησιμοποιείτε μεθόδους, συναρτήσεις και τάξεις όσο συχνά χρειάζεται. Είναι πολύ πιο εύκολο να προσδιορίσετε την αιτία ενός σφάλματος όταν εφιστάται η προσοχή σας σε μία μόνο μέθοδο παρά σε εκατοντάδες γραμμές κώδικα!

Εν ολίγοις, εάν διατηρήσετε τις σκέψεις σας σχετικά με τον κώδικά σας οργανωμένες, οι πιθανότητες είναι ότι το τελικό προϊόν σας θα είναι επίσης. Μάθετε τι προσπαθείτε να ολοκληρώσετε πριν από τη σύνταξη κώδικα, χρησιμοποιήστε τη σωστή σύνταξη και διαιρέστε τον κώδικα σωστά. Τα σχόλια και η σωστή εσοχή σίγουρα βοηθούν επίσης!


Απάντηση 2:

Ο κωδικός Spaghetti μοιάζει με αυτό το κύκλωμα:

Δεν ξεκίνησε με αυτόν τον τρόπο. Στην αρχή συνδέσατε μερικά απλά εξαρτήματα. Αλλά με την πάροδο του χρόνου, κάθε νέο κομμάτι λειτουργικότητας απαιτούσε να κάνετε νέες συνδέσεις.

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

Γνωρίζατε ότι τα πράγματα γίνονταν ακατάστατα, αλλά σε κάθε βήμα ήταν πιο εύκολο να χαράξουμε μια νέα λύση παρά να επανασχεδιάσουμε ολόκληρο το σύστημα για να το προσαρμόσουμε. Έτσι, προχωρήσατε προς τα εμπρός, αναζητώντας επιμελώς ολοένα και πιο δημιουργικούς τρόπους για να αντιμετωπίσετε τα συνεχώς αυξανόμενα προβλήματά σας.

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

Λοιπόν, πώς θα μπορούσε να είχε αποφευχθεί αυτό; Ανακατασκευή. Θα πρέπει να έχετε επανασχεδιάσει τα κομμάτια του κυκλώματος για να προσαρμόσετε τις αλλαγές που κάνατε καθώς τις κάνατε. Μερικές φορές αυτά τα αντιδραστήρια δεν είναι μικρά. Δεν υπάρχει ασημένια σφαίρα, καμία γενική αρχή που θα σχεδιάσει το σύστημά σας για εσάς. Χρειάζεται πολλή διορατικότητα και σκληρή δουλειά για τη διατήρηση της τάξης. Αλλά το τελικό αποτέλεσμα αξίζει τον κόπο.


Απάντηση 3:

Ως όρος, είναι συνηθισμένο να λέμε ότι αναφέρεται (goto), αλλά ως έννοια μπορεί να γραφτεί σε οποιαδήποτε γλώσσα προγραμματισμού χωρίς να περάσει από κακή αφαίρεση και λειτουργίες / μεθόδους κλήσεις που δεν παρέχουν σαφή έννοια του τι συμβαίνει.

(1) Θα βρείτε (goto) χρήση σε πολλά έργα, Ελέγξτε τον πυρήνα Linux και την εφαρμογή της γλώσσας Ruby στο C.

(2) Χρησιμοποιήστε σαφή ονόματα για τάξεις, μεθόδους, μεταβλητές και συναρτήσεις

(3) Προτιμήστε ονόματα μεγάλων συναρτήσεων που καταδεικνύουν το σκοπό της συνάρτησης σε σχέση με σύντομα ονόματα και σχόλια.

(4) Διαιρέστε και κατακτήστε, αλλά μην δημιουργήσετε συναρτήσεις που θα κληθούν για μία φορά, οι μακροχρόνιες και σαφείς συναρτήσεις με σχόλια είναι καλύτερες από πολλές συναρτήσεις όπου κάθε μία καλείται για μία φορά.

(5) Όταν σκέφτεστε την αφαίρεση, σκεφτείτε τα μέρη που θα αλλάξετε όταν προσθέτετε / αφαιρείτε / τροποποιείτε μια λειτουργία. Μειώστε τον αριθμό αυτών των θέσεων όσο το δυνατόν περισσότερο.

(6) Χρησιμοποιήστε σχόλια όταν πρέπει να τα γράψετε για να κατανοήσετε τη μεγάλη εικόνα. Ο κώδικας πρέπει να είναι αρκετά σαφής χωρίς να εισάγετε σχόλια για μικρές λεπτομέρειες.

(7) Τεκμηριώστε κάθε αρχείο και κάθε συνάρτηση.

(8) Μην βελτιστοποιείτε τίποτα έως ότου συνειδητοποιήσετε ότι το χρειάζεστε πραγματικά, ή ξέρετε ότι από την αρχή ότι αυτό είναι απαραίτητο.

(9) Η έξοδος από τη βελτιστοποίηση δεν σημαίνει ότι θα γράψετε ηλίθιο κώδικα και θα αφήσετε απλούς αλγόριθμους που είναι πιο γρήγοροι και καταναλώνουν λιγότερη μνήμη. Υπάρχει ένα επίπεδο βελτιστοποίησης που πρέπει να διατηρήσετε στην κουλτούρα κωδικοποίησης.


Απάντηση 4:

Όλες οι άλλες απαντήσεις, συν…. Θα βρείτε πολλά διαδικτυακά σεμινάρια, ακόμη και τα επαγγελματικά επί πληρωμή που έχουν την τάση να κωδικοποιούν σπαγγέτι. Ένα από τα συνηθισμένα μυρωδιά κώδικα iOS σε πολλά μαθήματα είναι ο μονολιθικός ελεγκτής προβολής. Οι εκπαιδευτικοί συγγραφείς και οι αρχικοί κωδικοποιητές, τείνουν να τοποθετούν όλο τον κώδικα σε μια τάξη αντί να διανέμουν τη λειτουργικότητα του κώδικα τους. Είναι δύσκολο να αποφευχθεί όταν τα μαθήματα γράφονται άσχημα! Το άλλο πρόβλημα είναι ότι εσύ. απλά δεν μπορεί να γίνει καλός κωδικοποιητής απλά διαβάζοντας βιβλία σχετικά με καλές μορφές κωδικοποίησης ή σχεδίασης, καθώς τα προβλήματα που επιλύουν δεν έχουν νόημα για εσάς, εκτός κι αν έχετε γράψει κακό κώδικα _AND_ έπρεπε να τροποποιήσετε ή να διατηρήσετε τον δικό σας ή κάποιον άλλο κωδικό και να σας βρούμε αφιερώστε περισσότερο χρόνο τροποποιώντας αυτό που νομίζετε ότι θα διαρκέσει πέντε λεπτά και δύο γραμμές, καταλήγει να πάρει ώρες για εντοπισμό σφαλμάτων.

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

  1. Γράψτε κώδικα. 2. Μάθετε λίγο σχέδιο. 3. Γράψτε κώδικα. 4 Μάθετε λίγο περισσότερο σχεδιασμό. 5. Μετά από λίγο, εσύ. θα αρχίσει να βλέπει προβλήματα στον δικό σας κώδικα και θα αναζητά ενεργά λύσεις μόνοι σας.

Απάντηση 5:

Πώς να αποφύγετε τη σύνταξη κώδικα σπαγγέτι;

Θεωρητικά, γνωρίζοντας τι είναι και δεν το γράφουμε πρώτα,

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

Μια άλλη πιθανότητα είναι όπου ο κώδικάς σας ελέγχεται από κάποιον άλλο που νοιάζεται και έτσι σας διδάσκουν και ή σας αναγκάζουν να αντικαταστήσετε τον κωδικό σπαγγέτι.

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


Απάντηση 6:

Ο κώδικας Spaghetti είναι ένας μεγάλος αριθμός δυσανάγνωστων, μη επαγγελματικών και πολύ περίπλοκων για ένα εύκολο πρόγραμμα. Είναι βασικά κωδικός γραμμένος από κάποιον που πιστεύει ότι είναι ο επόμενος Zuckerberg και καταλήγει να δημιουργεί κώδικα με έναν τόνο που δεν χρειάζεται περίπλοκα πράγματα. Για να αποφύγετε τον κωδικό σπαγγέτι μην προχωρήσετε και συνεχίστε να μαθαίνετε


Απάντηση 7:

Ο κώδικας Spaghetti είναι κώδικας που έχει μπερδεμένη ροή ελέγχου. Εάν σχεδιάσετε τη ροή ελέγχου ενός προγράμματος, η γραμμή θα μοιάζει με σπαγγέτι. (Συνήθως χρησιμοποιείται μόνο για την περιγραφή κώδικα σε μία λειτουργία με κακή ροή ελέγχου, όχι σε ολόκληρο το πρόγραμμα.)

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


Απάντηση 8:

Είναι απλώς ένας όρος για κακή γραφή. Συνήθως χαρακτηρίζεται από πράγματα όπως μια υπορουτίνα που καλεί μια υπορουτίνα που τελειώνει σε ????? Είναι σαν να προσπαθείτε να ακολουθήσετε ένα μόνο σκέλος μακαρονιών σε ένα μπολ με μακαρόνια. Είναι μια ένδειξη ενός προγραμματιστή που δεν είναι λογικός και δεν είναι οργανωμένος.