JavaScript yangi kodlovchilar uchun eng yaxshi tilmi?

Ko'pgina kamchiliklariga qaramay, JavaScript bolalar va yangi o'quvchilar uchun eng yaxshi ishtiyoqli til bo'lishi mumkin

2007 yil bo'ldi. "Reyilly Media" gazetasining texnik noshiri, menga bir g'oya bilan murojaat qildi. Yangi boshlanuvchilar uchun JavaScript-ni tanishtiradigan kitob yozishni xohlarmidim?

Mening javobim darhol: nega?

JavaScript foydasiz degani emas edi. Ammo JavaScript veb-saytni yaratish uchun zarur bo'lgan texnologiyani sinchkovlik bilan tartibga solishning bitta tarkibiy qismi edi va bu eng ahamiyatsizi edi. Ha, JavaScript pixie changining bir qismi uzoq shakllarni tasdiqlashi yoki kimdir ustiga bosganda tugmachani yarqirashi mumkin. Ammo JavaScript ixtiyoriy edi - uni sahifadan olib chiqing va hamma ish bir xil yoki kam ishlayverdi.

JavaScript ham jiddiy yuklar bilan birga keldi. Bu brauzerning mosligi muammolari bilan bog'liq edi, sekin, xavfli va aniq ishonchsiz. Men kimgadir foydasiz JavaScript-da ishlaydigan veb-sahifa vidjetini qanday yaratishni o'rgatish bilan qiziqmadim. Internetning dastlabki kunlaridagi g'azabga aylangan aylanuvchi globuslarning animatsion sovg'alari kabi bu g'oya bema'ni bo'lib tuyuldi.

Javob uchun JavaScript-ni ishlatishning eng aniq usuli, yoki men o'sha paytda sodda deb o'ylagan edim, sizning katta server yon doirangiz kerakli JavaScript-ni sahifaga to'g'ridan-to'g'ri etkazishi kerak edi. Ha, bu JavaScript biroz shishirgan bo'lishi mumkin, ammo boshqa tomondan brauzerga moslashtirilgan va hech narsa buzilmagan - hatto tashrif buyuruvchi JavaScript-ni to'liq o'chirib qo'ygan bo'lsa ham.

Aytishga hojat yo'q, men kitobni yozmadim. Men veb-serverda kodlashni va o'zimning sevimli texnologiyalarim haqida yozishni davom ettirdim (odatda C # va .NET Framework). Yillar o'tdi.

Keyin g'alati bir narsa yuz berdi.

JavaScript egalladi.

Hali ham JavaScript dasturlash tillarida eng yaxshi tanlov deb topishga loyiq emas deb o'ylayman. Agar biz rostgo'y bo'lsak, bu ayniqsa yaxshi til deb o'ylamayman. Ammo men bitta narsa haqida fikrimni o'zgartirdim. Endi ishonaman, JavaScript shunchaki bolalar va yangi kodlovchilar uchun eng yaxshi boshlang'ich nuqtasi bo'lishi mumkin.

JavaScript-ning ajoyib imkoniyatlari

JavaScript-ning ajralib turmaydigan afzalliklaridan biri bu unga erishishdir.

JavaScript hamma joyda - har bir operatsion tizimda, har bir brauzer markasida va ish stoli kompyuterlarida va mobil qurilmalarda qo'llab-quvvatlanadi. Shunisi muhimki, JavaScript-da hech qanday joylashtirish talab qilinmaydi. Aslida, uzoq vaqt o'tmishni eslab qolish qiyin, chunki kompaniyalar mijozlar-server dasturlarini ichki tarmoqlarida tarqatib, bir necha hafta davomida o'rnatish va kutilmagan xatolar bilan kurashdilar. O'sha kabuslarga duch kelganingizda siz JavaScript-ning jozibadorligini ko'rishingiz mumkin.

Javob uchun JavaScript eng yaxshi dasturlash tiliga aylanishi shart emas edi. Bu etarli darajada yaxshi bo'lish uchungina kerak edi.

Shunga o'xshash dinamika kodlashni o'rganishni boshlaganda ishda. Dastlab yaxshi dasturlash amaliyotini o'rganish maqsadi bo'lgan odam uchun avvaliga erishish muammosi unchalik muhim emas. Shu bilan bir qatorda ko'pgina masalalar kasbiy rivojlanishda dasturlashtirishni o'rganish bilan bog'liq. Agar siz o'zingizning ishingiz hamma uchun ochiq bo'lishini istasangiz, JavaScript bu yagona nomzod.

Masalan, siz shaxsiyatni oldindan aytib beradigan va qiziqarli savol-javoblar uchun ajoyib dasturni yaratganingizni ayting. Rivojlanish muhitini o'rnatish nisbatan oson. Ammo dasturingizni do'stingizga yuborishni xohlaganingizda nima bo'ladi? Ular ish vaqtini o'rnatishlari yoki bir xil rivojlanish muhitini o'rnatishlari kerakmi? Ularning kompyuteriga sizning dasturingizni yuklab olish va o'rnatish uchun ruxsat berishdan oldin uning xavfsizlik sozlamalari zarurmi? Ehtimol, sizning do'stingiz sizning dasturingizni umuman qo'llab-quvvatlamaydigan operatsion tizimdan yoki faqat iTunes yoki Google Play do'konida tarqatiladigan professional dasturlarga ruxsat beruvchi mobil platformadan foydalanmoqda. JavaScript va asosiy veb-sayt bilan (GitHub sizga ozgina bo'sh joy beradi) ushbu muammolar yo'qoladi.

