Галоўная / Артыкулы / MERN Stack проты разработкі Full Stack: як выбраць, што вучыцца

MERN Stack проты разработкі Full Stack: як выбраць, што вучыцца

Раз’ясніце розлік меж MERN і падчырвонага стэка: што означае кожны з іх, хто павінен пачаць з MongoDB–Express–React–Node, распашчытныя падступкі пад час навучэння, і што насправды важліва пад час працевучэння.

1738 слоў

Форумы працэвучых періядычна паднімаюць знайомы вопыт: выучыць стак MERN чы ўзагалі «розвіваць навыкі full stack»? Адні кажуць, што MERN вже ўважаецца full stack; іншыя спроцвачваюць проты; у такіх дыскусіях рэдкая час раз’ясняе правільны выбор.

Гэта плутанне зрозумела. У повсякдзеннай розмове гэтыя терміны вважаюцца синонімамі. Аднак якщо вы плануеце месяцы навчання, а не проста ведзеце дыскусію, разлік мае значэння.

Короткая версія: разработчык на стаке MERN — это разработчык full stack, які спеціалізуецца на аднай набораў інструментаў. Развіць навыкі full stack — це шырэйшыя навыки; MERN — адні з популярных спосабоў ўжывання іх. Ні адна з гэтых паходзей не є універсальна «лепшай» — гэта залежыць ад таго, што вы хочаце стварыць і дзе хочаце працаваць.

Чаму людзі ўзагалі плутаюць іх

Абавісы працы частка спячваюць гэтую неяснасць. Заглавле на кшталт «Разработчык full stack (MERN)» частацай ніколі не адгрунтаванае, што такое full stack; ёна проста перыядначвае MongoDB, Express, React і Node. Чытальнікі тады спрыягаюць катэгорыю і методы реалізацыі як адно і тое ж.

Падобнае парадыгма між кухаром і італійскім кухаром дапамагае. Кожны разработчык MERN выкарыстоўвае тэхналогіі full stack. Але не кожны разработчык full stack працуе з тэхналогіямі MERN.

Што на самай працэ значыць разработка full stack

Full stack — гэта загальны тэрмін, які аб’ядначае інтерфейс, які бачыць корыстувальнік, логіку сервера і надзеяныя сховышчы даных. Гэтая ролі не прыкрепленае да адной групы мов. Залежна ад працодавца, гэта можа значыць:

  • Python з Django або Flask на сервере, React або Vue у браузеры
  • Java з Spring Boot разам з Angular
  • Ruby on Rails, якае выкарыстоўваецца ў обох шарах без часткавага раздзелення
  • PHP і Laravel, якія задаюць адчуванне цэлага інтерфейсу
  • Node і Express з базайтом дадзеных SQL заместо дакументаў

Спакойныя навыкі — это парадокс заявкі: ад браузера да сервера, да базайна дадзеных і знову назад, а таксама возможнасць стварання та дыягностыкі ціх крокаў ад пачатку да канца.

Што на самай працэ ёсць MERN Stack

MERN — адна з конкрэтных камбінацыяў у межах гэтага падходу: MongoDB, Express, React і Node, усе яны заснованы на JavaScript. Самэ ўжо тое, што всё адбываецца на однай мове, являецца ўласнасцю гэтага падходу. React адпавядае за UI; Express і Node — за API; MongoDB зберагае гнучкія дакументы у формате, які ўзгодны з JavaScript.

  • MongoDB — базайн дадзеных дакументаў, прыемны для выкорыстання з самага пачатку
  • Express — лёгкі фрэймворк Node для HTTP API
  • React — бібліятэка, якая стварае інтэрактыўны UI
  • Node — среда выканання, якая запускае JavaScript на серверы

Пакет JavaScript застаецца ў самай сэрвісной часты, таму для реалізацыі функцый не трэба так часта зміняць мову, як у сэтапах React-plus-Python або React-plus-Java. Такія комбінацыі таксама ўважаюцца «полнымі пакетамі»; проста ў яных іншы спосаб развантажэння памяці мозга.

