Најбољи начин да се научи развој веб страница

Мој претходни чланак је описао како можете ући у фронтенд развој. Такође је разговарано о томе како предњи крај може бити место испуњено нагазним минама - закорачите на погрешно место и бићете преплављени многим оквирима ЈаваСцрипт екосистема.

У овом чланку на блогу, да видимо како можете да уђете у задњи развој. Успут ћу одговорити на нека од најчешћих питања која ми људи постављају о томе.

Шта је Бацкенд развој?

Развој предњег дела укључује оно што корисник види на екрану када отвори одређени УРЛ у вашем власништву. Чак и у потпуно статичном окружењу (са само ХТМЛ / ЦСС), када неко отвори веб локацију, неки сервер на планети мора да вам одговори тим ХТМЛ и ЦСС датотекама.

Тај сервер је само рачунар, баш као и онај који сами користите за прегледавање Интернета. Али прилагођен је за перформансе и нема прикључене непотребне компоненте попут миша или тастатуре. И седи са тонама других рачунара, вероватно у складишту података.

Програмирање тих рачунара на неки посебан начин назива се бацк енд развојем .

Можда мислите да се позадински развој назива оним што јесте јер се одвија иза леђа корисника. Посетилац ваше веб странице никада заправо у потпуности „не приступа“ позадини. Они само комуницирају са вашим сервером, било директно преко портова за врло ограничен приступ (попут преноса ХТМЛ / ЦСС датотека) или чак ни то - закопани дубоко испод ЦДН-а или заштитног зида (попут Цлоудфларе-а).

Сад кад смо сироко разумели шта значи бацк енд развој, уђимо у нека стварна питања.

Да ли је потребно знање о програмирању за позадину?

ТЛДР; Не.

Развој позадине, као што је горе поменуто, укључује програмирање рачунара који вероватно седи на другој страни планете и одговоран је за одговор на оно што корисници кажу са својих рачунара.

Ако сте стални позадински програмер, заправо вам није потребно да се бринете о томе шта се догађа унутар тих ХТМЛ, ЦСС и ЈаваСцрипт датотека које шаљете у прегледач корисника. Уместо тога, морате се више усредсредити на перформансе сервера, код сервера и проток података.

Шта иде у крајњи развој?

Па, прегледавајући књиге, можете рећи да је особа која кодира апликацију која може одговорити на ХТТП захтеве бацк-енд програмер.

Али у стварности, понекад бацк енд програмери могу учинити много више од пуког писања скрипти сервера. Они имају знање за постављање обрнутих проки сервера (НГиНКС / ХАПроки), омогућавање компресије и друге начине за убрзање веб локације и постављање производног окружења за доцкер.

Да бих се квалификовао за бацк енд програмера, рекао бих да су најмање потребне вештине потребне:

  1. Добро знање о програмском језику на којем можете писати ХТТП сервере. Примери: Ц #, Јава, Ноде, ПХП, Питхон итд. (Има их много!)
  2. Управљајте хостовањем користећи цПанел (традиционални) или помоћу басх терминала (цлоуд хостинг / традиционални)
  3. Рад са системима за контролу верзија (ВЦС) попут гит-а за управљање и примену градњи

Као што свака игра долази са минималним и препорученим спецификацијама, и за позадинске програмере моје препоруке би биле (укључујући минималне вештине):

  1. НГиНКС за статичка средства и управљање сервером
  2. Вештине управљања базом података (СКЛ / НоСКЛ)
  3. Сигурност позадине (писање сигурног и робусног кода, покретање апликација у доцкер контејнере са ограниченим привилегијама, заштита од ДоС напада)
  4. Аутоскалирање / балансирање оптерећења

У реду, превише причања о томе шта иде у позадину развоја. Али како то постати?

Почните са минималним захтевима

Као што сам рекао, за позадину, баш као и игре, имамо сет минималних захтева и препоручених захтева. Минимални захтеви се састоје од 3 ствари:

Научите позадински програмски језик

Када људи уче сами, обично немају тим или некога ко може да се бави фронт енд развојем. Сви су сами. Тако ћете често морати да креирате веб странице и сервере сами, бар на почетку.

Иако постоји много избора за позадинске програмске језике, и не могу да се сетим ниједног популарног системског језика који не подржава ХТТП сервере. Предност одабира Ноде-а је у томе што се ваше ЈаваСцрипт способности ЈаваСцрипт-а преносе на бацк-енд.

Без обзира на то, можете бирати између различитих језика као што су Јава, Ц ++, Ц #, Питхон, ПХП итд.

Можда ћете питати како одабрати један. Одговор је исти као и у предњем развојном чланку: прво морате све да испробате и видите који ће са вама најбоље кликнути.

Чвор је лак јер сте можда већ урадили ЈС програмирање за предњи крај. Али ако сте програмер за Питхон или Јава, можда ћете их лако пронаћи. То у потпуности зависи од ваше професије и укуса.

Сазнајте више о управљању хостингом

Прошла су времена када ћете морати ручно да купујете сервере и постављате их у свом дому, повезујете се са својим ИСП-ом, све те ствари радите сами. Ово је доба рачунарства у облаку. Сада, када хостујете своју веб страницу, имате углавном 2 могућности:

  1. Идете на управљане хостинг сервере попут ХостГатор или ГоДадди.
  2. Идете за добављаче услуге хостинга у облаку попут ГЦП, АВС или ДигиталОцеан.

