Sobes.tech
Junior

Zašto se greške povezane sa null nazivaju 'greškama od milion'?

sobes.tech АИ

Одговор од АИ

Greške povezane sa null nazivaju se "greškama od milijardu dolara" (a ne milion), jer su izazvale ogromne finansijske gubitke i probleme u softveru tokom decenija. Kreator koncepta null (prvobitno NIL) u jeziku ALGOL, Tony Hoare, kasnije je priznao da je to bila njegova "greška od milijardu dolara", jer u tom trenutku nije mogao predvideti buduće probleme sa bezbednošću.

Problemi nastaju zbog:

  • Neodređenosti: null može značiti različite stvari u različitim kontekstima (odsustvo vrednosti, greška, neobrađeni slučaj), što otežava razumevanje koda.
  • Problema sa bezbednošću: Pokušaj izvršavanja operacije nad null vrednošću (npr. pozivanje metode ili pristup svojstvu) dovodi do izuzetka (NullPointerException obično), što može izazvati pad aplikacije.
  • Potrebnosti provera: Programeri moraju stalno dodavati provere za null pre korišćenja promenljivih, što povećava obim i složenost koda.

Sa Flutter-om i Dart-om, uvođenjem null safety, ovaj problem je postao znatno manje relevantan, jer podrazumevani tipovi ne mogu biti null bez eksplicitne oznake (String?, int?, itd.), što omogućava kompilatoru da otkrije potencijalne greške pre izvršenja.

// Pre uvođenja null safety
String name = null; // Bilo je moguće

// Sa null safety
// String name = null; // Greška pri kompilaciji
String? nullableName = null; // Dozvoljeno, ali eksplicitno