Sobes.tech
Middle+

Πώς αισθάνεστε σχετικά με πολύ μακρά κλάσεις που περιέχουν από 2.000 έως 4.000 γραμμές κώδικα;

sobes.tech AI

Απάντηση από AI

Αρνητικό.

Οι μακριές κλάσεις παραβιάζουν την αρχή της μοναδικής ευθύνης (SRP) και την αρχή της ελάχιστης γνώσης (Principle of Least Knowledge). Αυτό οδηγεί στα εξής προβλήματα:

  • Δύσκολη ανάγνωση και κατανόηση: Ο μεγάλος όγκος κώδικα καθιστά δύσκολη την αντίληψη της λογικής της κλάσης.
  • Δύσκολη συντήρηση και τροποποίηση: Η αλλαγή ενός μέρους της κλάσης μπορεί να επηρεάσει ακούσια άλλα, προκαλώντας σφάλματα.
  • Κίνδυνος διπλοτυπίας κώδικα: Η λειτουργικότητα μπορεί να επαναλαμβάνεται σε διαφορετικά μέρη της κλάσης.
  • Προβλήματα με τις δοκιμές: Οι μονάδες δοκιμών μιας μεγάλης κλάσης γίνονται περίπλοκες και χρονοβόρες.
  • Μείωση της επαναχρησιμοποίησης: Δύσκολο να εξαχθούν και να χρησιμοποιηθούν τμήματα λειτουργικότητας αλλού.

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

Για διαχωρισμό, μπορούν να χρησιμοποιηθούν οι ακόλουθες προσεγγίσεις:

  • Απομάκρυνση της σχετικής λογικής σε ξεχωριστές κλάσεις: Για παράδειγμα, διαχείριση δεδομένων, λογική UI, επιχειρηματική λογική.
  • Εφαρμογή σχεδιαστικών προτύπων: MVC, MVP, MVVM, Repository, Factory κ.ά.
  • Διαίρεση σε μικρότερες συναρτήσεις/μεθόδους: κάθε μέθοδος πρέπει να κάνει κάτι.
  • Χρήση επεκτάσεων (extensions) σε Kotlin: για προσθήκη λειτουργικότητας χωρίς τροποποίηση της αρχικής κλάσης.