You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/el/7-bank-project/3-data/assignment.md

12 KiB

Ανάθεση Αναδιάρθρωσης Κώδικα και Τεκμηρίωσης

Στόχοι Μάθησης

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

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

Επισκόπηση Ανάθεσης

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

Οδηγίες

Μετασχηματίστε τον τρέχοντα κώδικα app.js εφαρμόζοντας αυτές τις τρεις βασικές τεχνικές αναδιάρθρωσης:

1. Εξαγωγή Σταθερών Ρυθμίσεων

Εργασία: Δημιουργήστε μια ενότητα ρυθμίσεων στην κορυφή του αρχείου σας με επαναχρησιμοποιήσιμες σταθερές.

Οδηγίες υλοποίησης:

  • Εξαγάγετε τη βασική διεύθυνση URL του API του διακομιστή (που αυτή τη στιγμή είναι σκληροκωδικοποιημένη σε πολλά σημεία)
  • Δημιουργήστε σταθερές για μηνύματα σφάλματος που εμφανίζονται σε πολλές λειτουργίες
  • Εξετάστε την εξαγωγή διαδρομών και αναγνωριστικών στοιχείων που χρησιμοποιούνται επανειλημμένα

Παράδειγμα δομής:

// Configuration constants
const API_BASE_URL = 'http://localhost:5000/api';
const ROUTES = {
  LOGIN: '/login',
  DASHBOARD: '/dashboard'
};

2. Δημιουργία Ενιαίας Συνάρτησης Αιτήματος

Εργασία: Δημιουργήστε μια επαναχρησιμοποιήσιμη συνάρτηση sendRequest() που εξαλείφει τον διπλό κώδικα μεταξύ των createAccount() και getAccount().

Απαιτήσεις:

  • Διαχειριστείτε αιτήματα GET και POST
  • Συμπεριλάβετε σωστή διαχείριση σφαλμάτων
  • Υποστηρίξτε διαφορετικά τελικά σημεία URL
  • Δεχτείτε προαιρετικά δεδομένα σώματος αιτήματος

Οδηγίες υπογραφής συνάρτησης:

async function sendRequest(endpoint, method = 'GET', data = null) {
  // Your implementation here
}

3. Προσθήκη Επαγγελματικής Τεκμηρίωσης Κώδικα

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

Πρότυπα τεκμηρίωσης:

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

Παράδειγμα στυλ τεκμηρίωσης:

/**
 * Authenticates user and redirects to dashboard
 * @param {Event} event - Form submission event
 * @returns {Promise<void>} - Resolves when login process completes
 */
async function login(event) {
  // Prevent default form submission to handle with JavaScript
  event.preventDefault();
  
  // Your implementation...
}

Κριτήρια Επιτυχίας

Ο αναδιαρθρωμένος κώδικας σας θα πρέπει να επιδεικνύει αυτές τις επαγγελματικές πρακτικές ανάπτυξης:

Υποδειγματική Υλοποίηση

  • Σταθερές: Όλες οι "μαγικές" συμβολοσειρές και διευθύνσεις URL έχουν εξαγάγει σε σαφώς ονομασμένες σταθερές
  • Αρχή DRY: Η κοινή λογική αιτήματος έχει ενοποιηθεί σε μια επαναχρησιμοποιήσιμη συνάρτηση sendRequest()
  • Τεκμηρίωση: Οι συναρτήσεις έχουν σαφή σχόλια JSDoc που εξηγούν τον σκοπό και τις παραμέτρους
  • Οργάνωση: Ο κώδικας είναι λογικά ομαδοποιημένος με επικεφαλίδες τμημάτων και συνεπή μορφοποίηση
  • Διαχείριση Σφαλμάτων: Βελτιωμένη διαχείριση σφαλμάτων χρησιμοποιώντας τη νέα συνάρτηση αιτήματος

Επαρκής Υλοποίηση

  • Σταθερές: Οι περισσότερες επαναλαμβανόμενες τιμές έχουν εξαγάγει, με μικρές σκληροκωδικοποιημένες τιμές να παραμένουν
  • Παραγοντοποίηση: Δημιουργήθηκε βασική συνάρτηση sendRequest(), αλλά μπορεί να μην χειρίζεται όλες τις περιπτώσεις
  • Σχόλια: Οι βασικές συναρτήσεις είναι τεκμηριωμένες, αν και ορισμένες εξηγήσεις θα μπορούσαν να είναι πιο πλήρεις
  • Αναγνωσιμότητα: Ο κώδικας είναι γενικά καλά οργανωμένος με ορισμένες περιοχές για βελτίωση

Χρειάζεται Βελτίωση

  • Σταθερές: Πολλές "μαγικές" συμβολοσειρές και διευθύνσεις URL παραμένουν σκληροκωδικοποιημένες σε όλο το αρχείο
  • Επανάληψη: Σημαντική επανάληψη κώδικα παραμένει μεταξύ παρόμοιων συναρτήσεων
  • Τεκμηρίωση: Λείπουν ή είναι ανεπαρκή σχόλια που δεν εξηγούν τον σκοπό του κώδικα
  • Οργάνωση: Ο κώδικας στερείται σαφούς δομής και λογικής ομαδοποίησης

Δοκιμή του Αναδιαρθρωμένου Κώδικα

Μετά την αναδιάρθρωση, βεβαιωθείτε ότι η τραπεζική σας εφαρμογή εξακολουθεί να λειτουργεί σωστά:

  1. Δοκιμάστε όλες τις ροές χρηστών: Εγγραφή, σύνδεση, εμφάνιση πίνακα ελέγχου και διαχείριση σφαλμάτων
  2. Επαληθεύστε τις κλήσεις API: Βεβαιωθείτε ότι η συνάρτηση sendRequest() λειτουργεί τόσο για τη δημιουργία όσο και για την ανάκτηση λογαριασμών
  3. Ελέγξτε σενάρια σφαλμάτων: Δοκιμάστε με μη έγκυρα διαπιστευτήρια και σφάλματα δικτύου
  4. Ελέγξτε την έξοδο της κονσόλας: Βεβαιωθείτε ότι δεν εισήχθησαν νέα σφάλματα κατά την αναδιάρθρωση

Οδηγίες Υποβολής

Υποβάλετε το αναδιαρθρωμένο αρχείο app.js με:

  • Σαφείς επικεφαλίδες τμημάτων που οργανώνουν διαφορετικές λειτουργίες
  • Συνεπή μορφοποίηση και εσοχές κώδικα
  • Πλήρη τεκμηρίωση JSDoc για όλες τις συναρτήσεις
  • Ένα σύντομο σχόλιο στην κορυφή που εξηγεί την προσέγγιση αναδιάρθρωσης σας

Πρόκληση Bonus: Δημιουργήστε ένα απλό αρχείο τεκμηρίωσης κώδικα (CODE_STRUCTURE.md) που εξηγεί την αρχιτεκτονική της εφαρμογής σας και πώς συνεργάζονται οι διάφορες συναρτήσεις.

Σύνδεση με την Πραγματικότητα

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

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

Αποποίηση ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης Co-op Translator. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.