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; // Ինքնաբաց, բայց բացահայտ նշված