Sobes.tech
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: null mü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: null də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ən NullPointerException ilə 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 null yoxlamaları ə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