Agar kelajakdagi koder bolakay bo'lsa, bu shubhasiz haqiqat: bolalar va brauzerlar juda mos keladi. Agar siz bolani kompyuterda (mobil qurilmada emas) ishlayotganini ko'rgan bo'lsangiz, ehtimol vaqtning kamida 98% brauzerda sarflanganiga e'tibor bergansiz. Ular u erda o'yinlar o'ynashadi, ijtimoiy mediadan foydalanadilar va Google sinflari va Google Docs orqali maktab ishlarini o'rganadilar. Ular yaratgan kod allaqachon yashab o'tgan brauzerlar olamida ishlatilishi tabiiy hol.

Endi muammolar uchun ...

Ammo muammolar haqida nima deyish mumkin? JavaScript-ning bir qator jiddiy kamchiliklari bor va uning dasturlari, nomuvofiqliklari va cheklovlari birinchi marta dastur qilishni o'rganayotgan kishi uchun ayniqsa og'riqli bo'lishi mumkin. Yaxshiyamki, og'riqning ko'p qismini oldini oladigan zamonaviy echimlar mavjud.

Keling, eng keng tarqalgan to'rtta shikoyatni ko'rib chiqaylik.

1. JavaScript xavfsiz emas

Dasturchilar erta o'rganadigan asosiy tushunchalardan biri bu dasturning amal qilish muddati davomida ma'lumot saqlaydigan o'zgaruvchilar, idishlar g'oyasi. JavaScript bilan bog'liq muammo shundaki, u o'zgaruvchan va yumshoq. To'g'ri ko'rinmaydigan narsalarni qabul qiladi va aniq muammolarni e'tiborsiz qoldiradi. Uning dangasasi kichik xatolarni kodli falokatlarga aylantirishi mumkin.

Bu erda ishlamay qolishi mumkin bo'lgan ba'zi kodlarning namunasi:

var myNumber = 100;
myNumber = myNumbr + 1;

Siz xatoni angladingizmi? Ikkinchi qator aslida ikkita o'zgaruvchini ishlatadi: birinchi qatorda aniqlangan myNumber o'zgaruvchisi va xayoliy myNumbr o'zgaruvchisi. Biz bilamizki, ikkinchi o'zgaruvchi yozuvning natijasidir, lekin JavaScript yordam yordamida muammoni yangi "myNumbr" o'zgaruvchisini yaratish orqali "hal qiladi", bu esa hisobni o'chirishga olib keladi. Xuddi shu muammo, agar siz nomutanosib kapitallashtirish bilan o'zgaruvchi nomdan foydalansangiz (masalan, MyNumber o'rniga MyNumber). Shunga o'xshash muammo, agar siz o'zgaruvchi raqamni matnda bo'lganda ushlab tursa va hokazo deb hisoblasangiz, shunga o'xshash muammo yuzaga keladi. Har bir JavaScript dasturchisida JavaScript kabi dahshatli voqea shunday bo'ladi.

Dasturlash tili sizni bir vaqtning o'zida sizni bezovta qiladigan usullar haqida tashvishlanmasdan kodlashni o'rganish kifoya. Ammo, baxtiga, turdagi xavfsizlik muammolari to'g'ri rivojlanish vositasi bilan osongina hal qilinadi.

