Aplikacja Webowa

Tu jesteś
Java - Mapa kariery Tu jesteś 4 JPA - Hibernate 5 REST 6 Spring 7 Aplikacja Webowa
[BACKEND]
8 Mikroserwisy
Webserwisy
[BACKEND]
Tworzenia backendu mikroserwisów można
uczyć się już gdy tylko opanujemy Springa,
albo też dopiero po zdobyciu
nieco prostszej umiejętności tworzenia
backendu aplikacji webowej.
Mówimy prostszej, ponieważ najczęściej
frontend aplikacji webowej tworzy
z backendem relacje 1:1.
Natomiast mikroserwisy to zwykle
środowisko rozproszone, co często
prowadzi do sytuacji,
w której występuje kilka "frontendów"
komunikujących się z kilkoma "backendami".
9 HTML, CSS, Sass
Po opanowaniu backendu można
rozwijać się w stronę pozycji fullstack
dewelopera. W tym celu wymagane
jest nauczenie się kolejnych rozwiązań
frontendowych. Oczywiście nic nie stoi na
przeszkodzie, by rozwijać się w kierunku
frontendu już w trakcie nauki backendu.
10 Bootstrap
 Material
Przystanek Backend
W tym miejscu w drodze do kariery podsumujemy to o czym pisaliśmy w ramach dotychczasowych przystanków. Jako, że narazie cały czas jesteśmy w obszarze podstawowej ścieżki dla backend dewelopera skupimy się właśnie na tej części. Będzie jednak też słowo o frontendzie (zajawka).

Programować w Javie można na wiele sposobów. Można tworzyć programy konsolowe albo budować aplikacje desktopowe w Swingu. Można też tworzyć nowoczesne aplikacje, do których użytkownik uzyskuje dostęp poprzez przeglądarkę web z dowolnego miejsca na świecie. I właśnie takie aplikacje tworzy dziś większość firm produkujących oprogramowanie i tym zajmują się najczęściej profesjonalni programiści (i jeszcze paroma innymi rzeczami...ale na poszerzenie tego zagadnienia przyjdzie jeszcze pora :)).

Czym jest aplikacja webowa?

Aplikacja webowa, zwana często aplikacją internetową, umożliwia użytkownikom pracę z użyciem interfejsu przeglądarki, który udostępnia funkcjonalności pozwalające na komunikację z zewnętrznym serwerem przetwarzającym dane. W ten sposób użytkownik może odczytywać, dodawać, zmieniać lub usuwać dane, do których ma dostęp. Serwer udostępnia dane przechowywane najczęściej bezpośrednio w dedykowanej bazie danych, ale może też być punktem pośredniczącym w komunikacji z innymi usługami dostępowymi do danych. Mogą one nawet tworzyć zestaw usług rozproszonych w przestrzeni chmury (o tym piszemy w kolejnym punkcie drogi do kariery).

Przykładowo aplikacja webowa zajmująca się przechowywaniem i udostępnianiem informacji o wydarzeniach rozrywkowych (koncerty, występy teatralne itp.) będzie przechowywała dane o tych wydarzeniach, organizator będzie je mógł dodawać, zmieniać i usuwać, a użytkownik końcowy będzie je przeglądał oraz rezerwował na nie bilety. Podstawowe dane o wydarzeniach będą przechowywane w bazie danych, natomiast usługa rezerwacji może być odseparowana i realizowana jako wspomniana wyżej inna usługa dostępowa do danych.
Jak stworzyć i uruchomić nowoczesną aplikację webową? Co jest potrzebne? Twierdzimy, że jest to układanka złożona z co najmniej sześciu podstawowych elementów:
Narzędzia
Ikona Java
Java
Ikona Mavena
Maven
Ikona Eclipse
IDE
Technologie
Ikona Spring Boot
Backend - Spring i Spring Boot
Ikona frontend
Frontend - HTML + CSS + JS
Ikona bazy danych
Baza Danych

JAVA

Tak, Java to dla nas narzędzie do budowy rozwiązania programistycznego, np. aplikacji webowej albo usługi. Powyższy schemat to drogowskaz dla każdego, kto wybrał Javę jako "swój" język programowania. Na rynku pracy zdecydowana większość ofert (poza stricte frontendowymi) dotyczy właśnie tego języka. Obecnie kolejne wersje Javy wydawane są co pół proku, a absolutną podstawą jest wersja 8. Każdy kto chce zdobyć rynek pracy musi być obeznany z jej charakterystycznymi aspektami (dlatego też już niedługo również u nas wprowadzimy kurs Javy w wersji co najmniej ósmej!).

Maven

W przypadku narzędzi oczywistym wyborem wydaje się być Maven. Doskonale nadaje się on do zarządzania kodem naszych projektów oraz ich budowaniem. Dla Mavena można znaleźć alternatywę, ale od wielu lat to on "wygrywa plebiscyt" na najpopularniejsze narzędzie w swojej kategorii. Za jego pomocą z łatwością uzyskamy dostęp do wszystkich potrzebnych nam bibliotek, a także stworzymy paczkę zawierającą wszystkie klasy i inne zasoby tworzące całą aplikację. Maven zrobi większość pracy za nas!

IDE

