Sobes.tech
Middle

Milyen értékelési szempontok vannak a procedurális stílusú kódhoz, és melyek jók, melyek rosszak?

sobes.tech MI

Válasz az MI-től

Jó kritériumok:

  • Olvashatóság: Mennyire könnyű megérteni, mit csinál a kód, ha végigolvassuk felülről lefelé.
  • Változók és függvények érthetősége: Leíró nevek használata, amelyek tükrözik azok célját és logikáját.
  • Felbontás: Komplex feladatok kisebb, kezelhetőbb függvényekre bontása. Minden függvénynek egy konkrét feladatot kell ellátnia.
  • Globális változók hiánya: A globális változók használatának minimalizálása a függőségek és mellékhatások csökkentése érdekében.
  • Hibakezelés: Világos hibakezelés és kivételkezelés.
  • Megjegyzések: Ott vannak, ahol a kód nem egyértelmű vagy a logika magyarázatára.
  • Stílus egységessége: Egységes formázási és névadási stílus az egész projektben.
  • Kódduplikáció minimalizálása: Azonos vagy nagyon hasonló kódrészek ismétlésének elkerülése.
# Jó példa a felbontásra és érthető nevek használatára
def calculate_average(numbers):
    """Számok listájának átlagát számolja ki."""
    if not numbers:
        return 0
    total = sum(numbers)
    return total / len(numbers)

def process_data(data):
    # Feltételezzük, hogy a 'data' egy listák listája számoknak
    averages = []
    for row in data:
        avg = calculate_average(row)
        averages.append(avg)
    return averages

Rossz kritériumok:

  • Nem egyértelmű: A kód nehezen érthető összezavarodott logika, nem megfelelő nevek vagy struktúra hiánya miatt.
  • "Spagetti kód": Sok átmenet és függőség, amelyek megnehezítik a végrehajtási sorrend követését.
  • "Laska"-kód: Hosszú, monolitikus függvények, amelyek több, összefüggéstelen feladatot látnak el.
  • "Varázsszámok" használata: Magyarázat nélküli numerikus konstansok a kódban.
  • Hibakezelés hiánya: A program "összeomlik" váratlan helyzetekben.
  • Kódduplikáció: Ugyanazok vagy nagyon hasonló kódrészek ismétlődnek különböző helyeken.
  • Stílus hiánya: Különböző formázás és névadás megnehezíti az olvasást.
# Rossz példa "laska"-ra és varázsszámokra
def process(d):
    t = 0
    for r in d:
        s = 0
        c = 0
        for n in r:
            s += n
            c += 1
        if c > 0:
            t += s / c
    return t / len(d) if len(d) > 0 else 0

Összehasonlítás:

Rossz
Olvashatóság Nem egyértelmű ("spagetti", "laska")
Érthető változók és függvények Olvashatatlan nevek
Felbontás Monolitikus függvények
Globális változók hiánya Túlzott globális változók használata
Hibakezelés világosan Hibakezelés hiánya
Megjegyzések ott, ahol szükséges Hiányzó megjegyzések
Stílus egységessége Nem egységes stílus
Kódduplikáció minimalizálása Kódduplikáció