Керавальнікі з працеваям, якія практыкуюць паспраўкі на вакансіі «полны пакет», зазвычай шукаюць можлівасць керавання всім процесам ад початку да канца, а не прысягу на вернасць аднаму постачальніку. Калі абавесці сфокусаваны на MERN, то це означае прагненне да вольнае роботы з JavaScript і знання модэляў дакументаў. Калі абавесці застаюцца загальнамі, то часта гэта сигналізуе пра тое, што існуючыя сервісы компаніі вже выкарыстоўваюць іншую мову для бэкенду, і што час адучэння новых спецыялістаў мае большое значэнне, чым якая-небудзь популярная комбінацыя мов.

Практычныя наследкі для учняў — это правільная архітектура працы. Вважайце «full stack» кінцэвай метай — адстежэнне запытоў, аутанізацыя, верыфікацыя, міграцыі, развёртыванне — а MERN — майданчыкам для навучэння, які можа выучыць гэтыя навыкі за дапамою адной синтаксі. Якщо у праглядача працодавца вже ўжо Spring або Django, тым не менш спачатку выучыце базовыя принцыпы; пасля чаго перакладзіце тыя ж абавязкі на специфіку гэтай тэхналогіі.

То каторую ж тэхналогію вам на самай справе выучыць?

Не існуе універсальнага пераможця.

Адначасова вучыце MERN, калі хочаце швайнасцю і сфокусаванасцю працаваць над стварэнням цэлых дапрацоўкаў, не пасвячаючы час на вивучэння розных мов. Багато стартапаў выбіраюць MERN, і дзеякія серйозныя проекты часта даўають учням можлівасць быстрэй падготавіцца да спраўачаў, чым якшы бы вони дзелялі час между двума мовамі адразу.

Лепшае выбаранне — адукацыя па шырокай сумке тэхналагій, калі вы працуеце з вялікімі падпрыемствамі чыстаю промысламі, дзе домінуюць Java, Python чыста .NET — фінансы, охорона здароў’я і вялікі рытэль часта выбіраюць такі падход. Там возможнасць выкарыстоўваць тое, што вже існуе ў командзе, можа ачыняць больш шансоў, чым прыкрепленне да аднаго конкрэтнага комплексу тэхналагій.

На практыцы багато людзей выпрацовваюць аба падходы поспяроўна: спачатку вони выкарыстоўваюць MERN, каб створыць готовы продукт, а потым дадаюць другі язык для бэкенду, калі вже є чыткая архітектурная модэль. Синтаксіс рэдка калі быў найвялікшым вызамом; разуменне таго, як работаюць разныя слойвы, дапамагае перейсці з аднай сумкі тэхналагій на іншую.

Дзе люди застрэліваюцца, незалежна ад выбранага падходу

