Veb dasturchisi bo'lishni xohlaysizmi? Node.jsni PHP emas o'rganing

bu metafora ... menimcha

Ushbu maqolaning to'liq versiyasini endi bu erda topish mumkin!

Mening o'quvchilarim tomonidan eng ko'p uchraydigan savollardan biri bu "Qanday qilib o'z kursingizda PHP emas, balki Node.js-ga dars berasiz?" Odamlarga "menga ishon, men sohada ishlayman" deyish etarli emas. Node.js-ni kursga kiritishimning sababi va kelgusida dasturchi sifatida sarmoya kiritmoqchi bo'lsangiz, PHP-ni terishingiz kerak. Ushbu ikkalasini namuna sifatida ishlatgan bo'lsam ham, ushbu maqolada men sizga dasturchilar karyerangiz davomida qanday vositalarni, dasturlash tillarini, ramkalar va kutubxonalarni o'rganishingiz kerakligini aniqlash uchun asosni ko'rsataman.

Ishlab chiquvchi sifatida cheklangan vaqtingiz va manbangiz bilan ushbu sarmoyadan eng katta daromad olish uchun vaqtingizni nimaga sarflash to'g'risida qaror qabul qilishingiz kerak.

Endi siz o'zingizga shunday savol berishingiz kerak: men kelajakdagi kareramdagi bilimlar, maosh va mamnuniyat nuqtai nazaridan eng katta qiymatga ega bo'lgan o'rganishga qancha vaqt va kuch sarflashim mumkin?

Bu eng oson yo'lni tanlash degani emas. Bu sizga kelajakda raqobatdosh bo'lib qolishga imkon beradigan vositalarni tanlashni anglatadi, shuningdek, katta dasturchi bo'lish uchun o'z mahoratingizni rivojlantiradi.

Ushbu maqolaning xulosasida, agar siz quyida keltirilgan tahlillardan foydalangan holda veb-dasturchi bo'lishni istasangiz, men 2018 yilda tavsiya qilgan barcha texnologiyalarni topasiz. Bilasizmi, agar sabrsiz bo'lsangiz, oxirigacha o'ta olasiz. Aks holda, adolatli savdo-sotiqni, muhabbat bilan qurilgan, erba turmush o'rtog'ining choyini olib, aql bovar qilmaydigan sarguzashtga boraylik.

Ushbu lavozimda biz tahlilning ikki turidan foydalanmoqchimiz: Ish istiqbollari tahlili va texnik tahlil. Qani boshladik:

manba: https://vizteck.com/blog

Node.js vs PHP - Ish istiqbollarini tahlil qilish

Ushbu tahlil uchun biz Stackoverflow dasturchilar so'rovi va LinkedIn-dan foydalanamiz. Shuningdek, biz faqatgina veb-ishlab chiqish bilan bog'liq texnologiyalarga e'tibor qaratamiz.

Mashhurlik:

Beshinchi yil ketma-ket eng ko'p ishlatiladigan dasturlash tili JavaScript edi. Python-dan foydalanish PHP-ni besh yil ichida birinchi marta bosib o'tdi. Node.js bu erda qayerda? Node.js - bu javascript ish vaqti. Texnik bo'lmagan tilda: Node.js - bu Javascript-dan foydalanish usulidir, xuddi server tomonida PHP-ni ishlatishingiz mumkin. Hozirda Node.js-ni Javascript deb o'ylab ko'ring.

Ko'rib turganingizdek, Node.js va Javascript eng yuqori o'rinni egallaydi, PHP esa unchalik mashhur emas.

Besh yil ichida Stackoverflow dasturchilar so'rovnomasida ma'lumotlarni to'plashda, ular Javascript va Node.js kabi tillar ommaviylashib borayotganligini, PHP kabi tillardan foydalanish esa qisqarib borayotganini ko'rishdi.

React - bu dasturchilar orasida eng ko'p sevilgan, ammo Node.js eng ko'p qidirilgan va ikkinchi eng sevilgan:

Ish haqi va imkoniyatlar:

