Τρεις (3) κανόνες του ευανάγνωστου κώδικα

1. Αποφυγή βαθιά εμφωλευμένου κώδικα:

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

Παράδειγμα: 


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

Μια καλύτερη προσέγγιση του παραπάνω κώδικα θα ήταν:


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

2. Εξαγωγή ελέγχου μεταβλητών σε συνάρτηση


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


Στο παραπάνω block κώδικα φτιάξαμε την συνάρτηση hasUsers. Έτσι ο αναγνώστης του κώδικα θα διαβάσει το κατά πολύ περισσότερο ευανάγνωστο "αν τα data έχουν users" από το "data.users.length" κλπ.

3. Αποφυγή αντιγραφής κώδικα

Είναι σημαντικό στον προγραμματισμό να μην γράφουμε τον ίδιο κώδικα ξανά και ξανά. Αυτό μπορεί να βοηθήσει σε μετέπειτα αλλαγές στο κώδικα μας. Τι θα κάναμε αν στο παραπάνω παράδειγμα θα έπρεπε να αλλάξουμε το κείμενο από "User is active and" σε "Client is available and". Στο παράδειγμα μας μπορεί αυτό να βρίσκεται μόνο σε 2 γραμμές αλλά σε μια πραγματική εφαρμογή θα μπορούσε αυτό το απλό console.log να ήταν σε 10 ή 20 διαφορετικά σημεία. Θα έπρεπε λοιπόν να εντοπίσουμε και να τροποποιήσουμε αυτό το κώδικα 10 ή 20 διαφορετικές φορές. Αντί αυτού όμως θα μπορούσαμε να έχουμε μια συνάρτηση και αυτό να αλλάξει σε ένα μόνο σημείο.

Με αυτό σαν σκέψη ο τελικός κώδικας και με τις 3 αλλαγές μας θα γίνει:


Και οι τρεις κανόνες είναι σημαντική για να γράφουμε ευανάγνωστο κώδικα αλλά και να μπορούμε εμείς οι ίδιοι να κάνουμε με μεγαλύτερη ευκολία αλλαγές. Τον ίδιο κώδικα που γράψαμε εμείς τώρα θα μπορούσαμε να τον είχαμε ξεχάσει μετά από 3 χρόνια που ίσως θα χρειαστούν τροποποιήσεις. Αν δεν τον γράψουμε λοιπόν με τέτοιο τρόπο ώστε να είναι εύκολο να περιηγηθούμε στο κώδικα μας θα καθυστερήσουμε περισσότερο στην ανάπτυξη του νέου feature ή στην επίλυση ενδεχόμενου bug.