Формы неудач схожыя як для спецыялістаў па MERN, так і для ўзнавальнікаў:

  • Прыступленне да React раней, чым будуць адчуваемы навыкі ў HTML, CSS і базовам JavaScript
  • Вучэнне MongoDB, Express, React і Node як чатырох адзелёных тэм у замяне на адны цілысны процес розробкі
  • Ніколы не выкладзецца, таму нічога не доходзіць да рэальных корыстнікаў
  • Самастая борацца з багамі пасля паўнай ночы і втрачаць тыяжкі адзін усіх тыдняў працы
  • Кожныя калькі зменшваць тэхналогічныя стакі, шукаючы найновейшыя інструкцыі
  • Зазвычай гэта проблема структуры, а не нехватка талантам — тая ж пастка, якая спакоюе багацько самаўучныхся разработнікаў, якія працуюць з цэлымі тэхналогічнымі стакамі.

    Практыка выкладзення праекта заслуговае на ўпэўненую увагу. Локальныя дамы на localhost не паказваюць проблем з CORS, секрэтных даных среды, менеджераў процэсаў чы зворачных проксі. Выкладзенне нават маленькага дапыту MERN на безкоштовным чы недорогім хосте — і налаштаванне рэальнага URL базы дадзеных — даёць можлівасць пазнакоміцца з спосабамі абыякавасці, якія ігнаруюцься ў інструкцыях. Той жа трэнінг на стаку Python чы Java даёць аналогічныя урокі; пашлях MERN проста адмаўляе зміны мовы, пакуль вы вучыцеся пра аспекты эксплуатацыі.

    Час падтрымкі таксама мае значэнне. Нераспрацаваны баг у паловай ночы можа знішчыць тыдзень мотывацыі. Аб’яднання, часы адпаведзення на запиты чы ўзьяточны кансалтінг, які дае адпаведзення за калексы гадзін, дапамагаюць прагрэсу застаўацца у росте. Пасыўныя бібліятэкі курсаў без такога цыклу адзывоў выглядаюць дешавей, пакуль месяцы праходзяць без рашэння таго ж нераспрацаванага бага.

    Хто на самай працы выгадвае, вучыўшыся па гэтым шляху

    Студэнты колледжаў досягаюць прыбутку, выбіраючы певную тэхналогічную стаку — MERN чы іншую — задоўга до заканчэння навучэння, а не праганяючы матэрыял наперадод знаходжэння работы.

    Няўпрацаваючыя выпускнікі і тыя, хто шукае работу зазвычай патрэбуюць як навыкаў разрабоцтва, так і практыки для спраўэйвання, якіх рэдка можа дастаць сама атестатная кніжка.

    Людзі, якія меняюць кар’еру часта выбіраюць MERN, таму што наявнасць адной мовы ў ціх тэхналогіях скарочвае час на павторнае навучэнне, калі трэба справляцца з іншымі обавязкамі.

    Професіялы, які працуюць выкарыстоўваюць гэты шлях, каб адыходзіць ад вузкай спецыялізацыі — пераходзячы з чыстага фронтэнду або чыстага бэкэнду да ролей, якія абарачваюць усю структуру системы.

    Што насправды дапамагае людзям быць прыjęтымі

    Патэрны павтараюцца ў розных техналогічныя стеках. Самастроеныя проекты кращы за клонаванні з туторыяў; спэцыялісты з адбору зазвычай быстра бачаюць разліку. Паспяшнае поясненне таго, як запит праходзіць через усю систему, мае большое значэнне, чым проста запам’ятаванне сінтаксису функцый або мідлвэра. Дапамога ў реальны час, калі вы патрапляете у скрутную ситуацыю, кращая за пасіўнае перагляданне відеа, і часта вялічыць шансы на тое, што чалавек даканчуе свой шлях у професіі, а не здаеся за два месцы.

    Якасць портфеля важлівейшая за колькасць. Тры запусканыя прыклады програм, якія дэманструюць механізмы аутентыкацыі, оперэйшныя задачі CRUD над значамымі данымі, а таксама рашэння складных задач з станамі інтэрфейсу, маюць большую ценна, чым дзесять напаловыя копій. Напісці короткі файл README, у яком будуць пояснены выборы, якія вы зробілі — чаму падходзіў MongoDB (або не падходзіў), як вы структуравалі маршруты Express, як буў контролюваны стан у React — каб спакусчыкі бачылі вашу здатнасць да адпаведальнага прыняття рашэння, а не толькі скріншоты.

    Для тых, хто часта меняе проекты, захоўвайце календарныя блакі так, як захоўваеце зустрэчы з кліентамі. Эпізоды пазніх ночных роботаў рэдка калі маюць значны эфект; адносна короткія, рэгулярныя сесіі з цэлью выпуску кожную недзелю маюць большы эфект. Спалучыце гэты прыкмет з публічным адступненням у працы (хронікай змян, пастакай у блогу чы то короткі відэа-дэманстрацыя), каб адпаведальнасць была зовнішняя, а не толькі внутрашняя.

    Тое, чаго ніхто насправды не гаворыць ваголасна

    Учаснікі, які найбольш заўсёды патрабуюць часткавай структуры — няўыпускнікі без фінансавага запасу, тыя, хто зміняе професію і рызыкуе, а таксама прафесіялы з обмежаным бюджэтом, — часта вынушваны платіць за весь курс заздалегідь, без якіх-лебе гарантый працавання. эта ситуацыя пакладае майже весь рызык на студэнта. Якшо прадаўцы службы веруе ў рэзультаты сваіх курсаў, то справядлівае запытацца, чы роздзеляе ён гэты рызык.

    Дзе падходяць моделі адучэння, пры якіх результаты маюць значэнне

    Дзеякі курсы намагаюцца заполніць гэты прыемак за дапамогою часткавых платежаў: незначная частка плаціцца заздалегідь, а рэшта — толькі пасля працавання (у джэронале наводзіцца спяважанне 35% / 65%). Такая структура можа існаваць толькі тады, калі працоўнае прасаджэнне є рэальным, незалежна ад таго, чы мета навучэння — працаванне з техналогіямі MERN чы болей шырокія задачы у сфере full stack.

    Парадоксальна, але правды — кроме граматычнага падзеўлення платных курсаў, корыстныя програмы зазвычай аб’еднваюць жывую наставніцтво ад людзей, якія стварылі цэлыя системы, проекты, якія перастаюць быць проблемай пасля спрашанняў кандыдатаў, а таксама падтрымку у працаванні, якая ўжо ўключена ў сам курс, а не дадаўнае пасля яго. Для студэнтав, тых, хто шукае першую работу, тых, хто меняе сферу дзеяння, і професіоналаў, якія розвіваюць свае навыки, такая сумешанасць можа зменшыць фінансавую трывогу, якая супакоўваеся па выбору.

    Пры ацэнкі будзь-якага платнага курсу трэба запытацца пра няўздалёк завершаныя курсавыя групы, а не толькі пра сярэднія показнікі з маркетынгу. Яснаць, што значыць «знайшоў работу» (працавае на пэўны час, стажыраванне з дапамогай, трываласць контракту) і якія технологіі на самай працы фактычна выкарыстоўваюць выпускнікі. Курсавая програма, якая спачатку фокусуецца на MERN, а пазней прадстаўляе SQL, тэставанне і ўзельны варыянт бэкенду, дае больш можлівасцей для перанесення навыкаў, чым програма, якая не выходзіць за межы аднаго туторыяльнага репозітарыю.

    Самостайныя учніцы і учні могу апрыксаваць частыя элементы такой структуры: прыўязвацца да групы для навчання, планаваць ўсё тыя ж апрантажы кожны тыдзень, ведаць журнал з апісамі проблем, а таксама выбіраць проекты, якія вымагают аутентыкацыі, заваносу файлоў чы роботы на фоне. Мета застаецца тая ж, незалежна ад таго, чы є плата за навчанне — трэба завершыць роботу над проектамі, а не проста ўсё пачаць.

    Частыя запитанні

    Чы MERN і «полны стак» абозначаюць тое ж паводзе? Работа з MERN таксама значыць адпаведальнае керуванне інтерфейсам, API і дадзеннямі — таму гэта належыць да категорыі «полны стак», але гэты термін абазуецца на конкрэтным квартэті тэхналогій JavaScript (MongoDB, Express, React, Node), а не на всіх можлівых комбінаціях тэхналогій.

    Чы MERN простейшы за «звычны» полны стак? Для багацох пачатківаўцаў — так, галоўная прычына тая, што JavaScript викорыстоўваецца як для стварэння інтерфейса, так і для роботы на сервере, таму не патрэбны додатковыя мовы для з’ўязку між разнымі слоямі.

    Чы рэклікаецца дыплом па інформатыцы? Не. Багато працуючых разработнікаў вырастаюць за дапамою курсавых табораў, самастойнага навучэння або структураванай наставніцтва.

    Пачаць з MERN чы спачатку прабавіць іншыя камбінацыі? Пачатак з MERN ўжо стаў стандартам, тым болей што за дапамою яго можна якнайшыльнейша реалізаваць готовыя проекты. Дадаць ўжо адну мову для бэкенду пазней будзе простае, калі вже з’явяцца абразы архітектуры.

    Чы професіялы можаць навучацца праз адно час з працэйвай дзеяльнасцю? Так — асабліва калі заняткі гнучкія і не прыкрепленыя толькі да гадзінакоў дня.

    Уснароджанне

    MERN проты full stack — гэта не так сабрало “альбо-альбо”, як “з чаго пачаць”. Кожны разработнік, які ведае MERN, таксама можа працаваць з full stack; MERN — это спецыялізаваны падход да JavaScript для адкрыць гэтых навыкаў. Патрэба ў людзях, якіе можаць кераваць усім жыццёвым циклам прыкладнага програмнага забезпечэння, застаецца вялікай.

    Выберыце пачатковы стак, які падходзіць вашым метачыным работодчыкам, адправляйце рэальныя проекты і валічыце структуры навучэння, якія захоўваюць чыстасцу рызыкаў і ціклавае адгукаванне — незалежна ад таго, чы то самастоятельная практыка, чы програма наставніцтва з яснымі стимуламі за рэзультаты.