2019 yilda Node.js-ni yaxshiroq ishlab chiquvchisi bo'lishning 19 usuli

Node.js kelajagi juda qiziq narsalarni keltiradi

Qisqa kirish

Men 2019 yilda siz topishingiz mumkin bo'lgan 19 ta ko'nikma va mavzularni tuzdim. Iltimos, haddan oshmang - na men, na boshqa dasturchilar har bir mavzu bilan tanish emaslar. Bular mening radarimdagi ajoyib narsalar va JavaScript ufqlari hech qachon tugamaydi.

Mening ismim Yoni Goldberg, Node.JS mustaqil maslahatchisi va Node.jsning eng yaxshi amaliyotlarining hammuallifidir. Men AQSh, Evropa va Isroilda mijozlar bilan ularning Node.js dasturlarini parvarish qilishda ishlayman. Mening xizmatlarim orasida kod, dastur va arxitekturani o'rganish, sinov va CI, ilg'or o'quv mashg'ulotlari va boshqa narsalarni topishingiz mumkin. Tvitterda meni kuzatib boring

Bruno Scheufler va Reddit hamjamiyati tomonidan ko'rib chiqilgan va takomillashtirilgan (@pysouth, @fullheap, @ReginaldBull va @relativityboy uchun alohida rahmat) va

1. Ba'zi turlari va sxemalarni qo'shing. Typcript 2019 yilda ajoyib nomzod

