*Текстът е предоставен от Telerik Academy
За възходът на React и какво трябва да умее разработчикът, за да е успешен с библиотеката? Отговаря Станимир Тодоров, старши софтуерен консултант във VMware и главен трейнър на Telerik Academy Upskill React
„Не аз избрах да се насоча към React“.
Изненадващият отговор на Станимир Тодоров, старши софтуерен консултант във VMware и главен трейнър в практическото Upskill обучение за React разработчици на Телерик Академия, дойде внезапно.
Всъщност толкова ли е странен такъв отговор, когато работата на програмиста изисква адаптиране и търсене на най-добрите решения за проекта и продукта? Понякога ти ги избираш, но понякога са резултат от ситуацията или други фактори.
За Станимир това е моментът, в който Google започва работа по нова версия на AngularJS – технологията, с която работи към онзи момент. Тогава React започва да набира скорост, а стабилна версия на Angular липсва. Нуждата е сред причините, които отвеждат Станимир до работата с React, но той бързо започва да открива много други аргументи и интересни нови концепции.
„След известно време, прекарано в експериментиране и разучаване на React, новите концепции се оказаха изключително мощни“, добавя Станимир. Решихме да влезем по-навътре в React и да разберем откъде идва популярността на тази JavaScript библиотека, какви качества трябва да притежава един React разработчик и какъв е пътят пред тези експерти.
Ако и ти искаш да си един от тях и да учиш директно от Станимир и други експерти, приемът в обучението на Телерик Академия Upskill React е отворен до 1 октомври.
Здравей, Станимир, благодарим ти за отделеното време! Ще ни споделиш ли малко повече за твоята професия и позицията, която заемаш днес?
Здравейте и благодаря за възможността да споделя повече за React и какво според мен трябва да умее React разработчикът!
В момента работя като старши софтуерен консултант във VMware. Позицията включва различни отговорности – работя едновременно както с екипи от разработчици, така и с клиенти. Участвам във всяка една фаза от цикъла на разработка на софтуер и затова трябва да разбирам в дълбочина клиентските нужди и предизвикателствата, свързани тях.
Работата е интересна и изисква широка експертиза и консултантски опит, тъй като обикновено работя по няколко проекта, ръководя екип и помагам на младши консултанти. Областите, които използвам, се разпростират отвъд добре познатия термин – full-stack development. Бих го нарекъл mega-stack development, защото включва сървъри, мрежи, съхранение на данни, облачни услуги и още много други технологии.
Екипът, от който съм част във VMware, е Worldwide Center of Engineering. Той предоставя услуги за изграждане на решения на своите Enterprise клиенти, използвайки продуктите на VMware.
Как се насочи към React? С какво технологията те спечели?
Всъщност, не аз избрах да се насоча към React :).
Работих като front-end разработчик с AngularJS, когато Google реши да разработи нова версия – Angular. Може би някъде в този момент React започна да набира изключително голяма популярност – търсеше се алтернатива на AngularJS и нямаше стабилна версия на Angular. Логичното беше да се насоча към React. Впоследствие, като задълбочих знанията си в технологията, открих още много аргументи, които ме спечелиха.
Да си призная в началото бях скептично настроен, особено заради факта, че HTML и JavaScript се използваха на едно и също място и концепцията, че имаш един източник на истинност на данните. За контраст – в AngularJS имаше двупосочно свързване на данните, които можеха да се променят на различни места.
Нагласата ми се промени след известно време, прекарано в експериментиране и разучаване на React – тези нови концепции се оказаха изключително мощни!
Сигурни сме, че всеки има поне основна представа за React, но можеш ли да обясниш какво е и защо тази JavaScript библиотека е толкова популярна?
React е иновативен начин за изграждане на потребителски интерфейс – една малка, но изключително мощна библиотека. С нея потребителският интерфейс се изгражда от малки блокчета, наречени компоненти. Идеята е, като използваме декларативен подход, да се опише как изглежда потребителският интерфейс с тези компоненти. Точно и това е и едно от предимствата на React за нас, разработчиците – да изграждаме гъвкав интерфейс с код, който е лесен за преизползване и поддържане.
Друго предимство е бързината на актуализация на потребителския интерфейс при интеракция с него, което се постига чрез концепцията Виртуален DOM.
Тези и други предимства го правят идеален инструмент за изграждане на сложни потребителски интерфейси.
Какви са основните концепции и принципи, които всеки разработчик с React трябва да разбира?
Всеки разработчик с React задължително трябва да разбира парадигми като декларативно и функционално програмиране, защото React е повлиян от тях.
Важно е и да се знае какво е сложност на алгоритъм и как се използват структурите от данни, за да се разбере и бързината на React. В основата си технологията използва дървовидна структура от данни за реализация на Виртуалния DOM и процеса на рендериране на компонент, за да реши проблема с бавното добавяне на елементи в HTML DOM.
Тук добавям и основните градивни концепции на компонентите – JSX, какво са функционални и клас компоненти, props, state, цикъл на живот на компонент, HoC и Hooks.
Като де факто стандарт React се комбинира с Redux, което е библиотека за централизирано управление на състоянието на уеб приложение (State Management). Затова React разработчикът трябва да разбира и използва основните принципи на Redux.
Разбира се, всичко това е залегнало и в обучението Upskill React.
А какви умения трябва да имат разработчиците, които тепърва ще се насочат към React?
React библиотеката e написана на JavaScript и следователно всеки, който иска да се насочи към научаването ѝ, трябва да има практически опит с JavaScript, за да може да разбере напълно всички концепции. Разработчиците задължително трябва да знаят в дълбочина как работи JavaScript и какви са особеностите му.
Разбира се, като front-end разработчици трябва да знаят HTML и CSS. Както и да разбират архитектурните концепции „клиент-сървър“, REST и цикъла на разработка на софтуер. Какво представляват и как се използват термини като HTTP, JSON и API.
Освен JavaScript, разбира се, какви други технологии е добре да усвоят разработчиците с React, за да изпъкнат в работата си?
Следните умения и познания бих категоризирал като предимство – принципи за писане на качествен код, SOLID принципи и шаблони за дизайн (Design Patterns).
React е придружаван от цяла гама инструменти и познаването им също е плюс. Като основни бих посочил NPM/Yarn, Babel, Webpack, ESLint, Prettier, Git и TypeScript.
Как реши да преподаваш React в Телерик Академия?
Преди да започна да преподавам в Телерик Академия, бях front-end трейнър в една от компаниите, в която работих. Преподавах на курсисти, които искаха да започнат работа като front-end разработчици. Основно използвахме React за тази цел.
Upskill React беше естествено продължение. Разработихме цялостна и задълбочена програма, която се фокусира върху есенцията как се разработва уеб приложение с React и Redux. Паралелно с това навлизаме във фундаментални теми, по които всеки един софтуерен разработчик трябва да има познания.
Това е и моята основна мотивация – да споделям моето знание и добри практики. Преподаването е едно необикновено пътуване и срещата с хора, които са мотивирани, ме зарежда допълнително.
Като главен трейнър в Upskill React, ще споделиш ли какво отличава програмата и какво могат да очакват участниците в нея?
Курсът Upskill React е динамичен и е нужно да се отдели подобаващо свободно време за него.
Разделен е на три модула, като започваме от основите на React. Към почти всяка лекция има задания за домашна работа, за да се упражнят концепциите, а в края на модула има и индивидуален проект.
Вторият модул е фокусиран върху използването на State Management. Паралелно започваме работа и по отборен проект, максимално близък до ежедневната работа на React разработчика. Проектът е комплексен и включва всички аспекти от реална разработка на едно React приложение. За пример мога да дам част от очакванията за финалния проект – трябва да се хостне на сървър; да се автоматизира деплоя; да се използва Git; да се раздели работата между съотборниците и т.н.
Тук ще отбележа, че фокусът не е върху back-end. Предоставяме примерен back-end, който, разбира се, може да бъде променен при желание. Освен това, курсистите могат да разширяват проекта с каквито функционалности пожелаят.
Финалният, трети модул, е посветен на консултиране по отборния проект и теми, свързани с добри практики и оптимизации при React.
Завършваме с цялостна презентация на финалния проект.
Друго предимство на курса е, че курсистите са част от по-малка група. Идеята на тази група е да си помагат и споделят опит, като тук искам да засегна още един важен аспект – разнообразието от гост-лектори. Всеки от тях е с различен опит, което прави програмата още по-обогатена и практически насочена.
Какъв съвет ще дадеш на програмистите, които обмислят да учат React? Защо да се насочат към Upskill React вместо безплатни онлайн материали?
Повечето от знанията, получени по време на курса, са широко приложими и валидни извън React.
Поглеждаме от различен ъгъл – не колко са популярни определени решения, а защо да се използват, какви са плюсовете и минусите им. Навлизаме в дълбочина във важните теми.
Ако сте човек, който основно се учи от свободни материали, ако искате да навлезете бързо в материята и да не губите време в лутане, един такъв курс е изключително полезен. Разработваме реален проект, имате възможност да задавате въпроси към мен, както и към гост-лекторите и да се поучите от нашия опит.
React e лесен за научаване, но труден за овладяване.
Приемът в обучението на Телерик Академия Upskill React е отворен до 1 октомври!