Junior
Niyə null ilə əlaqəli səhvlər 'bir milyonluq səhvlər' adlanır?
sobes.tech Süni İntellekt
AI-dan cavab
null ilə əlaqəli səhvlər "bir milyard dollar xətalar" adlanır (bir milyon deyil), çünki onlar onilliklər ərzində böyük maliyyə itkilərinə və proqram təminatında problemlərə səbəb olmuşdur. ALGOL dilində null (əvvəlcə NIL) konseptini yaradan Tony Hoare, daha sonra bu barədə "bir milyard dollar xətası" olduğunu etiraf etmişdir, çünki o, gələcək təhlükəsizlik problemlərini əvvəlcədən görə bilməmişdir.
Problemlər aşağıdakılardan yaranır:
- Qeyri-müəyyənlik:
nullmüxtəlif kontekstlərdə müxtəlif mənalar daşıya bilər (qiymət yoxluğu, səhv, işlənməmiş hal), bu da kodun anlaşılmasını çətinləşdirir. - Təhlükəsizlik problemləri:
nulldəyəri üzərində əməliyyat etmək cəhdləri (məsələn, metod çağırmaq və ya xüsusiyyətə daxil olmaq) adətənNullPointerExceptionilə nəticələnir və bu, tətbiqin uğursuzluğuna səbəb ola bilər. - Yoxlamaların zəruriliyi: İnkişaf etdiricilər dəyişənlərdən istifadə etməzdən əvvəl davamlı olaraq
nullyoxlamaları əlavə etməlidirlər, bu da kodun həcmini və mürəkkəbliyini artırır.
Flutter və Dart-da, null safety tətbiq olunduqdan sonra, bu problem çox az aktuallaşdı, çünki standart tiplər (String?, int? və s.) açıq göstəriş olmadan null ola bilməz, bu da tərtibçinin potensial səhvləri icra etməzdən əvvəl aşkar etməsinə imkan verir.
// Null safety tətbiq olunmazdan əvvəl
String name = null; // Bu mümkün idi
// Null safety ilə
// String name = null; // Tərtib zamanı səhv
String? nullableName = null; // İcazə verilir, amma açıq şəkildə göstərilib