Oddiy tarzda kodlash samarasiz va xatolarga olib kelishi isbotlangan (tadqiqotga qarang). Bu shunchaki qat'iy terilgan sintaksisga borishingiz kerak degani emas, balki JSON sxemasini (yoki Joi) ishlatgan holda korxonalaringiz yoki modellaringizni tasdiqlash orqali o'zingizning xohlagan sxematik kodni tanlang va vaniliy JS-ni statik yozuv bilan izohlang ( Facebook oqimini ko'ring) yoki Typecript yordamida deyarli to'liq yozilgan sintaksisdan foydalaning. Keyinchalik 2018 yilda ajoyib g'ayratga erishdi va Node er konsensusiga kirishga o'xshaydi. Agar siz Typecript-ni ishlatishni rejalashtirmoqchi bo'lsangiz, o'zingizning foydalanishingiz shunchaki terish xususiyatlaridan tashqari bo'ladimi-yo'qligini so'rang, aks holda interfeys va mavhum sinflardan foydalanish sizni hech qachon sinab ko'rmoqchi bo'lmagan paradigmaga olib keladi.

Misollar:

  • JSON Schema yordamida aniq modellar sxemalari
  • Facebook oqimi yordamida vanilinli JS orqali statik yozish
  • Typecript bilan yozilgan sintaksis

2. Linters-ni boyiting

Linters - bu bepul tushlik, 5 minutlik sozlash bilan siz avtomatik ravishda uchuvchingiz kodingizni himoya qiladi va siz yozayotganingizda muhim muammolarga duch kelasiz. Kosmetika to'g'risida astarli kunlar tugadi (yarim nuqta yo'q!). Hozirgi vaqtda Linters noto'g'ri tashlangan xatolar, ma'lumotni yo'qotish, hech qachon hal qilinmaydigan va'dalar va siz hech qachon o'z kodingizga kiritishni istamagan boshqa muammolar kabi jiddiy muammolarga duch kelishi mumkin.

Misollar:

  • eslint-plugin-chai-wait testlarni tasdiqlashsiz topishi mumkin
  • eslint-plagin-va'dasi hech qanday muammosiz va'dalarni topishi mumkin (sizning kodingiz hech qachon davom etmaydi)
  • eslint-plagin-havfsizlik DOS hujumlarida ishlatilishi mumkin bo'lgan regex istaklarini topishi mumkin

3. Bir oz ko'proq Java va bir bayt kamroq Ruby bo'ling - me'morchilik haqidagi bilimlaringizni yaxshilang

Arxitektura va dizayn bo'yicha bilimlar NodeJS ekotizimida juda kam tarqalgan, hamma Microservices haqida gapiradi, lekin ularning ichki tuzilishi haqida faqat bir nechtasi. Natijada, aksariyat dasturlar va misollar - MVC tushunchalari va Rubidan olingan boshqa shubhali naqshlar. Nimasi yomon? Masalan, MVC tarkibga xizmat ko'rsatish uchun qurilgan va u kuchli orqa qismni tuzish uchun yer osti qurolidir (Bob tog'a: "MVC - bu amaliy arxitektura emas, balki etkazib berish mexanizmi"). Siz haqiqatan ham sizning biznesingiz mantig'ini, qoidalarini, ma'lumotlarga kirishni, boshqa Microservices bilan ikki sinfda - Controller & Model bilan aloqani tasvirlab bera olasizmi? Dizaynning boshqa muammolari va mumkin bo'lgan davolanish uchun quyidagi misollarga qarang

Men Java yoki Bahorning og'ir namunalarini o'z ichiga olishni mutlaqo tavsiya etmayman (biz bu erga Node-Landga kelganmiz, shunday emasmi? :)), shunchaki ilova-dasturning soddaligini qurbon qilmasdan katta ahamiyatga ega bo'lgan bir nechta gilosni tanlang.

Misollar:

  • Node.js-ning eng yaxshi amaliyotlarim 1-bo'limini - arxitekturani o'qidingizmi?
  • O'zingizning biznes mantiqingizni Express ob'ektlari bilan aralashtirishdan saqlaning, Domen tomonidan boshqariladigan Dizayn haqida o'qing (bu erda romanning qisqartirilgan versiyasini ko'ring) va olti burchakli arxitektura
  • Mantiq va ma'lumotlarga kirish kodlarini bitta sinfga aralashtirish (Active Record modeli - Mongoose va Sequelize-dan foydalanadigan ishlab chiqaruvchilar orasida juda mashhur) osonlikcha sinishi qiyin bo'lgan ob-havoga olib keladi. Buning o'rniga ma'lumotlar xaritasi naqshidan foydalanishni o'ylab ko'ring
  • Domen boshqariladigan dizayni va toza arxitekturasini tatbiq etadigan ushbu yoqimli Node.js qozon plitasining kodidan o'ting

4. Yaxshilab kuzatib borish va kontekstga erishish uchun Async-Hook-larni qanday ishlatishni rejalashtiring

Bitta bitta tishli modelning bitta muhim kamchiliklari bor - so'rovlar kontekstni yo'qotadi: ular bir nechta fayllardan o'tib, asenkron operatsiyalarni bajarar ekan, o'zgaruvchilar butun hayot davomida saqlanib qolmaydi. Nega bu og'riqli? Masalan, ko'pincha ishlab chiquvchilar har bir kirish yozuviga noyob identifikatorni kiritishni xohlashadi, shuning uchun keyinchalik bitta so'rovning barcha yozuvlarini o'zaro bog'lash mumkin - bu 2018 yilda juda oson emas. ularni (mutlaqo yangi emas, lekin tez orada eksperimental rejimdan chiqib ketishi kerak) - oddiygina aytganda, bu async operatsiyalari boshlanadigan va tugagan paytda istalgan vaqtda maxsus kodni kiritish mexanizmi. Shuni hisobga olib, bitta so'rovning barcha kodlarini o'zaro bog'lash va kontekstni saqlab qolish mumkin. Bu "Node" ni kuzatish va kontekstni keyingi darajaga olib chiqadigan ko'plab maxsus paketlar uchun asos yaratadi

Misollar:

  • cls-hooked butun hayot davomida o'zgaruvchilar va kontekstni almashish imkonini beradi
  • Jaeger mijozi butun tizim bo'ylab, hatto Microservices va serverlar bo'ylab ham so'rovlar oqimini vizual ravishda namoyish qiladi (barcha amallarni yozib olish uchun maxsus server talab qilinadi).
  • Async-ilgaklar imkoniyatlari va unga qarshi qanday kodlash haqida bilib oling. Muallif @guysegev

5. "Serversiz" ning so'nggi xususiyatlarini tushuning: Endi kuchli infratuzilma maydonida jang qilishga tayyor (Kubernetes qotili?)

Izoh: FaaS va Serverless so'zlari bu erda bir-birining o'rnida ishlatiladi, ammo ular bir xil emas. Men deyarli Lambda va Google Functions kabi FaaS xizmatlarini taqdim etaman

Dastlab FaaS kuchli "Microservice" ilovalari uchun emas, balki mikro vazifalarni ishlab chiqish uchun mo'ljallangan edi. Ularning ommaviyligi oshgani sayin, bulut sotuvchilarining ishtahasi, tez orada yangi funktsiyalar paydo bo'ldi va to'satdan endi 2019 yilda bu mustahkam ilovalar uchun munosib infratuzilma kabi ko'rinadi. Endi u Kubernetes bilan raqobatlasha oladimi va katta dasturlarga xizmat qiladimi? Ba'zilar Serverless va Faasni ortogonal texnologiyalar deb bilishadi, ammo 2019 yilda deyarli har bir yangi bulutli dastur uchta (bittasi EC2 yoki GCP kompyuter kabi yalang'och metall namunasini) tanlashi kerak (tom ma'noda bu tanlov har bir bulut sotuvchisi UIda ko'rsatilgan). 2) Kubernetes yoki (3) FaaS. Shunday qilib, K8S va FaaS / serversiz solishtirish va uning oqibatlari to'g'risida gapirish majburiy dizayn mahoratiga aylanadi.