O'rganish uchun ham, professional foydalanish uchun ham mening eng sevimli kod muharrirlaridan biri bu Visual Studio Kodidir. Bu bepul, engil, ochiq manba va cheksiz kengaytirilishi mumkin. Uning eng yaxshi xususiyatlaridan biri bu keng tarqalgan muammolar uchun JavaScript kodini xato tekshirish qobiliyatidir. Siz xato tekshiruvini konfiguratsiya faylini qo'shib yoki JavaScript-faylning yuqori qismidagi sharhni yopish orqali yoqishingiz mumkin:

// @ ts-tekshirish

Ikkita xatoga ega bo'lgan bir misol, ikkalasi ham JavaScript-da muammo emas:

Kredit: Metyu MakDonald ©

Agar siz ts-check sharhidan foydalansangiz, Visual Studio ushbu mumkin bo'lgan xatolarni yordamchi tarzda ta'kidlaydi:

Ushbu chizilgan joylardan birini sichqoncha ustiga olib boring va Visual Studio muammoning izohini chiqaradi:

Qaytish? Garchi JavaScript ko'plab yomon dasturlash amaliyotiga toqat qilsa-da, agar siz JavaScript-ni yaxshi kod muharriri bilan birlashtirsangiz, boshqa zamonaviy dasturlash tillariga o'xshash tajribani olishingiz mumkin. Va siz JavaScript imkoniyatlaridan voz kechmadingiz.

2. JavaScript OOP qilmaydi

Ob'ektga yo'naltirilgan dasturlash (OOP) bu kodni modellashtirish va tartibga solish usulidir. To'g'ri bajarildi, OOP dasturchilarga sodda va tartibli kod yaratishga yordam beradi. Bundan tashqari, bu funktsionallikning muhim bitlarini qayta ishlatishni osonlashtiradi.

Ma'lumki, ob'ektga yo'naltirilgan dasturlash uchun JavaScript-ga ehtiyoj yo'q. Aslida, JavaScript-ni ishlab chiquvchilar uni odatiy usullar va g'alati echimlar bilan soxtalashtirishadi. Ushbu usullar allaqachon dasturlashni o'rgangan kishiga tushunarli bo'lishi mumkin (va ular bo'lmasa ham, siz o'zingizning loyihangizga naqshni ko'chirib olishingiz va u bilan yashashni o'rganishingiz mumkin). Ammo agar siz kodlash uchun mutlaqo yangi bo'lsangiz, asosiy dasturlash tushunchasi uchun loydan foydalanish aniq muvaffaqiyatsizlikka olib keladi.

Yaxshiyamki, JavaScript tili bilan to'g'ri birlashtirilgan yaxshiroq, yanada oqlangan echimlar mavjud. Mening eng yoqimlisi - bu 2012 yilda Microsoft tomonidan ochilgan TypeScript, ochiq kodli loyiha. TypeScript ob'ektlarga yo'naltirilgan dasturlash qo'shadigan (tozalangan tekshirish kabi boshqa foydali yaxshilanishlar qatorida) tipik JavaScript-ning tozalangan versiyasi sifatida ishlaydi.

Ba'zilar TypeScript-ning to'liq JavaScript emasligiga e'tiroz bildirishlari mumkin va bu haqiqat. Ammo bu erda sehrli qism. Siz kodingizni TypeScript-ga yozib, uni veb-sahifada ishlatishdan oldin uni JavaScript-ga o'zgartira olasiz. Bu sizga ikkala dunyoning eng yaxshisini oladi: kodni yozish uchun zamonaviy dasturlash tili va oddiy JavaScript singari kodni ishlatish uchun universal yordam.

Eng yaxshisi, Visual Studio kodi kabi vositadan foydalansangiz, bu butun jarayon avtomatik ravishda sodir bo'ladi. Ha, yaratilgan JavaScript kodi hali ham g'alati echimlardan foydalanadi. Lekin nima? Dasturchi OOP tushunchalarini o'rganadi, tayyor kod hıçkırıksız ishlaydi va zamonaviy kompyuterlar barcha tartibsizliklarni osonlikcha hal qiladi.