Quyidagi diagrammadagi ko'k chiziq ostida keltirilgan tillar, masalan Go, Rust va Clojure kabi tillarni ishlatadigan ishlab chiqaruvchilarga qancha tajribaga ega ekanliklariga qarab ko'proq pul to'lanadi. Ko'k chiziq ostidagi tillarni PHP kabi ishlatadigan ishlab chiqaruvchilarga hatto ko'p yillik tajribadan kam maosh oladi. Ushbu diagrammadagi doiralar hajmi, boshqalar bilan taqqoslaganda, ushbu tilni ishlab chiquvchilar qancha ishlatayotganligini anglatadi. PHP sezilarli darajada ko'p yillik tajribaga ega bo'lgan ishlab chiquvchilarni kamroq va kamroq qiziqtiradi.

LinkedIn Jobs-da siz butun dunyo bo'ylab Node.js ishlab chiqaruvchilari uchun e'lonlarni joylashtirish PHP ishlab chiquvchilaridan qariyb 10 000 marta yuqori ekanligini ko'rishingiz mumkin. Shunga qaramay, Node.js PHP bilan solishtirganda ancha yoshroq texnologiya va PHP Internetdagi barcha veb-saytlarning 30% quvvatlaydigan Wordpress-dan foydalanilganiga qaramay.

Va nihoyat, siz mintaqalar bo'yicha texnologiyalar uchun o'rtacha ish haqini ko'rishingiz mumkin (men quyida Umumjahon yorlig'ini kiritmaganman, chunki PHP bu erda ham yaratmagan):

Shunga qaramay, biz bu erda PHPni buzmayapmiz. Biz faqat nimani o'rganishni tanlashni tanlash uchun raqamlarga qarab chiqmoqdamiz. Bu Javascript va Node.js kabi boshqa texnologiyalardan keyingi o'rinlarda aniq turadi.

YANGILASH: Postni bo'shatgandan beri, stackoverflow 2018 yilgi so'rov natijalari bilan keldi. PHP-ning pasayishi o'sib bormoqda.

Hukm:

Mehnat bozori va Node.js-ning ommalashishi ortib borgan sari PHP-ning ommaviyligi kamaymoqda. Umuman olganda, PHP ishlab chiquvchilariga boshqa ishlab chiquvchilarga qaraganda ancha kam maosh to'lanadi va tendentsiya tobora kengayib boraveradi.

Node.js vs PHP - Texnik tahlil

Keling, har bir texnologiyaning ijobiy va salbiy tomonlarini ko'rib chiqaylik.