p.s. Quyidagi misollar faqat qulaylik uchun AWSga tegishli.

Misollar:

  • AWS Lambda SAM vositasi FaaSni aniqlash va ishga tushirishga imkon beradi
  • AWS Lambda endi kanareykalarning joylashishini qo'llab-quvvatlaydi!
  • AWS Lambda qatlamlari bir necha FaaS orasida mantiqdan (oddiy Microservice domeni / biznes mantiqiy qatlamini taqlid qilish) foydalanishga imkon beradi.

6. Tez orada yashil rangga aylanadigan eng so'nggi JavaScript xususiyatlarini tan oling

Men har bir yangi til xususiyatlarini kuzatishda katta muxlis emasman, ba'zida bu yorqin o'yinchoqlar kod soddaligiga qarshi ishlaydi va aniqlik kiritadi. Vaqti-vaqti bilan ba'zi bir javascriptning juda qimmatli xususiyatlari taqdim etiladi (asyncning kiritilishi / ikki yil oldin kutish kabi), shuning uchun sizning kodlash uslubingizga mos keladigan jozibali yangi xususiyatlarni aniqlash uchun TC39 takliflar ro'yxati va node.green-ni ko'rib chiqishga arziydi.

Misollar:

  • Sinf darajasidagi maydon 3 bosqichda (oxirgi bosqich) va 2019 yilda yashil rangga aylanishi mumkin
  • BigInt 3-bosqichda (oxirgi bosqich) joylashgan bo'lib, ulkan raqamlarni ishlab chiqaradigan boshqa mikroservislar, mashinalar yoki ma'lumotlar omborlari bilan o'zaro aloqada yordam berishi mumkin.
  • Async iteratorlari (Matt Krick) va † va'dalari nihoyat allaqachon yashil bo'lib, ulardan birini o'tkazib yuborganingizni tekshirib ko'rishingiz kerak.

7. Kamida yana bitta API texnologiyasi bilan yaqindan tanishib chiqing. GraphQL 2019 yilda ajoyib nomzod

