Կանխադրվածները կարող են ձեզ խորտակել
TL;DR. Անհայտ պատասխանները վերաբերվեք որպես չարտոնված, ոչ վավերական:
Այսօր համակարգչային անվտանգության օրն է, և յուրաքանչյուր ծրագրավորող պետք է գիտակցի իր պատասխանատվությունը:
Պատկերացրեք մի հավելված, որը զբաղվում է վաճառքներով, որը հիմնված է վարկային քարտերի պրոցեսորների պատասխանների վրա՝ գործարքները կարգավորելու համար:
Յուրաքանչյուր կրեդիտ քարտի պրոցեսոր տրամադրում է նախապես սահմանված պատասխանի կոդեր տարբեր իրավիճակների համար, ինչպիսիք են անբավարար մնացորդը կամ ժամկետանց քարտերը:
Խնդիրը սկսվում է այն ժամանակ, երբ պրոցեսորն ավելացնում է պատասխանի նոր կոդ՝ մերժված գործարքների համար, բայց չի ծանուցում հարթակին:
Հավելվածը չի ճանաչում նոր կոդը, կանխադրված է համարում այն որպես «չգտնված» և թույլատրում է գնումը:
Օգտատերերը նկատում են այս թերությունը և օգտագործում այն չարտոնված գնումներ կատարելու համար:
Պլատֆորմի եկամուտները կտրուկ նվազում են, ինչը հանգեցնում է սնանկացման:
String response = paymentProcessor.authorize(cardDetails); switch (response) { case "DECLINED_INSUFFICIENT_FUNDS": // Handle insufficient funds break; case "DECLINED_EXPIRED_CARD": // Handle expired card break; default: // Authorize purchase break; }
String response = paymentProcessor.authorize(cardDetails); switch (response) { case "APPROVED": // Authorize purchase break; case "DECLINED_INSUFFICIENT_FUNDS": // Handle insufficient funds break; case "DECLINED_EXPIRED_CARD": // Handle expired card break; case "DECLINED_NEW_REASON": // Handle new declined reason break; default: // Reject purchase (default case for unknown responses) break; }
Դուք կարող եք հայտնաբերել այս հոտը՝ վերանայելով սխալների հետ աշխատելու տրամաբանությունը:
Ստուգեք, արդյոք համակարգը գրանցում և հերքում է չճանաչված դեպքերը:
Ավտոմատացված թեստերը կարող են օգնել պարզել, թե արդյոք նոր կամ անսպասելի մուտքերը լռելյայն են վավեր գործողությունների համար:
Ստատիկ վերլուծության գործիքները կարող են օգնել՝ նշելով սխալների հնարավոր թերի մշակումը:
Կարևոր է պահպանել վճարային պրոցեսորի պատասխանների ձեր դիմումի ներքին ներկայացման և պրոցեսորի կողմից վերադարձված փաստացի կոդերի միջև մեկ առ մեկ համապատասխանություն:
Երբ դուք խախտում եք բիեկցիան , դուք անհամապատասխանություն եք ստեղծում:
Հավելվածը սխալ է մեկնաբանում անհայտ կոդերը՝ հանգեցնելով անսպասելի վարքագծի, անվտանգության անցքերի և բիզնեսի հնարավոր աղետալի հետևանքների:
AI գործիքները կարող են ստեղծել այս հոտը, եթե չնշեք, թե ինչպես վարվել անհայտ դեպքերի հետ:
Օրինակ, ընդհանուր սխալների մշակումը կարող է կանխադրված լինել բարենպաստ արդյունքների համար, ինչպիսիք են «չի գտնվել» կամ «հաջողությունը»:
AI գեներատորները կարող են շտկել այս հոտը, երբ նրանց հանձնարարեք անհայտ դեպքերը վերաբերվել որպես չարտոնված և շեշտադրել գրանցումը և անսպասելի սցենարների փորձարկումը:
Հիշեք. AI օգնականները շատ սխալներ են թույլ տալիս
Առանց համապատասխան հրահանգների | Հատուկ հրահանգներով |
---|---|
Միշտ զգույշ վարեք անհայտ դեպքերը:
«Չգտնված»-ի նման կանխադրվածները կարող են հանգեցնել անվտանգության լուրջ խնդիրների և ֆինանսական կորուստների:
Անհայտ պատասխանների գրանցումն ու մերժումը դարձրեք ձեր զարգացման պրակտիկայի մաս:
Ծրագրավորման ընթացքում անվտանգության հետ կապված որոշումներ կայացրեք ձախ կողմում:
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-xxii
https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-viii-8mn3352
Code Smells-ը իմ կարծիքն է:
Լուսանկարը՝ Նաթանա Ռեբուսասի Unsplash- ում
https://www.youtube.com/watch?v=J2QOejhA6ek
Ենթադրությունները բոլոր անհաջողությունների մայրն են։
Ասաց Ուիսալը
Ծրագրային ապահովման ճարտարագիտության հիանալի մեջբերումներ
Այս հոդվածը CodeSmell Series-ի մի մասն է: