JavaScript կոդի ձևաչափման և սեղմման դերը մշակման մեջ
JavaScript կոդի կառուցվածքի փոփոխությունը կարևոր դեր է խաղում վեբ ծրագրավորման տարբեր փուլերում։ Կոդի գեղեցկացումը (beautification) և մինիմալացումը (minification) լուծում են երկու տարբեր խնդիրներ, որոնք ուղղակիորեն ազդում են կոդի ընթեռնելիության և վեբ կայքերի բեռնման արագության վրա։
Գեղեցկացման գործընթացը վերադասավորում է կոդի կառուցվածքը՝ ավելացնելով համապատասխան նահանջներ և բացատներ։ Սա անհրաժեշտ է, երբ ծրագրավորողը ստիպված է աշխատել երրորդ կողմի անհասկանալի սկրիպտների հետ, վերլուծել քողարկված կոդը կամ վրիպազերծել այլ աղբյուրներից վերցված հատվածներ։ Գեղեցկացումը թույլ է տալիս հստակ տեսնել ֆունկցիաների սահմանները, պայմանական անցումները և ցիկլերը։
Մինիմալացումը կատարում է հակառակ գործողությունը՝ նախապատրաստելով կոդը թողարկման (production) համար։ Այս գործընթացի նպատակն է հնարավորինս փոքրացնել ֆայլի չափը, որպեսզի այն ավելի արագ ներբեռնվի օգտատիրոջ բրաուզերում։ Մինիմալացումը հեռացնում է բոլոր ավելորդ նիշերը, որոնք անհրաժեշտ են միայն մարդու կողմից կոդը կարդալու համար, սակայն որևէ դեր չեն խաղում դրա գործարկման ժամանակ։
Ինչպես է whitespace-ը և մեկնաբանությունների հեռացումն ազդում ֆայլի չափի վրա
JavaScript ֆայլի ծավալի զգալի մասը հաճախ բաժին է ընկնում բացատներին (whitespace), տողադարձերին և մեկնաբանություններին։ Թեև դրանք օգնում են ծրագրավորողին հասկանալ կոդի տրամաբանությունը, բրաուզերի JavaScript շարժիչի համար դրանք բացարձակապես անօգուտ են։
Մինիմալացման ժամանակ կատարվում են հետևյալ գործողությունները.
- Հեռացվում են բոլոր տեսակի մեկնաբանությունները, որոնք թողնվել են կոդավորման ընթացքում։
- Ջնջվում են ավելորդ բացատները, տաբուլյացիաները և տողադարձի նիշերը։
- Հեռացվում է չօգտագործվող կամ անհասանելի կոդը (dead code)։
Այս փոփոխությունների արդյունքում ստացվում է մեկ հոծ տողով գրված կոդ, որի ծավալը բայթերով զգալիորեն փոքր է սկզբնական տարբերակից։ Միակ բացառությունը, որը պահպանվում է մինիմալացման ընթացքում, /*! … */ ձևաչափով գրված արտոնագրային բաներներն են։ Այս հատուկ մեկնաբանությունները չեն հեռացվում՝ իրավական պահանջները պահպանելու նպատակով։
Փոփոխականների անունների կրճատման ազդեցությունը
Մինիմալացման արդյունավետությունը բարձրացնելու համար կարևոր գործոն է տեղային փոփոխականների անվանումների փոփոխությունը։ Գործիքն առաջարկում է երկու տարբեր մոտեցում տեղային փոփոխականների հետ աշխատելիս.
- Կրճատել: Այս ռեժիմն ընտրելիս բոլոր տեղային փոփոխականները վերանվանվում են մեկ տառով։ Սա թույլ է տալիս առավելագույնս կրճատել ֆայլի չափը, քանի որ երկար անվանումները փոխարինվում են նվազագույն նիշերով։
- Պահպանել: Այս տարբերակը թողնում է փոփոխականների սկզբնական անուններն անփոփոխ։ Արդյունքում ստացված ֆայլը չափերով մի փոքր ավելի մեծ է լինում, սակայն այն մնում է ավելի հեշտ ընթեռնելի և հարմար է վրիպազերծման (debugging) համար։
Կարևոր է հաշվի առնել, որ մինիմալացման գործընթացն անվերադարձ է։ Եթե կոդը մինիմալացվել է «Կրճատել» տարբերակով, ապա հետագայում ոչ մի գործիք չի կարող վերականգնել փոփոխականների սկզբնական անունները կամ ջնջված մեկնաբանությունները։
Գործիքի տեխնիկական սահմանափակումները և սխալների հաղորդագրությունները
Մշակման ընթացքում գործիքը կիրառում է որոշակի կանոններ և սահմանափակումներ՝ կայուն աշխատանքն ապահովելու համար.
- Մուտքային ծավալի սահմանաչափ: Մուտքագրվող JavaScript կոդի առավելագույն չափը չպետք է գերազանցի 3,000,000 նիշը։ Այս սահմանաչափը խախտելու դեպքում էկրանին հայտնվում է հետևյալ սխալը. «Այս ֆայլը չափազանց մեծ է մշակման համար: Փորձեք ավելի փոքր ֆայլ:»։
- Ժամանակային սահմանափակում: Եթե կոդի մշակումը տևում է 20 վայրկյանից ավելի, գործընթացը կանգնեցվում է և ցուցադրվում է հաղորդագրություն. «Գործընթացը չափազանց երկար տևեց և կանգնեցվեց. փորձեք ավելի փոքր ֆայլ:»։
- Շարահյուսական սխալներ: Եթե ներկայացված կոդը պարունակում է սխալներ, որոնց պատճառով այն հնարավոր չէ վերլուծել, գործիքը ցույց է տալիս հետևյալ հաղորդագրությունը. «Չհաջողվեց մշակել այս JavaScript-ը:»։
- Դատարկ արդյունք: Եթե մինիմալացման արդյունքում ոչ մի գործարկվող կոդ չի մնում (օրինակ՝ ներմուծվել են միայն մեկնաբանություններ կամ դատարկ տարածություններ), հայտնվում է հաղորդագրություն. «Մինիմալացումից հետո ոչինչ չի մնացել. մուտքագրված կոդը չուներ գործարկվող հատվածներ:»։
Եթե մուտքային դաշտը դատարկ է, գործիքը պարզապես մնում է պատրաստի վիճակում։ «Մաքրել» կոճակին սեղմելիս ջնջվում են ինչպես մուտքային, այնպես էլ ելքային տվյալները, ինչպես նաև մաքրվում է պահպանված սևագիրը։
Տվյալների մշակում և գաղտնիություն
Այս գործիքն ապահովում է տվյալների տեղային մշակում։ Ձեր ներմուծած JavaScript կոդի ձևաչափումը և մինիմալացումը կատարվում է անմիջապես Ձեր բրաուզերում։ Ոչ մի տվյալ կամ կոդի հատված չի վերբեռնվում BroBroGo սերվերներ։ Սա նշանակում է, որ Ձեր կոդը չի լքում Ձեր սարքը մշակման ընթացքում։
Հաճախ տրվող հարցեր
Ո՞րն է տարբերությունը գեղեցկացնելու (beautify) և մինիմալացնելու (minify) միջև:
«Գեղեցկացնել» (Beautify) ֆունկցիան վերադասավորում է նահանջները և բացատներ ավելացնում կոդում, որպեսզի այն հեշտ լինի կարդալ և քայլ առ քայլ վերլուծել. սա մինիմալացված կամ քողարկված (obfuscated) ֆայլը հասկանալու ամենաարագ միջոցն է։ «Մինիմալացնել» (Minify) ֆունկցիան անում է հակառակը՝ հեռացնում է բացատները, մեկնաբանություններն ու չօգտագործվող կոդը, որպեսզի ֆայլն ավելի արագ ներբեռնվի։ Գեղեցկացրեք կարդալու համար, մինիմալացրեք թողարկելու համար։
Կարո՞ղ է այն մինիմալացված կոդը վերածել սկզբնական տարբերակի:
Այն վերականգնում է նահանջներն ու տողադարձերը, որպեսզի տրամաբանությունը նորից ընթեռնելի դառնա, սակայն չի կարող հետ բերել փոփոխականների սկզբնական անունները կամ մեկնաբանությունները. մինիմալացումն անվերադարձ ջնջում է դրանք, ուստի ոչ մի գործիք չի կարող դրանք վերականգնել։ Դուք կստանաք նույն կոդը՝ պարզապես հստակ դասավորվածությամբ։
Ի՞նչ են անում անունների «Կրճատել» և «Պահպանել» տարբերակները:
Երկուսն էլ հեռացնում են բացատները, մեկնաբանություններն ու անհասանելի կոդը, և ոչ մեկը չի փոխում Ձեր սկրիպտի աշխատանքը։ «Կրճատել» (Shorten) տարբերակը նաև վերանվանում է տեղային փոփոխականները մեկ տառով՝ հնարավոր ամենափոքր ֆայլը ստանալու համար (այն, որը կթողարկեիք)։ «Պահպանել» (Keep) տարբերակը թողնում է Ձեր անունները նույնությամբ, ուստի արդյունքը մի փոքր ավելի մեծ է ստացվում, բայց մնում է ընթեռնելի և հեշտ վրիպազերծվող։
Ի՞նչ նահանջի ոճեր են հասանելի կոդը գեղեցկացնելիս:
Կոդը գեղեցկացնելիս Դուք կարող եք ընտրել նահանջի երեք ոճերից մեկը՝ 2 spaces (2 բացատ), 4 spaces (4 բացատ) կամ Tab։
Ի՞նչ տեղեկություն է ցուցադրվում կոդի մշակումից հետո:
Մշակումից հետո ելքային տվյալների բաժնում ցուցադրվում են արդյունքի տողերի քանակը (Տողեր), նիշերի քանակը (Նիշեր) և ֆայլի չափը UTF-8 բայթերով (Չափ)։ Մինիմալացումից հետո ցուցադրվում է նաև հաղորդագրություն, որը ցույց է տալիս ֆայլի չափի կրճատման տոկոսը։