REST-stilli API bu maqsad uchun juda mos keladi: ob'ektlarni o'zgartirish va so'rovlar ustidan katta nazoratga ega. Moliyaviy yozuvlar tizimi bormi? Ehtimol siz yagona va aniq ma'lumotlar modeliga tegishli bo'lgan juda aniq oxirgi nuqtalarni loyihalashni xohlaysiz. Biroq, REST uslubi boshqa keng tarqalgan foydalanish holatlarida, masalan, turli xil ma'lumot to'plamini qaytarishi mumkin bo'lgan o'xshash so'rovlarni bajarishda, API yukini minimallashtirishni talab qiladigan past tarmoqli tarmoq, tezlikni ta'kidlaydigan mashina-mashina aloqalari, ozlarining nomiga. Boshqa tomonga o'tish kerakmi? Mutlaqo yo'q, shunchaki aralashtiring. API sizning arxitekturangiz emas, ular sizning arizangiz uchun faqat port (ya'ni kirish nuqtasi) va bir nechta API-uslublar osongina birgalikda yashashi mumkin. Hatto Express kabi bitta veb-ramkaning tepasida.

Qaysi birini o'rganish kerak? Sizning eng yaxshi garovingiz, ehtimol asosiy oqimga ajoyib sur'atlar bilan o'tkaziladigan GraphQL. Uning echo-tizimi juda yaxshi rivojlangan va dinamik qidirish va ierarxik ma'lumotlar manbasi kabi juda mashhur foydalanish holatlariga xizmat qiladi. O'z navbatida, Grpc, eng kam xarajatlar baholanadigan holatlarda (masalan, Pub-sub / message-queue tizimi) serverlar bilan ishlash uchun yaxshi mos keladigan texnologiya.

Misollar:

  • Qarama-qarshi tomondan o'rganish juda yaxshi - REST vs Graf vs grpc
  • GraphQL, Node va Express qo'llanmalaridan o'ting
  • Qisqa YouTube-ni tomosha qiling (11 min) - GraphQL nima o'zi?

8. Birlashma va integratsiya sinovlaridan chetga chiqing - sinov portfelingizni yangi sinov usullari bilan boyiting

Sinov piramidasi, birlik, integratsiya va oxir-oqibat sinovlari bilan allaqachon tanishmisiz? ajoyib, bu muvaffaqiyatli sinov strategiyasining asosidir. Biroq, so'nggi 10 yil ichida rivojlanish dunyosi keskin o'zgarishlarni boshdan kechirdi, ammo sinov modellari o'zgarmay qoldi, bu bizni Microservice, boy jabhalar va Serverless kabi narsalarni qanday sinab ko'rish haqida hayron qoldirdi. Ba'zi bir zamonaviy texnikalar an'anaviy stakalarni maqtashadi va ba'zida uni yaxshiroq rentabellik bilan sinov strategiyasiga erishish uchun uni almashtirishlari mumkin.

Misollar:

  • Iste'molchilar tomonidan tuzilgan shartnomalar Microservices o'rtasida yoki siz va API iste'molchisi o'rtasida API bilan bog'liq muammolarni oldini olish mumkin
  • Rasmlarni sinab ko'rish nafaqat UI uchun, balki API regressiyasini oldini olish uchun ham ishlatilishi mumkin
  • Komponent sinovlari bu Microservice sinovlari uchun muvozanatli yondashuv
  • Mening YouTube videomni "Unit Testlar Undan tashqari: 5 Shiny Node.JS Test turlari (2018)" da ko'ring.
Yoni Goldberg tomonidan 5 ta sinov usullari

9. Monitoringingizni SRE / DevOps-ning eng yaxshi amaliyotlari bilan tekislang

