Καλύτερες πρακτικές κωδικοποίησης, συμβουλές και πολλά άλλα για το Android

Φωτογραφία από τον Joshua Earle για το Unsplash

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

Συμβουλές κωδικοποίησης και όχι κόλπα

Ένθετο εάν είναι

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

αν (όχημα! = null) {
       αν (vehicle.getCar ()! = null) {
           αν (vehicle.getCar (). getModel ()! = null) {
               int τιμή = vehicle.getCar (). getModel (). getPrice ();
           }}

       }}
   }}

Και το πράγμα είναι, Μπορεί να αποφευχθεί, μπορείτε τελείως, όπως αυτό. Όπως βλέπετε παρακάτω, το ένα είναι πιο ευανάγνωστο και κατανοητό.

αν (όχημα == null || vehicle.getCar () == null || vehicle.getCar () getModel () == null) επιστροφή;

int τιμή = vehicle.getCar (). getModel (). getPrice ();

Δηλώστε τις προεπιλογές

Αποφασίστε και δηλώστε την προεπιλογή τώρα στις σταθερές, εάν είναι απαραίτητο, για διαφορετικά πρωτόνια ή αντικείμενα που χρησιμοποιείτε συνήθως. Γιατί; Εδώ είναι π.χ. έχετε μια τιμή (String) μεταβλητή, για την οποία επιστρέφετε null, κενή συμβολοσειρά και "N / A" σε διαφορετικά μέρη. Μην το κάνετε αυτό. Είναι έγκλημα κατά της ανθρωπότητας. Απλά επιλέξτε το αγαπημένο σας επειδή η συνέπεια είναι λιγότερο επιρρεπής στο σφάλμα.

Σύζευξη συμβολοσειράς σε βρόχο

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

Όχι
για (Όνομα συμβολοσειράς: ονόματα) {
    όνομα + = όνομα;
}}
Ναι
StringBuilder nameBuilder = νέο StringBuilder ();
για (Όνομα συμβολοσειράς: ονόματα) {
    όνομαBuilder.append (όνομα);
}}

Ονομασία

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

Για π.χ. η μεταβλητή δείκτη εντός του βρόχου μπορεί να είναι «i» αλλά ως μεταβλητή κλάσης θα πρέπει να είναι 'index'

Προαιρετικός

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

ΕΠΙΣΤΡΟΦΗ

Επιστρέψτε κενές συλλογές και καταλόγους όπου δεν μπορείτε να επιστρέψετε null, αλλιώς το δισεκατομμύριο θα γίνει τρισεκατομμύριο ή θα το βάλει, αν είστε πριμοδότης .

Γνωστική πολυπλοκότητα

Ορισμός: Είναι ένα ψυχολογικό χαρακτηριστικό ή μια ψυχολογική μεταβλητή που υποδεικνύει πόσο πολύπλοκο ή απλό είναι το πλαίσιο και η αντιληπτική ικανότητα ενός ατόμου.

Κατά τον προγραμματισμό μιας μεθόδου με ένθετα εάν το μέγεθος του άλλου και του μεγαλύτερου μεγέθους προκαλεί υψηλή γνωστική πολυπλοκότητα σημαίνει μικρότερη κατανόηση. Έτσι καλύτερα να χωρίσετε τις μεγάλες μεθόδους σε λογικά διαχωρισμένες μικρότερες και να χρησιμοποιήσετε το κόλπο του Nested If για να το μειώσετε. Επίσης SonarLint ένα στατικό εργαλείο ανάλυσης κώδικα υπολογίζει αυτό για σας σε πραγματικό χρόνο στο στούντιο μπορείτε να χρησιμοποιήσετε το σόναρ για να δείτε πώς το κάνετε;

Λάμδα

Είναι απαραίτητο να διατηρήσετε τον κωδικό σας ακριβή και να περιστρέψετε {} ελεύθερο, καθώς δεν είναι κάθε καμπύλη καλή. Ευτυχώς με το Android gralo> 3.0.0 έχουν χτίσει, είναι υποστήριξη στο στούντιο έλεγχο εδώ.

Εκσυγχρονίζω

