Първи стъпки с Full Stack Web Development
Тези дни са модерни пълно развитие на стека е много популярен както в малките агенции, така и в по-големите компании със специален технически екип. Инженерите на пълен стек работят върху цяла мрежа от технологии включително интерфейс, бекенд, и управление на сървъри.
Много хора твърдят, че пълният стак води само до това да бъдеш "джак на всички сделки, майстор на нищо". От определена гледна точка това може да е вярно, но уменията са толкова важни, колкото и това, което може да бъде постигнато с него. Много от тях предлагат стойност, защото могат да вземат идея от зачеването до началото, и напълно разбирам всяка стъпка от процеса.
Ако си мислиш за това преминаване на пълен маршрут на стека, тогава тази статия е за вас. Ще обясня общите изисквания на разработчика на пълен стак, каква е ролята и как уменията могат да бъдат полезни за фрийлансери / изпълнители, които искат да работят директно или за клиенти, или за собствени проекти.
Основи на пълен стак
Съвременното развитие на пълен стак е изминало дълъг път, тъй като уеб технологиите са се променили много. Изискванията за пълен стак трябва да се използват като насоки за разглеждане. Най-общо казано "стек" представлява технологията, която работи в унисон да направите уебсайт работа. Това означава интерфейсен код, бекенд код, система от бази данни и платформа за уеб сървър + ОС за сървъра.
Основният принцип на пълното развитие на стека е да се разберат всички аспекти на изграждането на уебсайт. Това не означава познаване на дизайна или работата с UI / UX, въпреки че това може значително да подобри жизнеспособността и качеството на работа.
- Основите на frontend включват HTML / CSS и JavaScript, най-вероятно с a рамка, като Angular или React.
- За бекенд език ще искате да изберете нещо, което може да бъде съчетано със система от бази данни. PHP / MySQL е най-често срещаният и най-лесен за изучаване, защото той захранва много CMS двигатели като WordPress. Също така LAMP стека е безспорно най-популярният уеб стек днес.
- Познанията на сървъра могат да бъдат толкова прости или подробни, колкото искате. Абсолютните основи биха били познаване на сървърна програма Apache заедно с база данни MySQL или PostgreSQL.
- Можете да отидете още по-далеч, за да включите познания за инсталирането на пощенски сървъри или инструменти за производителност, като memcached или Varnish.
Разработването на пълен стек трябва да се използва във всичките три области с достатъчно знания самостоятелно стартиране на уебсайт, и без много помощ от никой друг.
Техническа дълбочина на знанието
Голям въпрос за пълното развитие на стека е колко дълбоко трябва да отидеш във всяка област. Инженерът на пълен стак наистина ли е майстор на всичко? Някои твърдят, че е възможно, но това може да не е целта на пълния стак.
Повечето компании искат да наемат инженери с пълен стак, които имат познания навсякъде. Тези инженери могат да се специализират в една област, но те могат да изпълнят всяка роля, когато е необходимо.
Устройствата, които започват по този път, трябва играят наоколо във всички области, научавайки "достатъчно", за да решават проблемите, когато възникнат. Това дава интерпретация в реалния свят на технологиите, за да се види как различните проблеми се прилагат към реални проекти.
Най-голямата полза от пълното кодиране на стека е възможността за изграждайте свои собствени приложения без да работи за никой друг.
Ако научите всеки етап от процеса на развитие, можете да направите всичко сами. Не е нужно да сте майстор на PHP, за да създадете приложение по избор на Laravel. Не е нужно да сте JavaScript гуру, за да създадете гъвкава падаща навигация, особено сега, когато имаме толкова много отворен код, наличен в мрежата.
Колко дълбоко трябва да отидете в някоя от тези области? Това зависи изцяло от вас и отговорът ви вероятно ще се промени с течение на времето.
Но когато първо започна, просто отидете достатъчно дълбоко, за да приложите това, което сте научили в истински проект. Когато се натъкнете на нещо, което не разбирате, използвайте го като възможност да отидете по-дълбоко, и научете повече за тази конкретна тема.
Избор на езици
Това е малко загадка за новия разработчик да избере кои технологии да научат. Отстраняване на нуждите от пътя, HTML и CSS са абсолютно необходими. JavaScript също е необходимост, но не е нужно да се смятате за JS майстор. Трябва обаче да се интересувате да научите повече от обикновен JavaScript.
Повечето разработчици учат и на jQuery, но рамки като React, Ember, Angular, Vue или Backbone предлагат по-опростен процес за изграждане на пълномащабни уеб приложения.
Възможно е да се потопите още по-дълбоко фантазия JavaScript ефекти, като анимации, но те не са задължителни. Разработчикът на пълен стек трябва да знае достатъчно, за да свърши работата, и да продължи от там.
Бекенд изборът на език е по-малко за техническо предимство и повече за комфорта. Повечето програмисти осъзнават това Python е по-гъвкав език от PHP, по-голямата част от уебсайтовете се изпълняват на PHP сървъри. Това прави PHP е ценен език повече компании.
Изберете какъв език отговаря на вашите нужди, или ви предлага най-големите перспективи. Също така имайте предвид, че не си останал с един гръб език завинаги. Ако започнете с Ruby, но преминете към Python, не губите нищо в процеса.
Въпреки това препоръчвам, след като веднъж откриете желания език, да се задълбочите с този език и вземете съответната рамка. PHP има Laravel, Ruby има Rails, а Python има Django - сред много други опции. Тези рамки ще ускорят процеса на разработване и ще ви помогнат да структурирате правилно вашите приложения.
Бази данни и сървъри
Изборът на механизъм за бази данни се свежда до изискванията на проекта и сървърния стек. PHP често работи с MySQL, така че това е най-предпочитаният избор. Най- две най-големи уеб стека днес са LAMP (Linux-Apache-MySQL-PHP) и ОЗНАЧАВА (MongoDB-ExpressJS-AngularJS-Node.js).
Повечето хостинг компании предлагат LAMP от самото начало без необходимост от настройка. Но персонализирани решения като Digital Ocean ви позволяват да използвате почти всичко с малко грес за лакътя. Можете да намерите повече уеб стекове в този списък или чрез търсене онлайн.
Вашата база данни често ще бъде свързан с езика на бекенда. Python идва с поддръжката на SQLite по подразбиране и RoR Разработчиците обикновено могат да работят с всичко. И честно казано, всеки език обикновено може да работи с всяка база данни.
Но вие искате да изберете нещо, което е достатъчно често за използване в повечето уеб проекти. SQL е общ език и използва най-вече същия синтаксис във всички двигатели на базата данни. Ще откриете разлики в настройката и администрирането на таблиците, но те обикновено са незначителни.
Освен базата данни, ето някои технически теми от сървъра, които бихте искали да научите.
- CDN и хостинг за съдържание
- Инсталиране и актуализиране на сървърния софтуер
- Най-добри конфигурации на сървъри за увеличаване на трафика и времето за зареждане
- Решения за кеширане както за заявки за бази данни, така и за съхранение на файлова система
- Автоматизирано архивиране на бази данни и плоски файлове или архивиране на дискови изображения
- Настройка на HTTPS с управление на домейни (DNS сървъри, CNAME записи и др.)
- По-подробни теми, като електронна поща, микроуслуги и балансиране на натоварването
Един от най-добрите начини за учене е бърникане със сървъри докато изграждате проекти. Вземете основен VPS и се опитайте да създадете свои собствени стакове. Тези VPS са пълни виртуални сървърни среди, където имате пълен контрол за конфигуриране (или унищожаване) на всичко. Освен това горният списък не е необходима пътна карта за всички разработчици на пълен стак.
Единственото знание, от което се нуждаете, е каквото е необходимо, за да създадете празна сървърна среда и да инсталирате софтуера, необходим за стартиране на уебсайт. От там всичко друго е просто подобрено знание. Ако някога имате въпроси или искате да научите от професионалисти, проверете общността на Reddit / r / SysAdmin.
Пътят напред
Ако наистина искате да научите пълен стак развитие, направете списък на всички технологии, които искате да научите. От там можете да се справяте с тях един по един, като съставяте свои собствени проекти, за да изпробвате наученото.
Уеб разработката е непрекъснато променяща се индустрия, така че винаги трябва да сте готови да научите повече. Тествайте различни стекове и езици, докато не намерите това, което ви харесва. Но винаги бъдете готови да отидете по-дълбоко и да се оправите!
Пълното развитие на стека струва ли усилието? Това е за вас. Но ето някои свързани мнения, които могат да ви помогнат да разберете това.
- За легитимността на "пълния стек" (Heapsortjobs.com)
- Така че искате да станете пълноценен разработчик (Rubysteps.com)
- 7 съвета за това как да станете пълноценен разработчик (Usersnap.com)