2019 yilda, hatto o'rta darajadagi ilova ham o'nlab jismoniy harakatlanuvchi qismlarni tashkil qilishi mumkin va bu katta guruhli orkestrning tepasida turish juda ehtiyotkorlik bilan bajarilishi kerak. Shunga qaramay, ko'pchilik ishlab chiquvchilar saytni ishonchli muhandislari o'qitishga tayyor bo'lgan monitoring va ogohlantirish darslarini o'rganishga vaqtlarini sarflamadilar. Misol sifatida, ko'pincha ishlab chiquvchilar xatolar tezligi yoki kechikish kabi bevosita foydalanuvchiga bevosita va shubhasiz ta'sir qiladigan ko'rsatkichlardan boshlanish o'rniga CPU va xotira kabi ichki apparat o'lchovlariga ustuvor ahamiyat berishadi ("Men bu alomatga asoslangan monitoring deb atayman") Ogohlantirish haqidagi falsafam '). Mijozlarga qaraydigan ushbu ko'rsatkichlar ba'zan "Oltin signallar" deb nomlanadi va 2019 yilda siz shu erda boshlashni va shunga o'xshash eng yaxshi amaliyotlarni qo'llashni xohlaysiz.

  • 4 ta "Oltin signallar" monitoringi haqida o'qing
  • Google saytining ishonchliligi bo'yicha muhandislik kitobini yoki hech bo'lmaganda monitoring bobini o'qing
  • Paketli so'rov statistikasi mijozlar tomonidan kuzatiladigan o'lchovlarni chiqarib olishga yordam berishi mumkin, shunda siz monitoring tizimingiz bilan baham ko'rishingiz mumkin

10. Hujumchi kabi o'ylab ko'ring: hujum qilish vositalari va texnikasini o'rganish orqali xavfsizlik darajasini oshiring

