Rozpoczęcie pracy z Fullstack Web Development
Te dni, nowoczesne pełny rozwój stosu jest bardzo popularny zarówno w małych agencjach, jak iw większych firmach z dedykowanym zespołem technicznym. Pełni inżynierowie sieci pracują na całym stosie technologii internetowych w tym frontend, backend, i zarządzanie serwerem.
Wiele osób twierdzi, że pełny stos prowadzi tylko do bycia „jackiem wszystkich zawodów, mistrzem żadnego”. Z pewnego punktu widzenia może to być prawdą, jednak umiejętność jest tak ważna, jak to, co można z nią osiągnąć. Wielu deweloperów pełnego stosu oferuje wartość, ponieważ może przyjąć pomysł od poczęcia do uruchomienia, iw pełni zrozumieć każdy krok procesu.
Jeśli o tym myślisz idąc pełną trasą, To ten artykuł jest dla ciebie. Wyjaśnię ogólne wymagania programisty pełnego stosu, co pociąga za sobą rola i jak zestaw umiejętności może być przydatny dla freelancerów / wykonawców, którzy chcą pracować bezpośrednio dla klientów lub we własnych projektach.
Pełne podstawy stosu
Nowoczesny rozwój pełnego stosu przeszedł długą drogę, ponieważ technologia internetowa bardzo się zmieniła. Pełne wymagania dotyczące stosu powinny być wykorzystane jako wytyczne do rozważenia. Ogólnie mówiąc, „stos” oznacza technologie działające zgodnie aby strona działała. Oznacza to kod frontendu, kod zaplecza, system baz danych i platformę serwera WWW + OS dla serwera.
Podstawową zasadą rozwoju pełnego stosu jest zrozumienie wszystkich aspektów budowy strony internetowej. Nie oznacza to znajomości projektowania ani pracy z interfejsem UX / UX, chociaż może to znacznie poprawić rentowność i jakość pracy.
- Podstawy frontendu obejmują HTML / CSS i JavaScript, najprawdopodobniej z struktura, takie jak Angular lub React.
- W przypadku języka zaplecza będziesz chciał wybrać coś, co można połączyć z systemem baz danych. PHP / MySQL jest najczęstszym i najłatwiejszym do nauczenia, ponieważ zasila wiele silników CMS, takich jak WordPress. Również LAMPA stos jest niewątpliwie najpopularniejszym stosem stron internetowych.
- Wiedza o serwerze może być tak prosta lub szczegółowa, jak tylko chcesz. Absolutną podstawą byłoby poznanie programu serwera Apache w połączeniu z bazą danych MySQL lub PostgreSQL.
- Możesz pójść nawet dalej, włączając wiedzę o instalowaniu serwerów poczty lub narzędzi wydajności, takich jak memcached lub Varnish.
Pełen pakiet dev powinien wchodzić we wszystkie trzy obszary z wystarczającą wiedzą uruchomić stronę internetową niezależnie, i bez większej pomocy od nikogo innego.
Głębokość wiedzy technicznej
Wielkie pytanie dotyczące rozwoju pełnego stosu to jak głęboko wejść w każdy obszar. Czy inżynier z pełnym stosem naprawdę jest mistrzem czegokolwiek? Niektórzy twierdzą, że jest to możliwe, ale to nie może być celem pełnego stosu.
Większość firm chce zatrudniać inżynierów pełnego stosu, którzy mają trochę wiedzy wszędzie. Ci inżynierowie mogą specjalizować się w jednym obszarze, ale w razie potrzeby są w stanie wypełnić każdą rolę.
Devs, którzy dopiero zaczynają tę ścieżkę, powinni baw się we wszystkich dziedzinach, ucząc się „na tyle”, aby rozwiązywać problemy w miarę ich powstawania. Daje to rzeczywistą interpretację technologii, aby zobaczyć, jak różne problemy dotyczą rzeczywistych projektów.
Największą zaletą kodowania pełnego stosu jest możliwość buduj własne aplikacje bez pracy dla nikogo innego.
Jeśli nauczysz się każdego etapu procesu rozwoju, możesz zrobić wszystko sam. Nie musisz być mistrzem PHP, aby zbudować własną aplikację Laravel. I nie musisz być guru JavaScript, aby stworzyć elastyczną nawigację rozwijaną, szczególnie teraz, gdy mamy tak wiele otwartego kodu źródłowego dostępnego w sieci.
Jak głęboko powinieneś wejść w któryś z tych obszarów? To zależy wyłącznie od ciebie, a twoja odpowiedź prawdopodobnie zmieni się z czasem.
Ale kiedy zaczynasz, po prostu idź wystarczająco głęboko, aby wdrożyć to, czego się nauczyłeś, w prawdziwy projekt. Kiedy wpadniesz na coś, czego nie rozumiesz, wykorzystaj to jako okazję do głębszego przyjrzenia się, i dowiedz się więcej o tym konkretnym temacie.
Wybór języków
To trochę zagadka dla nowego programisty, aby wybrać, które technologie się uczyć. Pozbywanie się potrzeb, HTML i CSS są absolutnie wymagane. JavaScript jest również koniecznością, ale nie musisz uważać się za mistrza JS. Jednak powinieneś być zainteresowany nauczeniem się czegoś więcej niż zwykłego JavaScript.
Większość deweloperów uczy się również jQuery, ale ramy takie jak React, Ember, Angular, Vue lub Backbone oferują prostszy proces tworzenia pełnowymiarowych aplikacji internetowych.
Możliwe jest nurkowanie jeszcze głębiej fantazyjne efekty JavaScript, takie jak animacje, ale są całkowicie opcjonalne. Twórca pełnego stosu powinien wiedzieć wystarczająco dużo, aby wykonać zadanie i przejść od tego miejsca.
Wybór języka backendu to mniej korzyści technicznych, a bardziej komfortu. Większość programistów zdaje sobie z tego sprawę Python jest językiem bardziej uniwersalnym niż PHP, jednak większość stron internetowych działa na serwerach PHP. To sprawia PHP jest cennym językiem do większej liczby firm.
Wybierz język, który odpowiada Twoim potrzebom lub oferuje największe perspektywy. Pamiętaj też o tym nie utkniesz na zawsze z jednym językiem zaplecza. Jeśli zaczniesz od Rubiego, ale przełączysz się na Pythona, nie stracisz niczego w tym procesie.
Zalecam jednak, aby po znalezieniu odpowiedniego języka backendu zagłębić się w ten język i wybierz pokrewną strukturę. PHP ma Laravel, Ruby ma Rails, a Python ma Django - wśród wielu innych opcji. Te struktury przyspieszą proces tworzenia aplikacji i pomogą w prawidłowej strukturze aplikacji.
Bazy danych i serwery
Wybór silnika bazy danych sprowadza się do wymagań projektu i stosu serwerów. PHP często działa z MySQL, więc jest to najbardziej preferowany wybór. The dwa największe stosy internetowe dzisiaj są LAMPA (Linux-Apache-MySQL-PHP) i OZNACZAĆ (MongoDB-ExpressJS-AngularJS-Node.js).
Większość firm hostingowych oferuje LAMP od samego początku bez konieczności instalacji. Ale niestandardowe rozwiązania, takie jak Digital Ocean, pozwalają na uruchomienie niemal wszystkiego za pomocą małego smaru łokciowego. Możesz znaleźć więcej stosów internetowych na tej liście lub przeszukiwać online.
Twoja wybrana baza danych będzie często przywiązany do twojego języka zaplecza. Python domyślnie obsługuje SQLite i RoR devs mogą zazwyczaj pracować z czymkolwiek. I szczerze mówiąc, każdy język może zwykle działać z każdą bazą danych.
Ale chcesz wybrać coś, co jest na tyle powszechne, że można je wykorzystać w większości projektów internetowych. SQL jest językiem ogólnym i używa głównie tej samej składni we wszystkich silnikach baz danych. Znajdziesz różnice w konfiguracji i administracji tabeli, ale są one zazwyczaj niewielkie.
Poza bazami danych, oto kilka technicznych tematów po stronie serwera, o których warto się dowiedzieć.
- CDN i hosting treści
- Instalacja i aktualizacja oprogramowania serwera
- Najlepsze konfiguracje serwerów dla skoków ruchu i czasów ładowania
- Rozwiązania buforujące zarówno dla zapytań do bazy danych, jak i pamięci systemu plików
- Automatyczne tworzenie kopii zapasowych baz danych i plików płaskich lub kopii zapasowych obrazów dysku
- Konfiguracja HTTPS z zarządzaniem domeną (serwery DNS, rekordy CNAME itp.)
- Bardziej szczegółowe tematy, takie jak poczta e-mail, mikrousługi i równoważenie obciążenia
Jednym z najlepszych sposobów nauki jest majstrować przy serwerach podczas budowania projektów. Złap podstawowy VPS konto i spróbuj skonfigurować własne stosy. Te VPS to kompletne środowiska serwerów wirtualnych, w których masz pełną kontrolę nad konfigurowaniem (lub niszczeniem) wszystkiego. Ponadto powyższa lista nie jest wymaganym planem dla wszystkich twórców pełnego stosu.
Jedyne, czego naprawdę potrzebujesz, to wiedza cokolwiek jest wymagane do stworzenia pustego środowiska serwera, i zainstalowania oprogramowania potrzebnego do uruchomienia strony internetowej. Stamtąd wszystko inne to tylko ulepszona wiedza. Jeśli kiedykolwiek masz pytania lub chcesz się uczyć od profesjonalistów, sprawdź społeczność Reddit / r / SysAdmin.
Droga przed nami
Jeśli naprawdę chcesz się uczyć pełnego rozwoju stosu, zrób listę wszystkich technologii, których chcesz się nauczyć. Stamtąd możesz stawić im czoła, tworząc własne projekty treningowe, aby sprawdzić, czego się uczysz.
Tworzenie stron internetowych to stale zmieniająca się branża, więc zawsze powinieneś być gotów dowiedzieć się więcej. Przetestuj różne stosy i języki, aż znajdziesz to, co lubisz. Ale zawsze bądź gotów pójść głębiej i lepiej!
Czy rozwój pełnego stosu jest wart wysiłku? To zależy od ciebie. Ale oto kilka pokrewnych postów, które mogą pomóc ci to zrozumieć.
- O legalności „pełnego stosu” (heapsortjobs.com)
- Więc chcesz zostać twórcą pełnego stosu (rubysteps.com)
- 7 porad, jak zostać programistą pełnego stosu (usersnap.com)