Node.js Taroziga soling:

  • Mijoz va server o'rtasida real vaqt aloqasini talab qiladigan dasturlar uchun juda mos keladi. Socket.io kabi vositalar chat ilovalari kabi qurilish ishlarini chindan ham osonlashtiradi. Xuddi shu xususiyatlar Node.js-ni hozirgi kunda juda keng tarqalgan IoT qurilmalari (Internet of Things) va Single Page Applications (SPA) ma'lumotlarini qayta ishlaydigan dasturlar uchun mos qiladi.
  • Internetda AJAX so'rovlari bilan juda yaxshi ishlaydigan JSON yordamida tubsiz seriyalash va deserializatsiya.
  • Kirish / chiqish blokirovkalanmagan hodisalarga asoslangan amaliy dasturlar uchun juda yaxshi (I / O bu kompyuter va tashqi dunyo, masalan, ma'lumotlarga yoki ma'lumotlar bazasiga o'xshash boshqa ma'lumotlarni qayta ishlash tizimlari o'rtasidagi aloqa).
  • Siz Javascript-ni, Node.js-ni o'rganasiz. PHP kabi boshqa tilni o'rganishingiz shart emas. Buning ma'nosi shundaki, siz o'zingizning barcha kuchlaringizni Javascript-ni juda yaxshi o'rganishingiz va uni o'zlashtirishingiz uchun sarflashingiz mumkin. Siz old va orqa kodni bitta tilda yoza olasiz.
  • React, Vue va Angular kabi ko'plab mashhur mijoz ramkalari zamonaviy brauzerlarning asosiy tili bo'lgan JavaScript-da yozilgan. Node.js-server serveridan foydalanganda, dasturni ishlab chiqish stakasida bitta skript tilining barcha afzalliklari mavjud. Old va orqa tomonda bir xil tilni bilish barqarorlikni ta'minlash uchun juda yaxshi: Bu sizning guruhingizning barcha a'zolari o'rtasidagi ishni sizning arizangiz uchun osonlashtiradi, chunki har ikkala interfeysni ham ishlab chiquvchilar ham bir xil JavaScript ma'lumotlar tuzilmalari, funktsiyalari va til konvensiyalari bilan ishlaydi.
  • Yagona tishli hodisalar boshqaruvi tizimi mijozlardan bir vaqtning o'zida ko'plab so'rovlarni qabul qilishda juda tezkor.
  • Har doim o'sib boradigan uchinchi tomon kutubxonalari va to'plamlari NPM orqali mijozlar va serverlar uchun foydalanish mumkin, shuningdek veb-ishlab chiqish uchun buyruq satri vositalari mavjud. Bunga qo'shimcha ravishda, ularning aksariyati GitHub-da joylashgan bo'lib, u erda siz muammo haqida xabar berishingiz yoki uni o'zingiz sozlashingiz uchun kodni o'zingiz tayyorlashingiz mumkin.
  • Bu Javascript bilan bog'liq vositalarni va veb-ishlab chiqaruvchilar bilan bog'liq boshqa vositalarni, shu jumladan vazifalarni bajaruvchilar, miniferlar, linters, formatlovchilar, preprosessorlar, to'plamlar va analitik protsessorlarni ishlatish uchun standart muhitga aylandi.
  • AWS Lambda kabi ko'plab yangi API va xizmatlarda mahalliy qo'llab-quvvatlandi.
  • Biz N8.js-ning ustiga o'rnatilgan Google-ning JavaScript-tarjimoni bo'lgan V8-ning barcha ko'rsatkichlarini olamiz. Google-ning muhandisligi V8-da doimiy ravishda yaxshilanib borayotganligi sababli, Node.js ushbu rivojlanishdan bepul foyda oladi.

Node.js kamchiliklari:

  • Yuqorida aytib o'tilgan NPM to'plamlari sizning kodingizni shishirishi mumkin, xavfli bo'lishi mumkin va qaysi paketlar yaxshi ekanligini aniqlash qiyin, chunki variantlar juda ko'p (yuklab olish va GitHub statistikasini ko'rib chiqish bu muammoni hal qilishning bir usuli).
  • Node.js va npm paketlaridan foydalanib, serverlar yaratishning ko'plab usullari. Bu yangi ishlab chiquvchilarni tanlashni qiyinlashtiradi.
  • Og'ir protsessor iste'mol kodiga bog'liq bo'lgan serverlar uchun mos emas (ya'ni tasvirni qayta ishlash yoki saralash kabi og'ir algoritmlar). Umuman olganda, men / u bo'lmagan har qanday narsani CPU iste'mol qiluvchi kod deb hisoblash mumkin. Odatda ko'p tsilindrli server muhiti bu holatda Node.js-dan afzalroqdir (Qaror: agar kerak bo'lsa, protsessorning intensiv qismlarini C dasturida yozilgan dasturga topshirishingiz mumkin).
  • Node asosiy tizim yoki mashinaning barcha yadrolaridan foydalanmaydi. Ko'p yadroli protsessorlardan foydalanish uchun siz o'zingiz mantiqiy yozishingiz kerak. Bunga ko'p jihatdan erishish mumkin, ammo buning uchun biroz ko'proq mehnat talab etiladi (bu tizimning protsessor sarfini maksimal darajada oshirishga qodir bo'lganingizda juda qulaydir).

Node.js hukm:

Node.js bir vaqtning o'zida juda ko'p ulanishga ega bo'lgan dasturlarga juda mos keladi va har bir so'rov uchun juda kam sonli protsessor tsikllari kerak bo'ladi. Bu hozirda Internetda SPA va real vaqtda ilovalar kabi ko'plab ilovalar uchun juda ideal qiladi.

O'rnatilgan asinxron ishlov berish yordamida, bitta protsessor va xotiradan foydalanishni maksimal darajada oshiradigan, kengaytirilgan serverli kodlarga qaraganda bir vaqtning o'zida ko'proq so'rovlarni bajarishga qodir bo'lgan keng miqyosli server-kodni yaratish mumkin.

Node.js juda kam bog'liqlik, qoidalar va ko'rsatmalarni o'z ichiga oladi, ular ishlab chiquvchiga o'z dasturlarini xohlagancha ishlab chiqishda erkinlik va ijodkorlik imkoniyatini beradi. Ishlab chiquvchilar NPM orqali jamiyatdan barcha foyda olish bilan birga o'zlarining loyihalari uchun eng yaxshi arxitektura, dizayn naqshlari, modullari va xususiyatlarini tanlashlari mumkin.

PHP tarozi:

  • Yoshi tufayli kuchli va katta jamoa.
  • PHP-da kuchli veb-saytlar mavjud bo'lib, ularda veb-saytlarni yaratish uchun mashhur platformalar mavjud (ya'ni WordPress, Joomla, Drupal). WordPress kabi CMS (Tarkibni boshqarish tizimlari) bir necha daqiqada blogni yoki elektron tijorat saytini joylashtirishni osonlashtiradi va ishlab chiqmaydiganlarga ularni osongina sozlash imkonini beradi.
  • Ishlab chiqaruvchisiz vositalarni o'rnatish osonroq va SSH va Linux serverlari haqida ma'lumotga ega bo'lmagan shaxslar yoki kichik kompaniyalar uchun afzal. Ko'p sonli PHP dasturlari (ya'ni cPanel) asosiy tugmachalarni bir marta bosish bilan o'rnatilishi mumkin bo'lgan asosiy xosting platformalari tomonidan taklif etiladi.
  • Boshqa umumiy maqsadli dasturlash tillaridan farqli o'laroq, PHP Internet uchun maxsus yaratilgan. PHP brauzerda JavaScript bilan bezovta qilishning hojati yo'q ajoyib echim taklif qiladi, chunki barcha sahifalar osongina yaratilishi va serverda ko'rsatilishi mumkin. Agar siz mijoz tomonidan juda ko'p kodni yuborishni xohlamasangiz, bu foydali bo'ladi. Node.js buni ham qila oladi, ammo echish unchalik oson emas.
  • PHP7 va HHVM (facebook tomonidan qo'llab-quvvatlangan) PHP ishlashida yaxshilandi ... ammo yaqinda HHVM uchun ba'zi yomon yangiliklar.

PHP kamchiliklari:

  • PHP faqat orqa tomonida ishlatiladi. Agar siz mijoz tomonida ishlashni xohlasangiz yoki to'liq dastur ishlab chiqaruvchisi deb hisoblasangiz, siz hali ham Javascript-ni o'rganishingiz kerakligini anglatadi.
  • PHP-da, serverni qattiq ishlov berish va sahifalarni yaratish va ko'rsatish uchun serverga ko'plab so'rovlar Yagona sahifa dasturlari uchun yaxshi tanlov bo'lmaydi.
  • Har bir faol mijoz bitta server jarayonini iste'mol qiladi. Mijoz ulanishlari ko'p bo'lgan ilovalar uchun ideal emas.
  • AWS Lambda kabi yangi API va xizmatlarda PHP-ni mahalliy qo'llab-quvvatlash Node.js-ga nisbatan cheklangan.
  • Bu mijoz-serverning klassik modeliga mos keladi, unda har bir sahifa so'rovi dasturni, ma'lumotlar bazasini ulanishni va HTML-renderlashni boshlaydi. Doimiy ishlaydigan va faqat bir marta ishga tushirishni talab qiladigan Node.js dasturi bilan taqqoslaganda, veb-sayt orqali o'tishda PHP ni sekinlashtiradi. Shu sababli, Node.js veb HTML5, AJAX va WebSockets bilan rivojlanayotgan yangi yo'nalish uchun ko'proq mos keladi.

PHP hukmi:

PHP atrofida katta jamoani o'rganish osonroq. Bloglar yoki yangiliklar saytlari kabi standart echim uchun yaxshi tanlov. U eng ommabop CMS (Content Management System) bo'lgan Wordpress-ning kuchiga ega, bu sizga bloglarni ko'p kodlashsiz yaratishga imkon beradi. Biroq, bu holda oddiy narsa yaxshi sifat emas. Texnologiyani o'rganish qanchalik oson bo'lsa, kimdir maydonga kirib, ta'minot hovuzini ko'paytirishi osonroq bo'ladi va sizning xizmatlaringiz uchun qancha haq to'lashingiz kerak bo'ladi.

Xulosa

PHP Wordpress mashhurligi bilan Web 1.0 davridagi eng yaxshi tillardan biri edi. Node.js 2009 yilda ishga tushirilgan va texnik emas, balki Javascript uchun ish vaqti muhiti. Bu veb-ishlab chiqarishning yosh avlodi chempioni va Web 2.0 davrida ko'proq duch keladigan voqealarga asoslangan, ma'lumotlarga asoslangan, kirish / chiqadigan og'ir dasturlarni yaratish uchun yaxshiroqdir.

Xususan, Node.js-ning asenkron va hodisalarga asoslangan arxitekturasi uni real vaqt dasturlari uchun juda mos qiladi, masalan, ko'plab so'rovlar bir vaqtning o'zida amalga oshiriladigan va mijoz va server o'rtasida juda ko'p orqada va orqada bo'lgan dasturlar. . Wordpresssiz yashash mumkin emasmi? Well Node.js-da o'zining CMS-ga ega bo'lib, u Keystone.js deb nomlanadi.

Doim savdo-sotiq qilishadi. Hech qachon siz barcha muammolarni hal etadigan va sizni ishdan bo'shatish uchun immunitetni kuchaytiradigan o'rganishingiz mumkin bo'lgan bitta texnologiya bo'lmaydi. Biz qila oladigan eng yaxshi narsa bu bizning variantlarimizni tahlil qilish va investitsiyalarga eng yaxshi daromad keltiradigan variantni tanlashdir. Yuqoridagi ish istiqbollari tahlili va texnik tahlilga qarab, aniq g'olibni ko'rishimiz mumkin.

Men Node.jsni tanlayman.

Garchi barcha texnologiyalar o'ziga xos tarzda qo'llanilsa, juda yaxshi bo'lsa-da, biz ma'lumot juda ko'p bo'lgan dunyoda yashayapmiz, biz diqqatimizni va chuqur o'rganishimiz mumkin bo'lgan mavzularni cheklashimiz kerak.

Men o'z kurslarimda bugungi kunda ushbu sohada professional martaba uchun mos bo'lgan metodologiyalarni, shuningdek, Facebook, Netflix, Google va Amazon kabi ba'zi yirik kompaniyalar tomonidan ishlatiladigan vositalarni o'rgataman. Agar siz 2018 yilda to'liq stack veb-ishlab chiqaruvchisi bo'lishni istasangiz, sizga quyidagilarni o'rganishni maslahat beraman.

HTML5
CSS3
Javascript
React.js
Node.js + Express.js
PostgreSQL
va yana bir qancha ...

Siz ular haqida ko'proq bilib olishingiz mumkin 2018 yilda kodni o'rganish haqida mening maqolamni o'qish yoki nol tajribangizdan dastur ishlab chiqaruvchisi sifatida yollanish qobiliyatiga ega bo'lgan onlayn kursimni tekshirish (faqat $ 10.99 kupon kodi bilan: MEDIUMNODE1723)

Sizning fikrlaringiz qanday?

YANGILASh: texnologiyalar bo'yicha munozaralarda ikkala tomonning ham fikri bo'lishi kerak. Izohlarni o'qib chiqishingizni maslahat beraman. Yodingizda bo'lsin, har doim savdo-sotiq bo'ladi va sizning kasbingizda qanday vositalarni ishlatishingiz oxiriga bog'liq. Biz qila oladigan eng yaxshi narsa bu bizning tanlovimiz haqida xabardor bo'lib, ko'r-ko'rona ergashmaslikdir. Va nihoyat, sizning nuqtai nazaringizdan farq qiladigan fikrlarni ko'rib chiqishga tayyor bo'ling.

Buni uzoq o'qiganingiz uchun tashakkur. Agar sizga ushbu xabar yoqsa, uni bir necha marta (50 martagacha) baham ko'ring, sharhlang va bosing. . . Ehtimol, bu kimgadir yordam beradi.

Agar kelajakda siz kabi chuqur va ma'lumotli yozuvlarga qiziqsangiz, meni Twitter va Medium-da kuzatib boring! Aytgancha, mening to'liq ish kunim odamlarga qanday qilib eng samarali tarzda kodlashni o'rgatishdir. Mening kurslarimni zerotomastery.io/courses saytida ko'rishingiz mumkin