Agar siz hujumchi kabi o'ylay olmasangiz, himoyachi kabi o'ylay olmaysiz. 2019 yilda mudofaa ishlarini uchinchi tomon kompaniyalariga o'tkazib yubormasligingiz yoki faqat statik xavfsizlik skanerlariga tayanmasligingiz kerak: Hujum turlarining miqdori haddan tashqari ko'p (Ishlab chiqarish quvuri va NPM - bu eng so'nggi tendentsiyalar), dasturni o'zgartirish sur'ati o'zgarib bo'lmaydigan darajada - xavfsizlik seminarini o'tkazgandan keyin ikki kun o'tgach, guruh AWS-ning yangi xizmatlarini, ma'lumotlar bazalarining turlarini va yangi IAM rolini qo'shishi mumkin, masalan ... Shubhasiz ishlab chiquvchilar eng katta xavfga aylanmoqdalar va ularga ta'lim berish eng so'nggi chora bo'lib tuyulmoqda. O'zingiz va jamoangizga xavfsizlik DNK-larini qo'shishingiz va hamma narsaga xavfsizlik teginishini qo'shishingiz kerak.

Buni qilishni boshlaganingizdan so'ng, bu qo'rqinchli emas. Oddiy hujum turlari va vositalari bilan tanishib chiqing, ilova arxitekturasini va oqimini chizib oling va bunga qanday hujum qilishingizni o'ylang. Vaqt o'tishi bilan, siz har qanday dizayn qarorida va har bir kod satrida xavfsizlikni ongsiz ravishda boshlaysiz

Misollar:

  • OWASP ZAP-ni sinab ko'ring - boy baholash va kirish vositasi, hatto yangi boshlanuvchilar uchun ham dasturning xavfsizlik darajasini o'rganishga imkon beradi
  • Node.js Security-ning 23+ hujum g'oyalarini o'z ichiga olgan eng yaxshi amaliyotlari ro'yxatini o'qing, shu jumladan JavaScript kodi misollari
  • Har oy tahdidlar tahlili bo'yicha yig'ilish o'tkazing, unda jamoa dastur dizaynini ko'rib chiqishga va hujumlarni taklif qilishga harakat qiladi. zerikarli? Agar siz ekspluatatsiyani topadigan ba'zi o'yinlashtirish va mukofot a'zolarini qo'shsangiz yoki ekspluatatsiya topishga harakat qiladigan o'quvchilarga qarshi modulni yaratadigan ko'k guruh o'rtasida raqobat qilsangiz, bu shart emas.

11. Paketni yangilash strategiyasiga ega bo'ling. 2018 yilda olingan saboq: tez orada yangilash xavfli amaliyotdir

Jamoalar odatda ikkita npm / ip ipli paketni yangilash strategiyasidan birini ushlab turishadi: (1) iloji boricha tezroq yangilash, ba'zida hatto avtomatlashtirilgan jarayon yordamida (2) umuman yangilanish strategiyasi yo'q, ba'zida kimdir yaxshi niyat asosida yangilaydi. Birinchi yondashuv ustunroq ko'rinishiga qaramay, 2018 yilda bu eng xavfli yondashuv bo'lib chiqdi: yassi oqim kabi zararli paketlar bilan bog'liq barcha voqealar 40 kun ichida jamiyat tomonidan aniqlandi, kutgan va tez orada yangilanmaganlar qutqarildi. Avtomatlashtirilgan vositalardan foydalangan holda yangilanish strategiyasini rasmiylashtirish haqida o'ylab ko'ring va umuman yangilamaslik o'rtasidagi yoqimli joyni toping

Misollar:

  • npq tomonidan Liran Tal - bu tavsiya etilgan paketlarni o'rnatuvchisi, shu bilan birga chiqarilgan kunni ham yodda tutadi
  • Paket yangilangandan keyin greenkeeper kabi tijorat vositalari PRni amalga oshiradi. Afsuski, yangilanish xavfsizligi isbotlanmaguncha, hech kim yangilanishni to'xtatib turishga qodir emas

12. O'rnatish va bo'shatish bosqichlarini bir-biridan ajratib, asta-sekin o'rnatishni bajaring

2019 yilda bitta zarbada otilmagan va yuragingizni bolg'a kabi urib qo'ygan holda xavfsizroq ishlarni amalga oshirish foydali bo'lishi mumkin. Xavfsiz tomondan, donador tarqatish (a.k.a kanareykasi) 3 bosqichga bo'linishni taklif qiladi: (1) Joylashtirish - ajratilgan va yangi ishlab chiqarish maydonlariga yangi kodni yuborish (masalan, yangi Kubernetes xizmati yoki yangi mashina namunasi). Ushbu bosqichda u hech kimga xizmat qilmaydi, shuning uchun hech qanday qo'rquv yo'q (2) Test - hozirda kam sonli odamlar yangi kodni o'zining haqiqiy sharoitida, ishlab chiqarishda (3) chiqarish - yangi foydalanuvchilarga asta-sekin yangi versiyani bosishga imkon berishlari mumkin. masalan, butun sharqiy qirg'oq) va o'zingizga etarli darajada ishonch hosil qilganingizda, eski versiyasini yo'qotishingiz mumkin

