Sobes.tech
Junior

Τι σημαίνει, κατά τη γνώμη σου, να γράφεις ποιοτικό κώδικα;

sobes.tech AI

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

Καθαριότητα, αναγνωσιμότητα, διαχειρισιμότητα, κλιμάκωση και συμμόρφωση με τις απαιτήσεις.

Βασικές πτυχές:

  • Καθαριότητα και αναγνωσιμότητα:

    • Χρήση κατανοητών, περιγραφικών ονομάτων για μεταβλητές, συναρτήσεις και κλάσεις.
    • Συμμόρφωση με έναν ενιαίο οδηγό στυλ κωδικοποίησης.
    • Κατάλληλη μορφοποίηση κώδικα (εσοχές, κενά).
    • Αφαίρεση διπλότυπου κώδικα (DRY - Don't Repeat Yourself).
    • Σαφείς σχολιασμοί σε μη προφανή μέρη του κώδικα.
  • Διαχειρισιμότητα:

    • Ευκολία στην πραγματοποίηση αλλαγών και διόρθωσης σφαλμάτων.
    • Μοντελοποίηση: διαχωρισμός λειτουργικότητας σε μικρά, ανεξάρτητα μπλοκ.
    • Χαμηλός συσχετισμός και υψηλή συνοχή.
    • Αυτόματες δοκιμές (μονάδες, ολοκλήρωση, end-to-end).
  • Κλιμάκωση:

    • Ικανότητα του συστήματος να διαχειρίζεται αυξανόμενο όγκο δεδομένων ή φόρτο χωρίς ουσιώδη επιδείνωση της απόδοσης.
    • Αποτελεσματική χρήση πόρων.
  • Συμμόρφωση με τις απαιτήσεις:

    • Ο κώδικας υλοποιεί σωστά τη επιχειρηματική λογική και τις λειτουργικές απαιτήσεις.
    • Απουσία κρίσιμων σφαλμάτων και ευπάθειας.

Παράδειγμα δομής ποιοτικής δοκιμής σε Python:

# filename: test_user_creation.py

import pytest
from my_application.models import User
from my_application.services import create_user

def test_user_creation_successful():
    # Περίπτωση δοκιμής για επιτυχημένη δημιουργία χρήστη
    username = "test_user"
    email = "test@example.com"

    # Ενέργεια: Δημιουργία χρήστη
    new_user = create_user(username, email)

    # Επιβεβαίωση 1: Έλεγχος αν δημιουργήθηκε το αντικείμενο χρήστη
    assert isinstance(new_user, User)

    # Επιβεβαίωση 2: Έλεγχος αν το όνομα χρήστη είναι σωστό
    assert new_user.username == username

    # Επιβεβαίωση 3: Έλεγχος αν το email είναι σωστό
    assert new_user.email == email

def test_user_creation_duplicate_username():
    # Περίπτωση δοκιμής για αποτυχία με διπλό όνομα χρήστη
    username = "existing_user"
    email = "another@example.com"

    # Προϋπόθεση: Δημιουργία υπάρχοντος χρήστη
    create_user(username, "existing@example.com")

    # Ενέργεια & Επιβεβαίωση: Προσπάθεια δημιουργίας χρήστη με διπλό όνομα και αναμονή εξαίρεσης
    with pytest.raises(ValueError, match="Username already exists"):
        create_user(username, email)

# ... άλλα τεστ ...