Menga ishonmayapsizmi? Bugungi kunda eng yangi ish stoli ilovalarida JavaScript brauzerdan tashqarida ishlashga imkon beradigan TypeScript va Electron kombinatsiyasidan foydalaniladi. Eng ta'sirli misollardan biri bu Visual Studio Kodidir. To'g'ri - JavaScript kodini yozishda siz ishlatadigan xuddi shu silliq vosita JavaScript kodi bilan ham yozilgan. Aniqrog'i, u JavaScript tilining zamonaviy TypeScript lazzatidan foydalangan holda yozilgan.

Albatta, siz TypeScript-dan foydalanishingiz shart emas va yangi JavaScript dasturchilari, agar xohlasalar, biron bir OOP tamoyillarini o'rganmasdan turib ko'p ishlarni amalga oshirishlari mumkin. Bu haqiqatan ham tanlov masalasi. Qanday bo'lmasin, umid ufqda: JavaScript hali ham takomillashtirilmoqda va yangi versiyalari asta-sekin TypeScript-dan ba'zi yaxshilanishlarni qo'shmoqda.

3. Dunyo yomon JavaScript kodiga to'lgan

Siz hech qachon Visual Basic haqida eshitganmisiz?

4. JavaScript qo'shimcha kutubxonalar va ramkalarga muhtoj

Ko'p funktsional imkoniyatlarga ega bo'lish uchun (va g'ildirakni qayta kashf qilmaslik uchun) JavaScript koderlari boshqa qismlardan, kutubxonalardan va ramkalardan foydalanishlari kerak. To'g'ri ingredientlarni tanlash - yaxshi ishlaydigan, kelajakda uzoq vaqt davomida qo'llab-quvvatlanadigan va bir-biriga zid kelmaydigan narsalar - bu oson ko'rinmaydi.

Ko'pgina tillar ushbu muammoning versiyasiga duch kelishadi. Biroq, bu holatdan ba'zi tillar JavaScript kabi yomon aziyat chekmoqda. Bepul JavaScript olamida jiddiy dasturchi bo'lish uchun siz o'zingizning ishlab chiqarish vositalari va qo'shimchalar to'plamini to'plashingiz kerak, shu qadar murakkab va ixcham variantlardan birini tanlab, sizga mos keladimi yoki yo'qligini bilmaysiz. uni sinchkovlik bilan o'rganib chiqdim (qaysi paytda u eskirgan bo'lishi mumkin, uning o'rniga eng yangi yangi ranglar kirib keladi).

Ushbu bosh og'rig'i qanchalik yomon bo'lsa, ular yangi kodlovchilarga deyarli ta'sir qilmaydi. Agar kimdir JavaScript bilan kodlashni o'rganayotgan bo'lsa, jQuery, Angular, React, Vue yoki men ushbu jumlani yozgan vaqtimdan boshlab va men hozirgacha o'ylab topilgan narsalar haqida gaplashayotganimizdan qat'i nazar, ramkalar va kutubxonalardan uzoqroq bo'lishdir. hit nashr. Oxir-oqibat, yangi koder dasturlash asoslariga kuchli buyruq berganidan so'ng, ehtimol ushbu ramkalarning bittasini o'rganishni xohlashadi. Ammo bu boshqa kun uchun mavzu.

Bolalarni dasturlashni o'rgatish uchun eng yaxshi til haqida sizning fikringiz bormi? To'g'ri javob yo'q (va menda o'zim yoqtirgan narsalar). Quyidagi sharhlar bo'limida yuqori fikrlarni qoldiring! Agar siz mening bolalar uchun kodlash bo'yicha yangi kitoblarimni oldindan bepul ko'rib chiqishni istasangiz, ProseTech axborot byulleteniga obuna bo'ling.

¹ Server tomonidagi kod - bu sizning kompyuteringizdan uzoqda joylashgan veb-serverda ishlaydigan kod. Mijoz tomon kodi - bu sizning brauzeringizda ishlaydigan kod. Masalan, Amazon-da mahsulot qidirish va server-kod Amazon-ning ma'lumotlar bazalarini tahqirlaydi, mumkin bo'lgan mos keladiganlar ro'yxati bilan HTML-ni yaratadi va uni brauzeringizga yuboradi.

² Mijoz-server ilovalari - bu ishni ikki qismga ajratadigan eski dastur ilovasi. Bir qismi ish stoli kompyuterida (mijoz), boshqa qismi (server) bilan boshqa kompyuterda aloqa o'rnatadi.