Różnica między Frontend i Backend Web Development

2021 JavaScript pełny stos Bootcamp jest teraz otwarty dla rejestracji!

w tym poście chcę pomóc ci koncepcyjnie przejść od frontendu do backendu, w kontekście tworzenia stron internetowych.

najpierw zdefiniujmy czym jest frontend. Frontend to termin, którego używamy do identyfikacji programowania wewnątrz przeglądarki. Nazywamy to również tworzeniem stron internetowych po stronie klienta.

Po stronie frontendu martwisz się o stworzenie i dystrybucję aplikacji, która działa na komputerze Klienta, którym może być laptop, Komputer stacjonarny lub urządzenie mobilne. Tworzysz coś, co rozprowadzasz, a następnie uruchamiasz w każdej przeglądarce klienta.

Po stronie backendu architektujesz i budujesz aplikację, która działa na jednym serwerze (na początku), a każdy Klient uzyskuje do niej dostęp. Aplikacja działa na serwerze, w środowisku, które kontrolujesz, a następnie wysyłasz do przeglądarki aplikację za pomocą renderowania aplikacji po stronie serwera lub tworzysz API, które po prostu rozprowadza dane JSON do klientów (coś dość popularnego ostatnio, szczególnie w połączeniu z frameworkami/bibliotekami frontendowymi, takimi jak React, Vue i inne).

już widać, że jest tu nakładka. Backend może służyć do obsługi aplikacji frontendowej, która będzie działać w przeglądarce.

HTML, CSS, JavaScript, obrazy, animacje, React, vue, Svelte, CSS-in-JS, zarządzanie stanem w interfejsie, optymalizacja wydajności, wszystkie te tematy (i wiele więcej!) są związane z programowaniem frontendowym.

niektóre rodzaje aplikacji potrzebują tylko części frontendowej. Na przykład moja strona internetowa nie ma zaplecza. Jest to statyczna Strona wygenerowana przy użyciu Hugo, a cała praca, którą na niej wykonuję, jest uważana za programowanie frontendowe: CSS, znaczniki, JavaScript, którego używam na przykład do wyszukiwania mocy.

Programowanie Frontendowe ma swój unikalny zestaw wyzwań: przeglądarka obsługuje funkcje, na przykład. Lub wydajność aplikacji na urządzeniu low-end. Tworzenie aplikacji jednostronicowych.

rozwój backendu jest zupełnie inny niż frontend. Po pierwsze, opuszczasz środowisko przeglądarki, które z jednej strony jest zwolnione, ale może być również przytłaczające.

Dlaczego? Masz więcej możliwości.

w przeglądarce językiem programowania jest zawsze JavaScript. Lub język, który kompiluje się do JavaScript, jak TypeScript, Elm i inne.

w backendzie możesz użyć wszystkiego, co chcesz. Zwykle wybieram węzeł.js, ponieważ bazując na JavaScript mogę być ekspertem w jednym języku i pracować zarówno w frontendzie, jak i backendzie z JavaScript.

ale możesz użyć frameworków takich jak:

  • Django, które bazuje na Pythonie
  • Laravel, które bazuje na PHP
  • Rails, które bazuje na Ruby
  • Phoenix, które bazuje na Elixirze
  • Deno, które bazuje na TypeScript

i wielu innych, w tym bardziej zorientowanych na przedsiębiorstwa ekosystemów, takich jak Java i .NET.

i nie wspominam nawet o go and rust, dwóch świetnych wyborach.

jest to prawdopodobnie największa siła programowania backendowego: masz wiele możliwości wyboru języka, którego możesz użyć, więc możesz użyć tego, który wolisz. Ale może to również prowadzić do „paraliżu analizy”, jeśli nie jesteś jeszcze pewien, co wolisz.

na backendzie nie mamy problemów, z którymi musimy się zmierzyć na frontendzie. Jedną z rzeczy, które często słyszę, jest to, że rozwój frontendu idzie zbyt szybko. Codziennie pojawiają się nowe rzeczy, a najlepsze narzędzie zmienia się z miesiąca na miesiąc. Co nie jest fałszywym oświadczeniem. Backend w porównaniu wygląda bardziej na ekosystem o niskim tempie, zwłaszcza w dobrze znanych i dojrzałych środowiskach i narzędziach, a dobrze napisany backend może czuć się nowoczesny przez lata, podczas gdy nie możemy powiedzieć tego samego w interfejsie.

w backendzie mamy oczywiście swój własny zestaw spraw. Na przykład, jak przechowywać dane w bazie danych. Jak wybrać odpowiednią bazę danych. SQL vs NoSQL. Mikroserwisy vs monolity. Jak i gdzie wdrożyć naszą aplikację. Jak obsługiwać większy ruch. Jak bezpiecznie radzić sobie z danymi i żądaniami. Jak testować i obsługiwać obsługę błędów. Jak wybrać odpowiednią architekturę.

następnie mamy tematy, które nakładają się na DevOps, takie jak korzystanie z Dockera i Kubernetes, jak skonfigurować ciągłą integrację i ciągły przepływ pracy, jak radzić sobie z Linuksem, infrastrukturą i siecią na poziomie serwera. Musimy zmierzyć się z takimi wyborami, jak korzystanie z naszych własnych serwerów VPS lub korzystanie z PAAS, takich jak Heroku, lub bezserwerowe korzystanie z AWS Lambda. W zależności od firmy i zespołu, w którym pracujesz, być może będziesz musiał być gotowy do zajęcia się tymi tematami.

i musimy wymyślić, jak połączyć backend z frontendem, oczywiście. Jak zbudować API. GraphQL vs REST. Jak obsługiwać uwierzytelnianie. Jak sprawić, aby API było szybkie w skali. Są to tematy, które wiążą się zarówno z frontendem, jak i backendem w dążeniu do tego, aby rozmawiały ze sobą.

to wiele rzeczy i można znaleźć całe książki na te tematy, i dlatego mamy separację między programistami frontend i backend, i dlaczego bycie deweloperem pełnym stosu, który może poruszać się przez wszystkie te problemy, jest cenną umiejętnością.

i oczywiście nie musisz znać tych wszystkich rzeczy, aby zostać zakwalifikowanym jako frontend lub backend developer. Musisz wiedzieć te rzeczy na wysokim poziomie, aby zorientować się, czego nie wiesz (jeszcze). Ale to świetny pomysł, aby specjalizować się w jednej konkretnej niszy i stać się w tym wielkim.

na przykład możesz być programistą zaplecza, który nie wie, jak radzić sobie z zaawansowaną konfiguracją Linuksa i polegać na PAAS takim jak Heroku, który zrobi to za Ciebie. Lub użyj AWS Lambda, aby całkowicie tego uniknąć.

ważne jest, aby wiedzieć, kiedy najlepiej się uczyć i robić to sam, a nie używać narzędzi, które wspierają twoją pracę.

pełny Bootcamp JavaScript 2021 jest już otwarty dla rejestracji do przyszłego wtorku! Nie przegap tej okazji, Zarejestruj się już dziś!

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.