Sobes.tech
Junior

Ինչու՞ null-ով կապված սխալները կոչվում են 'միլիոնական սխալներ'։

sobes.tech AI

Պատասխան AI-ից

null հետ կապված սխալները կոչվում են «միլիարդ դոլար սխալներ» (ոչ միլիոն), քանի որ դրանք պատճառ են դարձել հսկայական ֆինանսական կորուստների և ծրագրային ապահովման խնդիրների տասնամյակների ընթացքում: ALGOL լեզվում null (նախնականում NIL) կոնցեպտի ստեղծող Թոնի Հոարն ավելի ուշ ընդունեց, որ դա եղել է նրա «միլիարդ դոլար սխալը», քանի որ նա այդ ժամանակ չի կարողացել կանխատեսել ապագա անվտանգության խնդիրները:

Սխալները առաջանում են հետևյալ պատճառներով՝

  • Անորոշություն: null կարող է տարբեր իմաստներ ունենալ տարբեր կոնտեքստերում (արժեքի բացակայություն, սխալ, չմշակված դեպք), ինչը դժվարացնում է կոդի հասկանալը:
  • Անվտանգության խնդիրներ: Փորձել null արժեքի վրա կատարել գործողություն (օրինակ, մեթոդի կանչ կամ հատկության մուտք գործել) սովորաբար հանգեցնում է արտահայտության (NullPointerException), ինչը կարող է հանգեցնել ծրագրի ձախողման:
  • Ստուգումների անհրաժեշտություն: Ծրագրավորողները պետք է մշտապես ավելացնեն null ստուգումներ փոփոխականների օգտագործումից առաջ, ինչը մեծացնում է կոդի ծավալը և բարդությունը:

Dart և Flutter-ում, null safety ներդնելուց հետո, այս խնդիրն ավելի քիչ է արդիական դարձել, քանի որ ստանդարտ տիպերը առանց բացահայտ նշման (String?, int? և այլն) չեն կարող լինել null, ինչը թույլ է տալիս կոմպիլյատորին հայտնաբերել հնարավոր սխալները նախքան գործարկումը:

// Null safety ներդնելուց առաջ
String name = null; // Դա հնարավոր էր

// Null safety-ով
// String name = null; // Սխալ կոմպիլյացիայի ժամանակ
String? nullableName = null; // Ինքնաբաց, բայց բացահայտ նշված