Која је разлика између њих двоје? У оба случаја сервери су у власништву и њима управљају одговарајуће компаније. Али главна разлика је у томе што је управљани хостинг више прилагођен ГУИ-у, има богат скуп алата за прегледање система датотека, надгледање употребе, управљање е-поштом званичних домена, отпремање / преузимање датотека са вашег сервера итд. У основи је то поставка за људе са мање техничких вештина.

Из тог разлога не препоручујем управљане веб локације попут ХостГатор или ГоДадди за искусне програмере. Ипак, можда је добра платформа за грешке и учење на њима, пре свега зато што за њих обично имате претплаћене планове. Имаћете и леп кориснички интерфејс за управљање стварима, који вам не дозвољава да случајно пуцате у своје рачуне.

Али када почнете да убрзавате, препоручујем вам да се пребаците на добављача услуга у облаку. Ово вам одузима све лепе алате са цПанела које сте користили за управљање датотекама и фасциклама на серверима. Али истовремено, изазваће вас да своје вештине много повисите.

Данас многи добављачи облака нуде пристојну бесплатну пробну верзију, тако да можете заиста испробати њихову платформу пре него што постанете пуни. Ја хостујем своју веб страницу за програмере - цодедамн - на ДигиталОцеан и сматрам да је на слатком билансу сложеност сајта и карактеристике.

Ову везу можете користити за регистрацију на ДигиталОцеан и добивање бесплатних кредита од 100 УСД . Примерци ДигиталОцеан су јефтини чак 5 долара месечно, тако да имате писту од око 20 месеци на тој инстанци, сјајно, ха?

У сваком случају, можете одабрати било ког добављача услуга у облаку. Тада је важно научити управљати сервером користећи само командну линију тако што ћете ући у њега.

Сазнајте више о системима за контролу верзија

Постоје и друга решења, осим Гита за ВЦС. Али Гит је најчешће коришћен и најједноставнији за разумевање.

Као појединац, можда то нећете одмах ценити. Али схватићете зашто је то толико важно оног тренутка када започнете да радите у тиму на више функција истовремено у свом пројекту.

Гит вам омогућава да управљате својим током рада користећи обавезе и гране. Урези су попут контролних тачака у вашој бази кодова - оних на које се увек можете вратити ако забрљате.

Подружнице су попут алтернативне стварности вашег пројекта, где би се могло догодити нешто сасвим друго. Ове алтернативне стварности могу се створити у било ком тренутку и могу се поново спојити у било ком тренутку.

Ако се те стварности могу спојити заједно са компатибилношћу, онда је то у реду. Али ако постоји сукоб (на пример ако сте живи у једној стварности, а мртви у другој), онда морате ручно да направите избор. Остале промене могу се аутоматски спојити.

Гит је супер занимљив, а кад се једном тога навикнете, пожелећете да га користите у сваком пројекту. Можете ефикасно да водите историју свог рада (она компримује и чува само разлику између завеза).

Такође вам омогућава да креирате мрежне гит спремишта на локацијама попут ГитХуб-а, који делује као централни извор истине за вашу веб локацију. Сајтови попут ГитХуб-а могу се конфигурисати помоћу посебних веб-кука које заправо могу ажурирати вашу веб локацију сваки пут када додате нову контролну тачку (нови прелазак), а да никада не морате ручно да идете на сервер и сами га ажурирате.

Идите на препоручене вештине

Велико верујем у учење кроз то. А најбољи начин да се нешто уради је из потребе или интереса. Кад се сматрате довољно добрим са минималним захтевима, време је да стекнете препоручене вештине. То укључује све горе поменуте алате попут Доцкера и НГиНКС-а.

ДевОпс је такође нешто што се супер уклапа у бацк енд програмере. Можете покушати да истражите ТрависЦИ или ЦирцлеЦИ за аутоматско постављање градње. Непрекидна интеграција и примена (ЦИ / ЦД) тема је која би могла потрајати још један читав пост на блогу, па нећу улазити у то. У ствари, једном када се правилно постави, уштедећете смешно време за програмере!

Затим долазе базе података, које сам сместио у препоручене вештине. Али требат ће вам базе података за готово сваку апликацију која укључује неку врсту постојаности података коју је генерисао корисник.

Са базама података је обично лако започети рад, али их је теже одржавати и правилно подешавати. Најбољи начин да започнете рад на позадинском технолошком стеку је да имате све заједно на једном серверу - код ваше апликације, обрнуте проки сервере, базу података итд. Тада, како постанете вештији у свакој ствари, можете одвојите га од постојеће пословне логике.

Радећи ово, омогућавате архитектуру која може бити високо скалирана. Апликација која интензивно ради са базом података може имати оптимизирано решење за базе података. А локација ограничена на густ саобраћај треба да има добар ЦДН механизам за истовар статичких средстава итд.

Закључак

Има толико тога за научити, али све је то достижно ако не одустанете. Обавестите ме шта мислите о овом посту путем мог твиттер- а и Инстаграм-а . Много ће ми значити ако се тамо повежемо!

Такође, ако сте заинтересовани, наручите цодедамн - платформу усредсређену на програмере за учење технологија попут позадинског развоја! Чак сам и објавио ИТ видео о окретању вашег једноставног веб сервера за 2 минута! Погледајте то и обавестите ме шта мислите!

Мир!