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:
nullmož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
nullvrednošću (npr. pozivanje metode ili pristup svojstvu) dovodi do izuzetka (NullPointerExceptionobično), što može izazvati pad aplikacije. - Potrebnosti provera: Programeri moraju stalno dodavati provere za
nullpre 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