Jak zostać programistą Full-Stack: część 2
Opublikowany: 2017-12-02Jest to drugi z serii postów poświęconych nauce programowania i pełnowymiarowemu programowaniu. Jeśli nie sprawdziłeś pierwszej części, dotyczącej nauki podstaw CS, algorytmów, zasad projektowania i programowania front-end, możesz to zrobić tutaj.
Motywacja
Wiesz już, jak tworzyć statyczne strony internetowe za pomocą HTML, CSS i JavaScript. Chociaż Internet został pierwotnie zaprojektowany do udostępniania statycznych stron internetowych, możliwości (i oczekiwania) nowoczesnej aplikacji internetowej wzrosły gigantycznie. Prawie każda aplikacja wymaga uwierzytelnienia użytkowników, odpowiedzi na nie i jak najwierniejszego odtworzenia rzeczywistych scenariuszy.
Aby to zrobić, musisz pobrać dane od użytkownika (lub API), przetworzyć je i wygenerować dane wyjściowe. Musisz również zapisać te dane i mieć mechanizm umożliwiający identyfikację użytkownika przy następnym powrocie do korzystania z Twojej aplikacji. Aby wykonać te funkcje, nasz obecny stos nie wystarczy.
Wywiad z Ankit Tomar, współzałożycielem i CTO, Bizongo
Serwery są wymagane do przetwarzania danych użytkowników, przechowywania plików, konwertowania ich na HTML/CSS/JS. Następnie serwery te podają go do przeglądarki w formie, którą można przedstawić użytkownikowi. Baza danych jest wymagana do przechowywania danych ważnych dla Twojej aplikacji. Aby zaprogramować serwer, potrzebujemy języka skryptowego po stronie serwera, a dla bazy danych potrzebujemy bazy danych (duh) i języka do komunikacji z nią. Dokładnie to zrobimy w kolejnych krokach. W przypadku pierwszych siedmiu zajrzyj do wcześniejszego wpisu!
Spis treści
Krok 8: Języki skryptowe po stronie serwera
Jak wspomniano wcześniej, aby programować i komunikować się z serwerem, musisz znać język, który rozumie. W przeciwieństwie do front-endu, w którym JavaScript jest jedynym wyborem, istnieje mnóstwo opcji do zaprogramowania na zapleczu. Najpopularniejsze z nich to Java, PHP, Python, JavaScript i Ruby.
PHP ma swoje wady, ale ma najłagodniejszą krzywą uczenia się spośród wszystkich języków i frameworków, których do tej pory używałem. A w PHP chodzi o kodowanie szybkich (i brudnych) rozwiązań. Tak więc w bardzo krótkim czasie możesz zbudować aplikację internetową, z której będziesz bardzo dumny.

Java jest językiem programowania ogólnego przeznaczenia i prawdopodobnie najpopularniejszym językiem wszechczasów. Jest niezwykle popularny do tworzenia aplikacji mobilnych (na platformie Android) i jest szeroko stosowany w większości dużych firm technologicznych. Head First Java to doskonałe miejsce do nauki tego wszechobecnego języka.
Aby nauczyć się Pythona, gorąco polecam książkę Zed Shaw Learn Python the Hard Way i Alberta Sweigarta Automate the Boring Stuff with Python. Jeśli zdecydowałeś się na PHP, możesz nauczyć się podstaw języka na Codecademy.
Znasz już wystarczająco dużo składni JavaScript, aby ubrudzić sobie ręce z frameworkami Node i backendowymi JS (takimi jak Express). Ruby omówię później w połączeniu z Railsami, ponieważ rzadko jest używany jako samodzielny język.
Krok 9: Naucz się SQL
W następnym kroku prawdopodobnie powinieneś nauczyć się trochę SQL (Structured Query Language). Jest to język, z którym komunikują się bazy danych. I chociaż możesz nie używać go bezpośrednio po przejściu na korzystanie z frameworków, nadal pomaga wiedzieć, jak bezpośrednio komunikować się z bazą danych. Dobrą wiadomością jest to, że SQL jest niezwykle łatwy do nauczenia. Powinieneś być w stanie to dobrze zrozumieć w ciągu kilku godzin. Head First SQL jest świetnym źródłem do tego celu.
Jak zostać programistą Full Stack: część 1
Krok 10: Naucz się „konwencjonalnego” pełnego stosu platformy internetowej
Teraz jest dobry czas, aby poeksperymentować z frameworkami internetowymi, które mogą wykonać za Ciebie większość pracy na niższym poziomie.
Nie brakuje świetnych frameworków, które mogłyby zaspokoić każdy możliwy do wyobrażenia cel. Railsy (napisane w Ruby), Spring (napisane w Javie) i Django (napisane w Pythonie) należą do najpopularniejszych obecnie frameworków. Możesz rzucić okiem na samouczek Michaela Hartla The Rails – dostępny za darmo.
Jeśli chodzi o Django, samouczek na oficjalnej stronie to dobry początek. Kiedy już poczujesz, że znasz podstawy frameworka, przeczytaj Dwie miarki Django . To jedna z najlepszych książek o technologii w historii.
Jeśli zdecydowałeś się pójść drogą wiosenną, zdecydowanie sugeruję zapisanie się do programu rozwoju oprogramowania UpGrad i IIIT-B. Program zapewnia bardzo całościowy przegląd frameworka i pomaga zbudować solidny i skalowalny backend.