IDE, a więc środowisko programistyczne - narzędzie używane przez każdego programistę codziennie. To w nim powstaje kod naszych projektów. Jakie narzędzie wybrać? Tutaj sprawa nie jest już oczywista. Eclipse ciągle ma się doskonale, a jego wersja Spring Tools Suite bije kolejne rekordy popularności. Jednak prawdą jest, że w siłę rośnie także główny konkurent Eclipse'a - IntelliJ. Jego najpoważniejszym mankamentem, który odróżnia go od Eclipse'a jest to, że jego profesjonalna wersja jest narzędziem płatnym. Z drugiej strony coraz więcej firm decyduje się na wykup licencji... Wybór w dużej mierze należy do Was, albo firm w których pracujecie.

Backend - Spring i Spring Boot

Mamy zainstalowaną Javę, Mavena i odpaliliśmy środowisko programistyczne. Co dalej? Jak napisać swój pierwszy projekt aplikacji webowej? W tym celu używamy platformy Spring, która obecnie dzieli i rządzi na rynku programowania (a także na rynku pracy). Szczególnie popularny jest działający w jej ramach projekt Spring Boot, który przyspiesza i ułatwia proces powstawania aplikacji i usług, do których później użytkownicy mają dostęp z poziomu przeglądarki internetowej. Ucząc się Springa na bazie Spring Boota omijamy nieprzyjemną konfigurację XML. Możemy skupić się głównie na implementacji logiki biznesowej. Używając Spring Boota nie potrzebujemy nawet serwera webowego do uruchomienia naszego projektu (jest on dostarczony razem z projektem Spring Boot i uruchamia się w jego tle)!

Frontend - HTML + JS

Appa Notka. Ten paragraf wykracza poza temat aplikacji webowych w kontekście backendu, ale warto tutaj zerknąć jeśli interesujesz się rozwojem w kierunku fullstack dewelopera.
Za pomocą Spring Boot-a napiszemy kod całej usługi obsługującej dane i uruchomimy aplikację. To jednak nie wszystko. Potrzebujemy jeszcze mechanizmu, który udostępni przeglądarce internetowej widoki oraz wykona obsługę akcji użytkownika. Widoki będą mogły komunikować się z aplikacją Spring Boot poprzez wysyłanie żądań i odbieranie odpowiedzi HTTP. W tym celu wystarczyłby nam nawet sam HTML z czystym Javascriptem plus style CSS, ale jeśli myślimy o poważnym podejściu do tematu i chcemy zrobić profesjonalną karierę powinniśmy poznać jeden z dostępnych frameworków frontendowych. My jesteśmy gorącymi zwolennikami AngularJS. Co prawda na rynek wychodzą kolejne wersje Angulara 2+, to jednak wymagają wiekszej specjalizacji frontendowej, której wielu z Was na początku swojej kariery nie będzie posiadać. Przy umiejętnym użyciu AngularJS pozwala relatywnie szybko tworzyć frontend opierając się głównie na HTML-u i dyrektywach JS. Dodatkowo warto też używać Bootstrapa zamiast czystego CSS-a.
Komunikacja Fronted - Backend

Pierwszy projekt

Pierwszy projekt Spring Boot można próbować tworzyć samemu przeszukując internet i składając kawałki wiedzy w jedną całość. Można też użyć Spring Boot Inilizalizera, albo też uprościć sobie życie i zajrzeć do naszego Kursu Springa, a konkretnie do rozdziału: Spring Boot - Projekt startowy. Wyjaśniamy tam dokładnie co i jak, a także udostępniamy linka do pobrania projektu. Aby w pełni poznać możliwości aplikacji webowych warto pójść krok dalej i ściągnąć małą, ale bardzo pomocną aplikację webową, która posiada Spring Boota z ustawionym podstawowym widokiem w AngularJS oraz podpiętymi bibliotekami Bootstrapa: Projekt startowy AngularJS. Pamiętajcie jednak o tym (o czym pisaliśmy wyżej), aby najpierw zainstalować Javę i Mavena oraz ściągnąć IDE np. Eclipse.

Import pierwszego projektu

Zobaczmy teraz jak wygląda import projektu na bazie środowiska Eclipse.
Import projektu w Eclipse

Uruchomienie projektu Spring Boot

Na koniec pozostało nam już tylko uruchomienie projektu.
Uruchomienie projektu w Eclipse
Zachęcamy do zapoznania się z odnośnikami w poniższej sekcji z linkami. Znajdziecie tam wszystko co najważniejsze w pracy z Mavenem, Springiem, AngularJS, a także dalsze informacje w temacie aplikacji webowych. Linki:
Maven - Instalacja
Maven - Pierwsze kroki
Maven - Asystent
Kurs Aplikacji Web - Starter REST
Kurs Spring - Wprowadzenie
Kurs AngularJS - Wprowadzenie

Stale się rozwijamy, a więc bądź na bieżąco!
Na ten adres będziemy przesyłać informacje o ważniejszych aktualizacjach, a także o nowych materiałach pojawiających się na stronie.
Polub nas na Facebooku:
Nasi partnerzy: stackshare
Javappa to również profesjonalne usługi programistyczne oparte o technologie JAVA. Jeśli chesz nawiązać z nami kontakt w celu uzyskania doradztwa bądź stworzenia aplikacji webowej powinieneś poznać nasze doświadczenia.
Kliknij O nas .


Pozycjonowanie stron: Grupa TENSE