Junior
Ką, tavo manymu, reiškia rašyti kokybišką kodą?
sobes.tech AI
Atsakymas iš AI
Švarumas, skaitomumas, palaikymas, mastelio keitimas ir atitiktis reikalavimams.
Pagrindiniai aspektai:
-
Švarumas ir skaitomumas:
- Naudoti aiškius, aprašomuosius kintamųjų, funkcijų, klasių pavadinimus.
- Laikytis vienodo kodo rašymo stiliaus (kodo stiliaus vadovas).
- Tinkamas formatavimas (įtraukos, tarpai).
- Kodo dubliavimosi šalinimas (DRY - Don't Repeat Yourself).
- Aiškūs komentarai neaiškiems kodo segmentams.
-
Palaikymas:
- Lengva atlikti pakeitimus ir pataisyti klaidas.
- Modulinė struktūra: funkcionalumo padalijimas į mažus, nepriklausomus blokus.
- Mažas sujungimas (low coupling) ir didelis kohesija (high cohesion).
- Automatiniai testai (vienetinis, integracinis, galutinis).
-
Mastelio keitimas:
- Sistemos gebėjimas apdoroti didėjantį duomenų kiekį ar apkrovą be reikšmingo našumo sumažėjimo.
- Efektyvus išteklių naudojimas.
-
Atitiktis reikalavimams:
- Kodas teisingai įgyvendina verslo logiką ir funkcinius reikalavimus.
- Nėra kritinių klaidų ir pažeidžiamumų.
Pavyzdys kokybiško testo Python'e:
# 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():
# Sėkmingo naudotojo kūrimo testas
username = "test_user"
email = "test@example.com"
# Veiksmas: naudotojo sukūrimas
new_user = create_user(username, email)
# Patvirtinimas 1: Patikrinti, ar sukurtas naudotojo objektas
assert isinstance(new_user, User)
# Patvirtinimas 2: Patikrinti, ar naudotojo vardas teisingas
assert new_user.username == username
# Patvirtinimas 3: Patikrinti, ar el. paštas teisingas
assert new_user.email == email
def test_user_creation_duplicate_username():
# Dublikuojančio vardo testas
username = "existing_user"
email = "another@example.com"
# Išankstinis veiksmas: sukurti esamą naudotoją
create_user(username, "existing@example.com")
# Veiksmas ir patvirtinimas: bandymas sukurti naudotoją su dublikuojamu vardu ir tikėtina išimtis
with pytest.raises(ValueError, match="Username already exists"):
create_user(username, email)
# ... kiti testai ...