Sobes.tech
Junior

Неге null менен байланышкан каталар 'миллиондук каталар' деп аталат?

sobes.tech AI

AIден жооп

null менен байланышкан каталар "миллиард долларлык каталар" деп аталат (миллион эмес), анткени алар он жылдар бою чоң каржылык жоготуштарга жана программалык камсыздоодо көйгөйлөргө себеп болгон. ALGOL тилинде null (баштапкы NIL) концепциясын түзгөн Тони Хоар кийинчерээк бул анын "миллиард долларлык катасы" экенин моюнга алган, анткени ал ошол учурда келечектеги коопсуздук көйгөйлөрүн алдын ала көрө алган эмес.

Маселелер төмөнкүлөрдөн келип чыгат:

  • Белгисиздик: null ар кандай контексттерде ар башка мааниге ээ болушу мүмкүн (баа жоктугу, катасы, иштетилбеген учур), бул кодду түшүнүүнү кыйындатат.
  • Коопсуздук маселелери: null мааниде операция жасоого аракет кылуу (мисалы, метод чакыруу же мүлккө кирүү) көбүнчө NullPointerException менен аяктайт, ал колдонмону үзгүлтүккө учуратуучу себеп болушу мүмкүн.
  • Текшерүүлөрдүн зарылдыгы: Өнүктүрүүчүлөр өзгөрмөлөрдү колдонмого киргизүүдөн мурун дайыма null текшерүүлөрүн кошушу керек, бул коддун көлөмүн жана татаалдыгын көбөйтөт.

Dart жана Flutterда, null safety киргизилгени менен, бул маселе кыйла азыраак мааниге ээ болду, анткени стандарттык түрлөр null болбойт (анык көрсөтүүчү String?, int? жана башка), бул компиляторго потенциалдуу каталарды ишке киргизбестен алдын аныктоого мүмкүндүк берет.

// Null safety киргизилгени мурда
String name = null; // Бул мүмкүн эле

// Null safety менен
// String name = null; // Компиляцияда каталар
String? nullableName = null; // уруксат берилген, бирок ачык көрсөтүлгөн