Ինժեներական թիմերի մեծ մասը նույն կոդային բազայի վերաբերյալ երկու առանձին զրույց է վարում։ Մեկը վերաբերում է անվտանգությանը՝ կա՞ SQL ներարկման ռիսկ, կոշտ կոդավորված գաղտնիք, շահագործելի կախվածություն։ Մյուսը վերաբերում է պահպանողականությանը. այս ֆունկցիան չափազանց բարդ է՞, այս կոդը երեք անգամ կրկնօրինակվե՞լ է, կա՞ մեռած կոդ, որը ոչ ոք չի համարձակվում ջնջել։
Այս զրույցները սովորաբար տեղի են ունենում տարբեր գործիքներով, տարբեր թիմերի կողմից, տարբեր ժամանակացույցով: Անվտանգության սկաները նշում է, թե ինչն է շահագործելի: Առանձին որակյալ գործիքը, որը հաճախ գնվում և կառավարվում է անկախ, նշում է, թե ինչն է թանկ պահպանելու համար: Երկու լիցենզիա, երկու dashboards, երկու վերլուծողներ, որոնք քայլում են նույն աբստրակտ սինտաքսի ծառով՝ երկու տարբեր հարցերի պատասխանելու համար։
Այդ բաժանումն ունի իր գինը։ Հուսալիության թերությունները (այնպիսի թերություններ, որոնք առաջացնում են աշխատանքային ժամանակի խափանումներ, այլ ոչ թե խախտումներ) չեն ենթարկվում նույն տեսակավորման կարգապահությանը, ինչ անվտանգության արդյունքները, քանի որ դրանք գտնվում են անվտանգության թիմի սահմաններից դուրս։ dashboardԵվ երբ թիմն արդեն ունի ստատիկ վերլուծության շարժիչ, որը վերլուծում է բոլոր ֆայլերը անվտանգության նկատառումներից ելնելով, երկրորդ, անկապ շարժիչի տեղադրումը՝ պարզապես կոդի որակը ստուգելու համար, ավելորդ աշխատանք է՝ առանց որևէ ընդհանուր օգուտի։
Ինչու է կոդի որակը կարևոր (և ինչո՞վ է այն տարբերվում) Code Security)
Կոդի որակը և code security պատասխանեք երկու տարբեր հարցերի։ Code security հարցնում է՝ կարո՞ղ է այս կոդը շահագործվել։ Կոդի որակը հարցնում է՝ կարո՞ղ է այս կոդը պահպանվել։ Ֆունկցիան կարող է լինել կատարյալ անվտանգ և միևնույն ժամանակ լինել հինգ հարյուր տողանոց խճճվածք, որին ոչ ոք չի ցանկանա դիպչել, իսկ լավ կազմակերպված, հեշտ ընթեռնելի մոդուլը կարող է դեռևս առաքվել կրիտիկական ներարկման թերությամբ։ Ոչ մի առարկա չի փոխարինում մյուսին։
Կոդի որակը անտեսելու արժեքը չի երևում որպես խախտում։ Այն ավելի դանդաղ է երևում. նոր վարձված աշխատողը անվտանգ փոփոխություն կատարելու համար երկու օրվա փոխարեն երկու շաբաթ է պահանջում, սովորական գործառույթը երեք սպրինտ է տևում, քանի որ ոչ ոք չի կարող կանխատեսել, թե ինչ կխափանվի կրկնօրինակված բլոկը այլուր, հերթապահ ինժեները մեկ ժամ է ծախսում մեռած կոդի մեջ սխալ գտնելու վրա, որը պետք է հեռացվեր մեկ տարի առաջ։ Դրանցից ոչ մեկը անվտանգության ազդանշան չի տալիս։ Այս ամենը արագ երևում է, և երբ այն տեսանելի է դառնում սպրինտ ռետրո տարբերակում, այն արդեն թանկ է շտկելու համար։
Ահա թե ինչու է որակին նույն խստությամբ վերաբերվում, ինչ անվտանգությանը. ոչ թե որովհետև կոդի հոտը սպառնալիք է, այլ որովհետև պահպանման պարտքի անվերահսկելի կուտակումը կոդի բազան դարձնում է այն վայրը, որտեղ գործառույթները մահանում են։
Ավելի լավ ձև. Մեկ շարժիչ, երկու կանոնների կատալոգ
Xygeni-ի կոդի որակի սկաները վերլուծում է սկզբնական կոդը պահպանման և հուսալիության թերությունների համար՝ կոդի հոտեր, բարդության խախտումներ, մեռած կոդ և կրկնօրինակումներ՝ օրինաչափություններ, որոնք չեն առաջացնում խախտում, բայց առաջացնում են անջատումներ, հետընթացներ և դանդաղ աշխատող թիմեր։
Դիզայնի տարբերակիչ ընտրությունը ճարտարապետական է, այլ ոչ թե կոսմետիկ: Code Quality-ն իր ստատիկ վերլուծության շարժիչը կիսում է Քսիգենիի SAST scannerնույն վերլուծիչները, նույն AST կառուցվածքը, նույն ֆայլերի հայտնաբերումը։ Այն չի կիսում կանոնների կատալոգը։ Որակի կանոնները վերաբերում են որակին, այլ ոչ թե անվտանգությանը, և արդյունքները ներկայացվում են Xygeni հարթակի որակին նվիրված բաժնում, որը պահվում է առանձին։ SAST և անվտանգության ռիսկերի մնացած աղյուսակները։
Արդյունքը՝ թիմերը նույն հիմքում ընկած վերլուծության հոսքից ստանում են պահպանման և անվտանգության տեսակետ՝ առանց երկու տարբեր մտահոգությունները մեկ աղմկոտի մեջ միավորելու։ dashboard.
Ձեր համակարգչում որակյալ ազդանշան ստանալու երկու եղանակ Pipeline
Ոչ բոլոր «կոդի որակի» գործառույթներն են նույն կերպ աշխատում ներքին կառուցվածքում։ Շատերը CI/CD-բնիկ որակի գործիքները ագրեգացման շերտերն են. նրանք իրենք չեն վերլուծում ձեր կոդը; դրանք ներմուծում են արդյունքներ արդեն իսկ աշխատեցրած ցանկացած linter-ից (JavaScript linter, Python linter, կրկնօրինակման դետեկտոր), որոնցից յուրաքանչյուրը վերաձևավորվում է որպես համատեղ JSON սխեմա, և յուրաքանչյուրը միացված է որպես առանձին։ pipeline քայլ։ Դա ճկուն է, բայց նշանակում է, որ ձեր որակի ազդանշանը նույնքան կայուն է, որքան ձեր կողմից միացված առանձին գործիքների, ձևաչափերի և պահպանողների քանակը՝ մեկական յուրաքանչյուր լեզվի համար։
Xygeni-ի կոդի որակի սկաները ընտրում է մյուս ճանապարհը. մեկ բնօրինակ շարժիչ, որն արդեն աշխատում է անվտանգության համար, ընդլայնված է որակի կանոնների կատալոգով: Չկա յուրաքանչյուր լեզվի համար նախատեսված լինտեր տեղադրելու, չկա հաշվետվության ձևաչափ վերաձևաչափելու, չկա առանձին աշխատանք պահպանելու յուրաքանչյուր գործիքի համար: Դուք ստանում եք մեկ հրաման, մեկ հետևողական խստության մոդել և մեկ dashboard բաժինը, քանի որ վերլուծությունը ի սկզբանե երբեք չի բաժանվել գործիքների միջև։
Ինչպես է այն աշխատում?
Code Quality-ը գործում է որպես սեփական CLI հրաման։
քսիգենի որակ -d [ընտրանքներ] (xygeni կոդի որակը գործում է որպես կեղծանուն):
Այն կիսվում է իր օպցիոն մոդելով քսիգեն sast, այնպես որ Xygeni-ի անվտանգության սկաները արդեն գործարկող յուրաքանչյուր ոք անմիջապես կճանաչի ինտերֆեյսը։
| Տարբերակ | Ինչ է դա անում |
|---|---|
-d, --dir | Վերլուծության համար նախատեսված տեղեկատու |
--detectors | Գործարկեք որոշակի դետեկտորների ID-ներ կամ ծանրության աստիճանը և դրանից բարձր ամեն ինչ |
--fail-on | Տրված ծանրության դեպքում ոչ զրոյական ելք, CI/CD դարպասներ |
--baseline | Համեմատեք բազայինի հետ և վերադարձրեք միայն նոր արդյունքներ |
--upload | Արդյունքները ուղարկեք Xygeni հարթակին |
Կոդի որակի մասին զեկույցի ստեղծում
Սկանավորումը ստեղծում է կոդի որակի մասին զեկույց, որը կարող եք ուղարկել հարթակ, արտահանել որպես JSON CI արտեֆակտների համար կամ հանձնել թիմի ղեկավարին՝ առանց դրանք տրամադրելու։ dashboard մուտք։ Երկուսն էլ մեկ տողից բաղկացած հրամաններ են՝
# Սկանավորել և վերբեռնել անմիջապես Xygeni հարթակ
xygeni որակ -n Իմ նախագիծը –բեռնում
# Արտահանեք կոդի որակի մասին զեկույցը JSON ձևաչափով, միայն կարևորագույն արդյունքներով
քսիգենի որակ -d –դետեկտորներ կրիտիկական –ֆորմատ json –արտադրանքի որակ.json
Վերբեռնվելուց հետո նույն կոդի որակի մասին հաշվետվությունը լրացնում է «Որակ» բաժինը։ dashboardֆիլտրացվող, յուրաքանչյուր գտածոյի համար սահեցնող մանրամասներով, բազային գծերով և նույն հաշվետվողական վարքագծով, ինչ թիմերն արդեն օգտագործում են SAST.
Անվտանգության սկանավորման հետ մեկտեղ՝ որակը գործարկելու համար
Այն թիմերի համար, որոնք ցանկանում են երկու ազդանշաններն էլ մեկ անցումից, SAST սկաները ընդունում է –ներառյալ որակը դրոշ՝
քսիգեն sast -դ –ներառյալ որակը
Քանի որ SAST և կոդի որակը կիսում են վերլուծիչի փուլը, սա ավելի արդյունավետ է, քան երկու սկաներները անընդմեջ աշխատեցնելը։ Այն ստեղծում է երկու առանձին հաշվետվություն՝ անվտանգության և որակի, և յուրաքանչյուրը դեռևս առանձին է։ dashboard բաժին։ Դրոշը փոխում է սկանավորման կատարման եղանակը, այլ ոչ թե արդյունքների կազմակերպման եղանակը։
Սկանավորում առանց կապի
Օդային բացվածքներով միջավայրերի կամ Xygeni հարթակ մուտք չունեցող CI գործարկիչների համար որակյալ սկանավորումները կարող են իրականացվել տեղում և վերբեռնվել ավելի ուշ։
քսիգենի որակ -d -n Իմ նախագիծը
# …հետագայում, միացման հնարավորություն ունեցող հոսթինգից՝
xygeni հաշվետվության վերբեռնում -n Իմ նախագիծը -r depsdoctor-quality.json
Արդյունքները «Որակի» բաժնում հայտնվում են ճիշտ այնպես, ինչպես կհայտնվեին իրական սկանավորման դեպքում՝ նույն տեսակավորումը, նույն քաղաքականությունը, նույն բազային վարքագիծը։
Ինչու է կարևոր որակը անվտանգությունից առանձնացնելը
Հեշտ կլիներ կոդի հոտերը նույն լրջության ցանկում ներառել որպես շահագործելի խոցելիություն։ Xygeni-ն միտումնավոր չի անում դա։ Կրկնօրինակված ֆունկցիան և SQL ներարկումը նույն տեսակի ռիսկ չեն, և դրանց նույն կերպ վերաբերվելը թիմերին սովորեցնում է կամ չափազանց շատ արձագանքել պահպանման աղմուկին, կամ թերարձագանքել իրական անվտանգության արդյունքներին։ Կանոնների կատալոգների, հաշվետվությունների և... պահպանումը... dashboard Դիտումները առանձին, մինչդեռ շարժիչը կիսվում է ներքևում, նշանակում է, որ յուրաքանչյուր թիմ ստանում է իրեն համար կարևոր ազդանշանը՝ առանց երկրորդ ստատիկ վերլուծության գործիքի համար վճարելու։
Փորձեք այն՝ Կոդի որակը հասանելի է այսօր Xygeni CLI-ի միջոցով։ Թիմերն արդեն աշխատում են։ քսիգեն sast կարող է ավելացնել –ներառյալ որակը իրենց առկայությանը pipeline մեկ տողով՝ ոչ մի նոր գործիք ներդրման համար, ոչ մի երկրորդ dashboard ստուգել.
ՀՏՀ
Ի՞նչ է Xygeni կոդի որակը։
Xygeni Code Quality-ն ստատիկ վերլուծության սկաներ է, որը հայտնաբերում է պահպանման և հուսալիության թերությունները, ներառյալ կոդի հոտերը, բարդության խախտումները, մեռած կոդը և կրկնօրինակումը: Այն աշխատում է որպես ինքնուրույն հրաման (քսգենի որակը) և հաշվետվությունները ներկայացնում է Xygeni հարթակի որակի հատուկ բաժնում՝ անվտանգության արդյունքներից առանձին։
Կոդի որակը նույնն է, ինչ SAST?
Կոդի համարը։ Որակը և SAST կիսում են նույն հիմքում ընկած վերլուծական շարժիչը, բայց օգտագործում են անկախ կանոնների կատալոգներ և ստեղծում են անկախ հաշվետվություններ։ SAST Անվտանգության խոցելիությունները փնտրում է, իսկ կոդի որակը՝ պահպանման և հուսալիության թերությունները։
Կարո՞ղ եմ միաժամանակ կատարել որակյալ սկանավորում և անվտանգության սկանավորում։
Այո։ Վազում է քսիգեն sast -դ –ներառյալ որակը կատարում է երկու կանոնների հավաքածուները մեկ անցումով, ինչն ավելի արդյունավետ է, քան երկու սկաներների առանձին աշխատեցումը, քանի որ նրանք կիսում են վերլուծիչի փուլը։ Արդյունքները դեռևս ստեղծում են երկու առանձին հաշվետվություններ և հայտնվում են երկու առանձին dashboard բաժիններում
Ինձ առանձին լիցենզիա պե՞տք է Code Quality-ի համար։
Որակյալ արդյունքների վերբեռնման և դիտման համար անհրաժեշտ է «Կոդի որակի» իրավունքը, նույնը, ինչ սկանավորումն իրականացնելու համար։
Կարո՞ղ է Code Quality-ն աշխատել առանց ինտերնետի հասանելիության:
Այո։ Սկանավորումները կարող են իրականացվել տեղական մակարդակով առանց –բեռնել դրոշը, և արդյունքում ստացված հաշվետվությունը կարող է ավելի ուշ վերբեռնվել միացված հոսթից՝ օգտագործելով xygeni հաշվետվության վերբեռնում։






