Kako analizirati kod

15.06.2025.

Analiza koda je proces u kojem pokušavamo da razumemo šta kod radi, kako to radi i da li može bolje. Ovo je veština koja je korisna za svakog programera – bilo da učite iz tuđeg koda, radite na timskom projektu ili pokušavate da otkrijete grešku u sopstvenom programu.

U ovom tekstu ćemo pogledati jedan jednostavan primer u Pythonu, a zatim ćemo ga detaljno analizirati korak po korak. Cilj je da razvijemo naviku "čitanja" koda sa razumevanjem.


Primer koda

def find_max(numbers):
  max_value = numbers[0]
  for num in numbers:
      if num > max_value:
          max_value = num
  return max_value

lista = [3, 7, 2, 9, 4]
rezultat = find_max(lista)
print("Najveći broj je:", rezultat)

Korak 1: Šta funkcija radi?

Funkcija find_max prima jedan argument: listu brojeva. Zatim prolazi kroz tu listu i vraća najveći broj. Na kraju se rezultat prikazuje u terminalu.


Korak 2: Linija po linija

  • def find_max(numbers): – Definiše funkciju koja prima jedan parametar: listu numbers.
  • max_value = numbers[0] – Pretpostavlja da je prvi broj u listi najveći (početna vrednost).
  • for num in numbers: – Petlja koja prolazi kroz sve brojeve u listi.
  • if num > max_value: – Ako je trenutni broj veći od dosadašnjeg maksimuma, ažurira se maksimum.
  • return max_value – Nakon petlje, vraća se najveći pronađeni broj.
  • lista = [3, 7, 2, 9, 4] – Test primer liste.
  • rezultat = find_max(lista) – Poziv funkcije i čuvanje rezultata.
  • print(...) – Ispis rezultata.

Korak 3: Potencijalni problemi i poboljšanja

  • Prazna lista? – Ako neko pozove find_max([]), program će se srušiti jer numbers[0] ne postoji. Možemo dodati proveru:
    if not numbers:
      return None
  • Ugrađene funkcije? – Python već ima ugrađenu funkciju max(), pa ovu funkciju zapravo ne moramo da pišemo ako želimo samo rezultat. Ali, kao vežba za učenje, ovo je odličan primer.

Zaključak

Analiza koda nam pomaže da razumemo postojeće rešenje, pronađemo moguće greške, kao i načine za optimizaciju. Čak i jednostavan kod može da se "rasklopi" na više delova koji nam pomažu da bolje razumemo tok izvršavanja.

Ako ste početnik, naviknite se da čitate kod pažljivo, da postavljate sebi pitanja ("šta se ovde dešava?", "šta ako je lista prazna?", "da li postoji elegantnije rešenje?") i da eksperimentišete sa izmenama.

U sledećim tekstovima analiziraćemo i složenije primere, uključujući petlje u petljama, rad sa rečnicima i obradom ulaza korisnika.

Zanimljivosti

🎙️ Prvi glasovni asistent na telefonu bio je IBM Simon iz 1994. — ali je imao veoma ograničene mogućnosti.

Teme