Sobes.tech
Junior

Prečo sa chyby spojené s null nazývajú 'chyby za milión'?

sobes.tech AI

Odpoveď od AI

Chyby súvisiace s null sa nazývané "chyby za miliardu dolárov" (a nie milión), pretože spôsobili obrovské finančné straty a problémy v softvéri počas desaťročí. Tvorca konceptu null (pôvodne NIL) v jazyku ALGOL, Tony Hoare, neskôr priznal, že to bola jeho "chyba za miliardu dolárov", pretože v tom čase nedokázal predvídať budúce problémy s bezpečnosťou.

Problémy vznikajú kvôli:

  • Neurčitosti: null môže znamenať rôzne veci v rôznych kontextoch (neprítomnosť hodnoty, chyba, neopracovaný prípad), čo sťažuje pochopenie kódu.
  • Problémy s bezpečnosťou: Pokus o vykonanie operácie nad hodnotou null (napríklad volanie metódy alebo prístup k vlastnosti) vedie k výnimke (NullPointerException zvyčajne), čo môže spôsobiť zlyhanie aplikácie.
  • Potrebnosti kontrol: Vývojári musia neustále pridávať kontroly null pred použitím premenných, čo zvyšuje objem a zložitosť kódu.

V Flutteri a Dart, s zavedením null safety, sa tento problém stal oveľa menej relevantným, pretože predvolené typy nemôžu byť null bez explicitného označenia (String?, int? atď.), čo umožňuje kompilátoru odhaliť potenciálne chyby pred spustením.

// Pred zavedením null safety
String name = null; // Bolo možné

// S null safety
// String name = null; // Chyba pri kompilácii
String? nullableName = null; // Povolené, ale explicitne uvedené