Krok 11: Frameworki z pełnym stosem JavaScript i stos MEAN
Nie tak dawno Backend Development opierał się na koncepcji cyklu żądanie-odpowiedź. Na przykład przeglądarka wysłała żądanie, a serwer odpowiedział, wypluwając stronę internetową w HTML. Jednak od początku 2010 roku coraz więcej aplikacji działa w czasie rzeczywistym.
Struktura całej strony internetowej zmienia się bez odświeżania i zachowuje się dynamicznie w oparciu o dane wejściowe i interakcję użytkownika (czat myślowy, polubienia, komentarze, filmy i reakcje na żywo itp.).

W takim scenariuszu prosty cykl żądanie-odpowiedź po prostu nie wystarczy. Dlatego ostatnio nastąpił wzrost zainteresowania programowaniem asynchronicznym i uczynieniem żądań AJAX normą. Frameworki JavaScript mają tendencję do osiągania w tym celu. Dlatego warto zapoznać się z jednym z głównych frameworków JS dostępnych na rynku. Dwa najpopularniejsze z nich to MEAN Stack i MeteorJS.
Wywiad z Farooq Adamem, współzałożycielem Fynd
Nauka MEAN jest nieco bardziej skomplikowana ze względu na jego asynchroniczną naturę i piekielne wywołanie zwrotne, które zwykle wywołuje węzeł. Ale teraz, gdy jesteś doświadczonym programistą, jesteś wystarczająco dojrzały, aby poradzić sobie z jego dziwactwami.
Meteor to full-stack framework JS, z którym obecnie eksperymentuję. Koncepcja Meteora jest absolutnie zachwycająca – jeden framework w jednym języku, który zajmuje się wszystkimi komponentami aplikacji (front-end, back-end i baza danych). Jednak odbywa się to kosztem swobody dostosowywania. Po zbudowaniu czegoś w Meteor, zmiana bazy danych lub backendu jest praktycznie niemożliwa, jeśli zdecydujesz się to zrobić. Chociaż nadal uważam, że warto się nauczyć tej technologii. Wiadomo, że Meteor jest niezwykle potężny. Jest w stanie robić rzeczy w setkach linii kodu, podczas gdy inne konwencjonalne frameworki wymagałyby tysiąca.
Wniosek
To koniec części 2. W tym poście omówiliśmy zasoby dotyczące rozwoju zaplecza i różnych dostępnych technologii pełnego stosu. Możesz teraz z dumą nazywać siebie programistą full-stack. Gratulacje!
Ale historia pełnowymiarowego tworzenia stron internetowych na tym się nie kończy. Wraz z wprowadzeniem iPhone'a na całym świecie nastąpiła rewolucja dotycząca smartfonów. Coraz więcej osób przechodzi na używanie smartfonów zamiast komputerów stacjonarnych. W takim scenariuszu konieczne jest nauczenie się tworzenia aplikacji dla dwóch najpopularniejszych platform: Androida i iOS. Zajmiemy się tym w następnej i ostatniej części tej serii. Dodatkowo przyjrzymy się również frameworkom, które pozwalają nam budować natywne aplikacje z wykorzystaniem Javascript (Ionic, React Native itp.).
Do tego czasu to pożegnanie.
Twoje komentarze i sugestie są mile widziane!

