Κυριακή 1 Σεπτεμβρίου 2019

Πόσες γραμμές κώδικα πρέπει να γράφει ένας "καλός προγραμματιστής" την ημέρα;

Πόσες γραμμές κώδικα γράφει ένας "καλός προγραμματιστής" την ημέρα;;

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

Πιθανότατα να βρεθήκατε σε αυτό το άρθρο μετά από σχετική αναζήτηση στο Google.


Ας πάρουμε τα πράγματα από την αρχή και ας μιλήσουμε σοβαρά.

Δυστυχώς αρκετά συχνά ακούω την φράση του τίτλου.

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

Τις γραμμές κώδικα τις έχουν ορισμένοι στο μυαλό τους  ως μέτρο σύγκρισης της απόδοσης(!) και τους προγραμματιστές πιθανότατα ως αγελάδες που κατεβάζουν συγκεκριμένο αριθμό κώδικα την ημέρα.

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

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

Οι πολλές γραμμές κώδικα έχουν τις ακόλουθες αρνητικές επιδράσεις.

  • Δυσκολεύουν την διαχείριση του project. Είτε αυτό είναι ένα απλό web site, είτε μια σύνθετη και μεγάλη εφαρμογή με web site, backoffice, mobile εφαρμογή, web interface. Εδώ ισχύει επίσης ο κανόνας keep it clean simple.
  • Οι πολλές γραμμές κώδικα δημιουργούν θέμα στο performance διότι αναγκάζουν τον επεξεργαστή και το υλικό γενικά να εκτελέσει τις  διαδικασίες αυτές όπως τις περιγράφει ο κάθε αλγόριθμος ( οι πολλές γραμμές κώδικα ). Δηλαδή είναι σαν να βάζουμε τον επεξεργαστή να κάνει άσκοπους κύκλους. Καψόνια στην CPU δηλαδή. Αυτό έχει σε ένα μεγάλο project και οικονομικές επιδράσεις με υψηλά κόστη σε Servers.
  • Οι πολλές γραμμές κώδικα επηρεάζουν την ταχύτητα όπως είπαμε αλλά και την κατανάλωση ενέργειας. Αυτό είναι ιδιαίτερα σημαντικό όταν μιλάμε για mobile εφαρμογή. Κανείς χρήστης δεν θέλει να έχει στο κινητό του εφαρμογές που έχουν υψηλή κατανάλωση μπαταρίας. Μπαίνει λοιπόν στην εξίσωση ακόμα και το περιβαλλοντολογικό κόστος το οποίο σε επίπεδο συσκευής είναι μικρό αλλά σε επίπεδο δισεκατομμυρίων συσκευών είναι ένα υπολογίσιμο μέγεθος.
  • Οι πολλές γραμμές κώδικα σε επίπεδο web site ρίχνουν το ranking του site μας στις μηχανές αναζήτησης και αυτό γιατί αυξάνεται η ταχύτητα φόρτωσης και προβολής των στοιχείων του web site. Η ταχύτητα φόρτωσης είναι ένας από τους κρίσιμους συντελεστές που ελέγχει η Google για να βαθμολογήσει και στην συνέχεια να κατατάξει μια ιστοσελίδα.
  • Οι πολλές γραμμές κώδικα είναι ενάντια στις αρχές της  βελτιστοποίησης και ενάντια στην παραγωγικότητα. Σε διάφορα test γλωσσών προγραμματισμού βλέπουμε η σύγκριση να γίνεται σε ίδιους υπολογιστές, σε ίδιο πρόγραμμα με αναφορά στις γραμμές κώδικα που χρειάστηκαν για να επιτύχουμε το ίδιο αποτέλεσμα σε δύο ξεχωριστές γλώσσες. Για παράδειγμα σε αυτό το άρθρο βλέπουμε την σύγκριση της GO με την C#. Στο άρθρο ο συγγραφέας χρησιμοποιεί τον όρο LOC (Lines Of Code) — smaller is better για να δείξει ότι οι λιγότερες γραμμές κώδικα είναι θετικό στοιχείο. Δείτε το άρθρο εδώ!


Για να κλείσουμε αυτό το θέμα. Φανταστείτε τις γραμμές κώδικα ενός project σαν έναν  κινητήρα αυτοκινήτου.

Η υψηλή κατανάλωση – γραμμές κώδικα του κινητήρα - project έχει μόνο αρνητικές συνέπειες στο περιβάλλον και την τσέπη μας.

Για το τέλος σας παραθέτω δύο διάσημα quotes για το θέμα.


Προσίλης Αργύρης 
https://www.argyrispro.eu
Προγραμματιστής - Software Developer

Δεν υπάρχουν σχόλια:

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