Πάντα να ενημερώνετε τα εργαλεία, τις δεξιότητές σας και τη γλώσσα σας, εννοώ το πνεύμα της γλώσσας του παιδιού σας (Go kotlin / flutter / react / hybrid / native ... Οι 13 λόγοι για τους οποίους!) Αλλιώς αυτό θα συμβεί.

Το Google είναι τρελό και μπορεί να μπλοκάρει ***.

Περιοχή

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

// περιοχή σημαίνοντα όνομα της λογικά χωρισμένης περιοχής σας
κάνετε την εργασία σας εδώ.
// endregion

Αρχή

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

Δημόσια στατική άκυρη εκκίνηση (Πλαίσιο περιβάλλοντος, δέσμη δέσμης) {
    Πρόθεμα εκκίνησης = νέα πρόθεση (πλαίσιο, NextActivity.class);
    starter.putExtra (AppConstants.BUNDLE, δέσμη);
    context.startΑνεργότητα (εκκινητής);
}}

Μέγιστες παράμετροι στη μέθοδο

Δεν υπάρχει κανένα όριο για την παράμετρο που δεν επιτρέπεται στις λειτουργίες, αλλά αυτό δεν σημαίνει ότι πρέπει να το κάνετε, ακριβώς όπως το να έχετε ένα GF δεν σημαίνει ότι δεν μπορείτε να έχετε άλλο αλλά ηθικούς ανθρώπους ηθικούς. Στην ιδανική περίπτωση δεν θα πρέπει να υπάρχουν περισσότερες από 3-4 παράμετροι και εάν χρειάζεστε περισσότερα από αυτά, χρησιμοποιήστε το πρότυπο Object Parameter.

Μορφοποίηση

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

μην τεντώσετε το όριο σας.ουαου μου αρεσει!

Μια συμβουλή

John Woods. Κωδικός αναγνώρισης

Μερικά καλά άρθρα Για τους ανθρώπους μου στο Android

Ο σωστός τρόπος για την εφαρμογή της οθόνης Splash

Από τα μεγάλα κορίτσια

Πώς να γίνετε πιο παραγωγικός στο Android με plug-ins στούντιο Android

Πώς να φτιάξετε το τέλειο Singleton;

Mindorks

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

Εργαλεία και πρόσθετα

Δεν χρειάζεται να γνωρίζετε τα πάντα, έχετε τη δυνατότητα να κάνετε λάθη όσο κάποιος σας έχει θέα και σας λέει ότι δεν έχω! Δοκιμάστε αυτά τα παρακάτω εργαλεία.

SonarLint

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

FindBug

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

Για μια λίστα με όλα τα καλύτερα και πιο χρησιμοποιούμενα πρόσθετα ελέγξτε παρακάτω

Οι αρχές κωδικοποίησης

ΣΤΕΡΕΟΣ

Είναι ένα μνημονικό ακρωνύμιο που καθορίζει τις πέντε βασικές αρχιτεκτονικές αρχές:

  • Αρχή της ενιαίας ευθύνης
  • Αρχή ανοικτού κλειστού
  • Αρχή αντικατάστασης Liskov
  • Αρχή διαχωρισμού διασύνδεσης
  • Αρχή αναστροφής εξαρτήσεων

Για πλήρη έλεγχο αναφοράς.

Ο Κανόνας Προσκόπων

Ορισμός: Αφήστε το καθαρότερο χώρο κατασκήνωσης από αυτό που το βρήκατε

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

Μην επαναλαμβάνετε τον εαυτό σας (DRY)

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

Η αρχή των κριτικών

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

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

Συνεχίζεται…

Ευχαριστώ που διαβάσατε αυτό το άρθρο. Βεβαιωθείτε ότι κάνατε κλικ στο για να προτείνετε αυτό το άρθρο αν το θεωρήσατε χρήσιμο. Σημαίνει πολλά για 'μένα.

Ελέγξτε όλα τα κορυφαία άρθρα στο blog.mindorks.com

Ας συνδεθούμε επίσης στο facebook, twitter, github και linkedin.

Τραβήξτε, μοιραστείτε αν σας αρέσει και ακολουθήστε μου για την επόμενη κίνηση.