Skip to content

Latest commit

 

History

History
22 lines (13 loc) · 7.28 KB

Applying Crockfords Principles in Modern JS Development.hy.md

File metadata and controls

22 lines (13 loc) · 7.28 KB

Դուգլաս Քրոքֆորդն իրավմամբ համարվում է JavaScript ծրագրավորման լեզվի «ավետարանիչը»: Լինելով լեզվի կառուցողական քննադատներից մեկը՝ նա ամեն ինչ արել է JavaScript-ի բարեփոխմանն ու զարգացմանը նպաստելու, և այն հանրաճանաչ դարձնելու համար: Բավական է ասել, որ նա JSON-ի, JSLint-ի և JSMin-ի հեղինակն է: 2018 թվականին լույս տեսավ նրա «How JavaScript works» գիրքը, որը JavaScript ծրագրավորման լեզվի մասին լավագույն գրքերից մեկն է:

JavaScript ծրագրավորման լեզվի երկրպագուներին կարծում եմ Դուգլաս Քրոքֆորդին ներկայացնելու կարիք առանձնապես չկա։ Իսկ ովքեր չեն ճանաչում, ուղղակի կարող եմ ասել, որ տվյալների փոխանակման շատ հանրաճանաչ ձևաչափի՝ JSON-ի (JavaScript Object Notation) հեղինակն է։ Նա նաև չափազանց հայտնի «JavaScript։ The Good Parts» գրքի հեղինակն է, որը 2008 թվականին հրատարակվելով, շատ արագ դարձավ բեսթսելլեր, և կարելի է ասել հիմնովին փոխեց լեզվի հանդեպ մինչ այդ եղած սնոբիստական վերաբերմունքը։

Դուգլաս Քրոքֆորդը ծնվել է 1955 թվականին ԱՄՆ-ի Մինեսոթա նահանգում: Ավարտել է Սան Ֆրանցիսկոյի Պետական Համալսարանը։ Հետաքրքիր է, որ 1984-1992 թվ․ աշխատել է Lucasfilm կինոստուդիայում որպես տեխնոլոգիական դեպարտամենտի տնօրեն։ Եղել է Yahoo! և PayPal ընկերությունների գլխավոր ճարտարագետը։ Քրոքֆորդը JavaScript լեզվի ամենափաստարկված քննադատներից մեկն է, նա դրանից զերծ չի մնացել նաև իր վերջին գրքում, սակայն նաև գտնում է, որ իր բոլոր կառուցվածքային թերություններով հանդերձ JavaScript-ը չափազանց հզոր և էլեգանտ լեզու է, և որ ճիշտ մեթոդաբանություն ընտրելու դեպքում կարելի է այդ թերությունները, որից ի դեպ զերծ չէ և ո՛չ մի ծրագրավորման լեզու, նվազագույնի հասցնել ու գրել անվտանգ, անակնկալներից զերծ և գերազանց աշխատող կոդ։

2008 թվ․ լույս տեսած նրա գրքից՝ «JavaScript։ The Good Parts» ուղիղ 10 տարի անց հրատարակվեց նրա մյուս գիրքը՝ «How JavaScript works»-ը, որը թեև ծավալով ոչ մեծ գիրք է, բայց շատ մանրամասն և մատչելի անդրադառնում է JavaScript ծրագրավորման լեզվի բոլոր կառուցվածքային առանձնահատկություններին։ Գրքում քննադատության է ենթարկվում արդի բոլոր ծրագրավորման լեզուներին բնորոշ՝ առանց լուրջ կառուցվածքային բարեփոխումների անընդհատ նորանոր ֆունկցիաներ և կոնստրուկցիաներ ավելացնելու տենդենցը, որը լեզվին վերածում է մի յուրօրինակ «Ֆրանկենշտեյնի»։ Այդ երևույթի պատճառը ձգտումն է՝ չթողել որ հանրաճանաչ լեզուները կորցնեն իրենց ակտուալությունը, և հաճախ մի լեզվում ներդրված ինչ-որ նորույթ շատ արագ մյուս լեզուներն էլ են ընդօրինակում, երբեմն առանց համապարփակ վերլուծության թե դա ինչքանով է արդարացված։

Ի դեպ Դուգլաս Քրոքֆորդն ինքն էլ հանդիսանում է ECMAScript ստանդարտի մշակմամբ և զարգացմամբ զբաղվող TC39 կոմիտեյի անդամ և ակտիվորեն ներգրավված է JavaScript ծրագրավորման լեզվի զարգացման գործում։ Հետաքրքիր է, որ գրքի էջերի և գլուխների համարակալումը սկսվում է 0-ից, իսկ բովանդակության ցանկը ֆորմատավորված է JSON ֆորմատով։ Ինչպես հեղինակն է ասում՝ գիրքը գրված է ծրագրավորողի կողմից՝ ծրագրավորողների համար:

Գիրքը սկսվում է իդենտիֆիկատորներին, թվերին, տրամաբանական արժեքներին մանրամասն անդրադարձով, նկարագրվում է JavaScript ծրագրավորման լեզվում տիպերի հետ աշխատանքի դժվարությունները, առաջ են քաշվում բազմաթիվ հետաքրքիր առաջարկներ այդ դժվարությունները հաղթահարելու և գրագետ կոդ ստեղծելու համար։ Հետո խոսվում է տվյալների կառուցվածքների և ֆունկցիաների մասին, որպեսզի հասկանալի լինի նրանց աշխատանքի մեխանիզմը, նկարագրվում է թե ինչպես կարելի է օգտագործել բարձր կարգի ֆունկցիաներն ու ծրագրավորման օբյեկտ կողմնորոշված ոճը՝ առանց կլասսների օգտագործման։

Ներկայացնեմ մի փոքրիկ հատված այդ գրքից` { "number": 2, "chapter": "How Numbers Work" } գլխից, նվիրված չափազանց տարօրինակ երկու 0-ների գոյությանը (0 և -0): «Չկա ոչ մի ուրիշ զրո, զրոյից բացի։ Ճիշտ համակարգում կարող է լինել միայն մեկ զրո։ IEEE 754 ստանդարտը պարունակում է երկու զրո՝ 0 և -0։ JavaScript-ը խիզախորեն ձեզանից թաքցնում է այդ այլասերվածությունը, և գրեթե միշտ դա նրան հաջողվում է։ Կարելի է առանց վախենալու անտեսել -0-ի գոյությունը՝ բացառությամբ հետևյալ դեպքերի՝

1 / 0 === 1 / -0; // false
Object.is(0, -0); // false

Ես խորհուրդ չեմ տալիս երբևէ փորձել որևէ բան բաժանել 0-ի վրա։ Եվ ընդհանրապես խորհուրդ չեմ տալիս օգտագործել Object.is մեթոդը»։

Հետևյալ հղումներով կարող եք տեսնելԴուգլաս Քրոքֆորդի github-ի էջը և կայքը: Այս հղումով էլ՝ լեկցիա այն մասին, թե ինչպիսին պետք է լինեն նոր սերնդի ծրագրավորման լեզուները։