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:
nullmôž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 (NullPointerExceptionzvyčajne), čo môže spôsobiť zlyhanie aplikácie. - Potrebnosti kontrol: Vývojári musia neustále pridávať kontroly
nullpred 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é