Diqqat qilish kerak: 2019 yilda to'liq kanareyk joylashtirilishini amalga oshirish hali ham juda qimmat, chunki u marshrutizatsiya va monitoring kabi ko'plab infratuzilma qismlarini tashkil qilishni talab qiladi. Shuning uchun, oddiy va yarim qo'lda kanareykni joylashtirishni boshlashni ko'rib chiqing (masalan, monitoring ko'rsatkichlari asosida yangi mashinani qo'lda ko'paytirish).

Misollar:

  • Canary relizlari haqida ko'proq bilib oling
  • Agar siz kanareykani joylashtirishni tasavvur qilishni istasangiz, Spinnaker bu kuchli ko'rinishga ega platforma.

13. Kubernetes dunyoni yeb yubordi

Aniq tendentsiya, qisqartirilgan narsa: Kubernetes (K8S) - bu tarmoqlarni uzatish, tarqatish, tarqatish va boshqa magistral xizmatlarini uzluksiz ta'minlaydigan amaliy komponentlar uchun infratuzilma, deyarli amaliy dasturlarni qabul qilish uchun amalda standartdir. Uning mashhurligi ajoyibdir: barcha bulut sotuvchilari tomonidan qo'llab-quvvatlanadigan, kengayishning yagona echo tizimiga ega, hatto korxonalarning 54% da kamida bitta K8S klasteri mavjud. Agar siz yangi boshlovchi bo'lsangiz, ushbu havola tanish-bilishlarning umumiy ma'lumotlarini taqdim etadi. K8S bo'yicha birinchi qadamlaringiz allaqachon bajarilganmi? Istio, K-Native, Kuberenesning ish joylari, ichki ko'rinishi, tarmoq siyosati, Helm, Scaffold bilan tanishganingizga ishonch hosil qiling. Pastki qator: K8S ko'nikmalarini rivojlantirishga sarflagan har bir soatingiz o'zingizni to'laydi

14. Blockchain texnologiyalari juda katta imkoniyatlarni o'zida mujassam etadi

Aniq tendentsiya, qisqartirilgan narsa: nafaqat Bitcoin va kripto funktsiyalari uchun, balki blockchain-larni har qanday taqsimlangan tizim bilan ishlash operatsiyalarida ham ishlatish mumkin.

15. Qattiq mashina o'rganish ko'nikmalariga ega bo'ling yoki hech bo'lmaganda bu haqda oqilona gapiring

Aniq tendentsiya, qisqartirilgan narsa: Bu erda ko'p narsa qo'shilmaydi, ehtimol bizning davrimizning etakchi tendentsiyasi. Afsuski, men mashinalar kutubxonasiga befarq munosabatda bo'lmoqdaman va 2019 yilga mo'ljallangan maqsadim hech bo'lmaganda bu haqda oqilona gapirish va tez yutib olish imkoniyatlarini aniqlash uchun qulaydir (masalan, tensorflow.js va brain.js kabi JS kutubxonalari, kuchli infratuzilmani yaratmasdan taqdim eta oladigan narsalar) )

16. Tanlangan ochiq manbali kutubxonalar kodini ko'rib chiqing

Aniq tendentsiya, qisqartirilgan narsa: ehtiyot bo'ling, bir xil texnologiyalar to'plamidan foydalangan holda uzoq vaqt davomida bitta loyihada ishlash sizning tasavvuringizni toraytiradi va ajoyib alternativalarni yashirishi mumkin. Boshqa loyihalarni tez-tez, asosan muvaffaqiyatli ochiq manbali loyihalarni tadqiq qilishga intiling.

17. Linux OS tushunchangizni yaxshilang, Linux jarayonining anatomiyasiga e'tibor bering

Qisqartirilgan element: Linux jarayonini tushunish sizga haqiqiy raqobatdosh ustunlikka ega bo'ladi, chunki u rivojlanish, kuzatish jarayonlari (masalan, qayta boshlash), Docker bilan ishlash, yoqimli o'chirish va boshqa ko'plab vazifalarga ta'sir qiladi. Jarayon, signallar, ruxsat berish modeli, umumiy buyruqlar, jarayonlar turlari va boshqalarni hayotiy tsiklini tushunishga intiling. Ushbu darslik ko'pgina asoslarni o'z ichiga oladi

18. Node.js ichki qismiga chuqurroq kirib boring

Menga Rayan Dalning (Node.js v0,1 dasturini yaratuvchisi) iqtibosni yoqtirish juda yoqadi: "Siz hamma narsani hech qachon tushuna olmaysiz. Ammo, siz tizimni tushunishga o'zingizni majburlashingiz kerak ”. Asosiy mashina haqida chuqur tushunchaga ega bo'lish, tukli ishlab chiqarish bilan bog'liq muammolarni hal qilish yoki ba'zi bir infratuzilma tarkibiy qismlarini loyihalash zarur bo'lganda (masalan, voqea jarayonining monitoringi) qimmatli ekanligi isbotlanishi mumkin. Siz v8 va libuv kabi asosiy qurilish bloklari bilan allaqachon tanish bo'lishingiz mumkin. Node.js quyon uyasi bo'ylab sayohatingizni chuqurlashtirish va, masalan, har bir livuv voqeasi aylanish tsiklida nima sodir bo'layotganini o'rganish uchun 2019 yil ajoyib vaqt emasmi? yoki, ehtimol, operatsion tizim (IO) bilan o'zaro ta'sir qanday amalga oshirilishini bilib oling (masalan, faol qo'llar)?

Misollar:

  • Deepal Jayasekara tomonidan har bir voqea tsiklining ichida nima sodir bo'layotganini tushunib oling
  • Konstantin Tarkus tomonidan C / C ++ kodini NPM moduli sifatida o'rashni o'rganing
  • Yevgeniy Obrezkovning "Node.js" ichki qismini to'liq qamrab olgan ushbu chuqur postga tashrif buyuring

19. Va nihoyat, muhim: ilmiy usullardan foydalanishni o'rganing

Siz o'rgangan va ichkilashtirgan narsalar kelajakdagi martabaingizni shakllantiradi. Shunga qaramay, ko'plab ishlab chiquvchilar na o'rganish strategiyasiga ega, na ilmiy usullardan samarali foydalanishni o'rganadilar. "Javascript tipidagi xatolarni oldini olish" haqida uchrashuvni ko'rib chiqing, VP butun kod bazasini qayta yaratmasdan vanil JavaScript-dan foydalanishni davom ettirishni so'raydi (Typecript yo'q ...), to'satdan sizning hamkasbingiz Facebook oqimidan foydalanishni taklif qiladi, xonadagi hamma buni yoqtiradi! To'satdan siz bu haqda bir marta o'qiganingizni eslaysiz, lekin u hech qachon ichkilashtirilmagan va shunchaki ongingizga singib ketgan. Qanaqasiga? Ko'rinishidan, "kompetentsiya xayolparastligi" deb nomlangan hodisalar bor, chunki biz nimani unutamiz: Siz blogni o'qishga 1 soat vaqt sarflashingiz mumkin, lekin siz o'zingizni aldayapsiz va bir necha kun ichida hech narsani eslay olmaysiz! Tadqiqotlar shuni ko'rsatdiki, agar siz bu haqda keyinroq kimdir bilan gaplashmoqchi bo'lsangiz yoki ertasi kuni shunchaki xulosa o'qib chiqsangiz, ushbu kontseptsiyani yodlash imkoniyatini sezilarli darajada yaxshilaysiz. Sizga kerakli bilimlarni kerakli vaqtda eslab qolishga va o'z vaqtida tortib olishga yordam beradigan turli xil texnikalar mavjud (quyida keltirilgan misollarga qarang), qanday qilib o'rganishni o'rganishga bir necha soat sarflash 2019 yilda martaba uchun katta foyda keltirishi mumkin!

Misollar:

  • "Qanday qilib o'rganishni o'rganaman" ajoyib kursiga boring
  • O'rganish paytida chunking va kategoriyalardan foydalaning
  • Ba'zi yangi texnologiyalar haqida o'qiysizmi? O'zingizni tanish bo'lgan narsalar bilan taqqoslang, bu haqda jamoadoshlaringiz bilan gaplashing, o'zingizga "nima uchun" savolini so'rang - nima uchun bu kerak, diagramma tuzing, xulosani qayta o'qing va miyangizni uni ichki va tasniflashga yordam bering. siz uni muhim vaziyatda qo'lga kirita olasiz!

Rahmat. Sizga yoqishi mumkin bo'lgan boshqa maqolalar

  • Tekshirish ro'yxati: Node.js ishlab chiqarishning eng yaxshi amaliyotlari (2018 yil avgust)
  • Node.js xavfsizlikning eng yaxshi amaliyotlari (sentyabr 2018)
  • YouTube: sinovning ilg'or va yorqin 5 usuli
  • Node.js eng yaxshi amaliyotlar - mustahkam Node ilovasi uchun 77 ta eng yaxshi amaliyotlar

More Ko'proq narsani xohlaysizmi? meni Twitter-da kuzatib boring