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; // уруксат берилген, бирок ачык көрсөтүлгөн