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:
Backend - Spring i Spring Boot
Frontend - HTML + CSS + JS
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.
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.
Uruchomienie projektu Spring Boot
Na koniec pozostało nam już tylko uruchomienie projektu.
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