Jak to działa?

Projekt StartAPPa został stworzony przez doświadczonych programistów aby ułatwić życie wszystkim tym, którzy poszukują gotowych rozwiązań w swojej codziennej pracy programisty, bądź też w nauce przygotowującej do takiej pracy, a zatem:
  • Dla mniej doświadczonych programistów, którzy chcą wiedzieć jak krok po kroku budować aplikację webową w Javie począwszy od stworzenia interfejsu użytkownika (frontendu), przez implementację po stronie serwera (backendu), a skończywszy na zapisie danych w bazie.

  • Dla tych bardziej zaawansowanych, przyszłych fullstackowców, którzy dziś doskonale znają się na backendzie, ale nie wiedzą jak "ogarnąć" kod od strony frontendu lub umieją programować na frontendzie, a chcieliby wiedzieć jak to działa po stronie backendu.

  • Dla tych, którzy wiedzą jak działają aplikacje webowe, ale nie mają przykładowego kodu z konkretnymi, gotowymi rozwiązaniami, aby móc wzorować się na nich w bieżącym projekcie w swojej pracy.

  • Wreszcie dla tych, którzy w trakcie swojej kariery może i napisali już wiele kodu, ale ciągle istnieją obszary, w których poruszanie się przyprawia ich o gęsią skórkę (np. datatable i server processing w AngularJS).

Tak naprawdę każdy mniej lub bardziej doświadczony programista lub nawet przyszły programista znajdzie u nas coś dla siebie. Wystarczy, że umiesz programować w Javie i znasz podstawy AngularJS oraz Springa, a my tą wiedzę rozszerzymy pokazując jak zaprogramować realne i najczęściej spotykane w pracy zagadnienia z dziedziny programowania. A wtedy istnieje duża szansa, że rynek pracy stanie przed Tobą otworem.

Nasza inspiracja

Przez wszystkie lata naszej pracy nieraz spotykaliśmy się sytuacjami, w których wiedzieliśmy jak napisać działający kod np. we frontendzie, ale nie potrafiliśmy od ręki napisać kodu po stronie backendu i na odwrót. Ba, nawet jeśli wiedzieliśmy jak napisać kod w obu tych warstwach oraz wiedzieliśmy jak działają mechanizmy komunikacji pomiędzy nimi to znowu napotykaliśmy na problemy poprawnej wymiany danych i spójności ich formatu podczas takiej komunikacji. A to niepoprawny typ obiektu, bo serwer oczekuje JSON-a, a my mu wysyłamy coś co po użyciu biblioteki X już tym JSON-em nie jest, a to znowu jakiś problem z typem danych konkretnego parametru wysyłanego na serwer itd... Czytaj dalej

W internecie istnieją setki (tysiące?) poradników pokazujących jak rozwiązać konkretny problem w danej technologii i zwykle możemy znaleźć do tego N-rozwiązań. Co jednak gdy nasze zadanie samo w sobie składa się z N-problemów i skomplikowanych ścieżek, przez które musimy przejść? Na tym właśnie polega praca fullstack developera, czyli kogoś kto nie tylko musi znać cały proces budowy i działania aplikacji, ale także implementować zagadnienia w różnych technologiach oraz rozwiązywać problemy powstające na styku tych technologii.

Właśnie z wyżej wymienionych powodów powstał ten portal. Powstał z myślą o tych, którzy chcieliby zrozumieć działanie procesów krok po kroku albo też poszerzyć swoje horyzonty poza konkretną specjalizację. Tak aby z jednej strony stali się wszechstronnymi programistami gotowymi do podboju rynku pracy, a z drugiej by czuli się w swojej pracy komfortowo, nawet gdy przyjdzie im się zmierzyć z czymś co nie jest do końca zgodne z ich wcześniejszymi doświadczeniami.


Zwiń

O co w tym chodzi

StartAPPa to zbiór gotowych modułów składających się w jedną całość w postaci pełnej aplikacji webowej. Każdy moduł jest dostępny do ściągnięcia w postaci zip-a zawierającego projekt z kodem Java opartym o Spring Boot (uruchamialna aplikacja dzięki wbudowanemu serwerowi Tomcat). Dodatkowo zawiera on również specjalnie przygotowany tutorial PDF, który krok po kroku uczy jak działają i co robią poszczególne fragmenty kodu. Nie potrzebujesz instalować ani konfigurować bazy danych. Moduły uruchamiają się w oparciu o wbudowaną bazę H2.

W systemach informatycznych, poza dodatkową, często skomplikowaną logiką biznesową, zawsze istnieje motyw przewodni (obiekt który jest zarządzany, przechowywany). Następnie występuje N-obiektów powiązanych poprzez kategorie, atrybuty, dodatkowe parametry. W takiej aplikacji występują również użytkownicy, role. Istnieją operacje logowania, dodawania, usuwania, modyfikacji danych (CRUD). Wszystkie te elementy zwykle zamykane są w modułach, tworzących jedną aplikację.

Motywem przewodnim aplikacji StartAPPa jest zarządzanie i przechowywanie wymyślonego obiektu AppaItem . Dzieli się on na kategorie, posiada atrybuty, występuje pod postacią określonego typu, posiada statusy itd. Przechowywanie w bazie opiera się na relacjach typu jeden do jednego, jeden do wielu oraz wiele do wiele.

Obiektem AppaItem w Twojej aplikacji może być równie dobrze dowolny, inny obiekt domenowy (modelowy). Jeśli potrzebujesz zarządzać zdarzeniami takim odpowiednikiem będzie pewnie obiekt Event , jeśli piszesz soft odpowiedzialny za przetwarzanie danych przemysłowych może to być obiekt DataSample . Wszystkie tego typu obiekty będą centralną częścią aplikacji, wokół której będą tworzone inne struktury i algorytmy.

Startujemy!

W celu uruchomienia naszej aplikacji wystarczy kliknąć w link Aplikacja , a następnie postępować według kroków załączonych poniżej.

Krok 1 - Logowanie

Logujesz się do aplikacji. Nie musisz podawać żadnego użytkownika i hasła. Nasz system automatycznie wygeneruje dla Ciebie wirtualnego użytkownika. Od momentu zalogowania będziesz mógł przez max. 60 minut wprowadzać zmiany w aplikacji i ją testować. Po tym czasie dane zostaną przywrócone do stanu początkowego. Oczywiście w dowolnym momencie możesz wracać do aplikacji używając nowo wygenerowanych danych.
Logowanie&Reset - Zdjęcie

Krok 2 - Wybór modułu

Aplikacja składa się z modułów, które na naszej stronie działają w ramach jednego, w pełni funkcjonalnego systemu informatycznego, dzięki któremu możesz zobaczyć jak każdy moduł działa w realnych warunkach. Wybierasz zatem moduł, który Cię interesuje, np:
  • Logowanie z resetowaniem hasła (wraz z wysyłaniem maili do użytkownika)
  • Tabelka podstawowa ze stronicowaniem, filtrowaniem działającymi po stronie interfejsu użytkownika
  • Tabelka zaawansowana ze stronicowaniem, filtrowaniem i usuwaniem danych (operacje wykonywane po stronie serwera)

Tabela Podstawowa - Zdjęcie

  • Formularz podstawowy, walidujący i zapisujący dane użytkownika wraz ze zmianą hasła
  • Formularz zaawansowany zapisujący i walidujący dane definiowane za pomocą różnych komponentów (checkboxy, listy wielokrotnego wyboru - multiselect, radio buttony, obrazki, komponenty dat i inne...)

Jak to działa - Zdjęcie
  • Wykresy danych statystycznych (kołowe, słupkowe, liniowe)
  • Importery plików xls i csv

Krok 3 - Pobieranie

Naciskasz ikonę download-u aby przejść do strony z opcją pobrania całego modułu. Pamiętaj, że dzięki Spring Boot moduł będzie w pełni uruchamialny na Twoim komputerze jako niezależna aplikacja. Musisz jednak najpierw zainstalować Javę w wersji co najmniej 1.8 oraz posiadać zdefinowaną ścieżkę do Mavena.
Jak to działa - Kolejne zdjęcie

Krok 4 - Uruchomienie

Spring Boot
Rozpakowujesz pobranego zip-a i uruchamiasz aplikację za pomocą skryptu runIt.bat lub runIt.sh . Możesz też od razu zaimportować kod do swojego IDE jako Maven project i korzystając z dołączonego tutoriala poznawać go i dowolnie zmieniać.

Krok 5 - Nauka

Przeglądając gotowy kod i analizując jak to zostało zrobione uczysz się sposobu wykonania przedstawionego w tutorialu PDF, gdzie krok po kroku wyjaśniony jest cały proces. Najpierw zapoznajesz się ze wstępem i krótkim opisem zagadnienia.


Logowanie&Reset - Tutorial

Następnie poznajesz podstawy takie jak np. informacje o walidacji wykonywanej po stronie frontendu. Używamy tutaj mechanizmów informujących użytkownika o błędach przy pomocy tooltipa oraz innych usprawnień w zależności od rodzaju zagadnienia.


Logowanie&Reset - Zdjęcie

Kolejno poznajesz podstawy istotne przy tworzeniu kodu w backendzie, takie jak np. walidacja wykonywana za pomocą własnej adnotacji. Zwykle jest to tylko jeden z rodzajów walidacji opisywany na stronach naszych tutoriali. Używamy tutaj też przykładowo walidacji wbudowanej za pomocą mechanizmu Hibernate'a - validation-api.


Logowanie&Reset - Kurs

Jednak naszą "specjalnością zakładu" jest dokładnie opracowany model pokazujący przepływ danych w kolejnych krokach wraz z opisami i dołączoną tabelką z fragmentami kodu. Kroków zwykle jest 10-12 w zależności od stopnia skomplikowania całego procesu. Zawsze przedstawione są kolejno występujące po sobie operacje od momentu wejścia czyli pliku HTML, przez wysłanie żądania HTTP, przetworzenie danych w warstwie kontrolera i serwisu oraz zapisu lub odczytu w bazie, aż do momentu powrotu odpowiedzi do punktu rozpoczęcia procesu.


Logowanie&Reset - Fragment kursu


Logowanie&Reset - Przykład kursu Logowanie&Reset - Przykład tutoriala
Pamiętaj!
Cały czas masz pod ręką cały kod pobranego modułu co umożliwia Ci wprowadzenie swoich zmian i analizowanie tego jak to wpłynęło na funkcjonalność danego modułu. Tak właśnie realizujemy nasze motto "Nauka przez praktykę", które przyświecało nam od początku tworzenia tego portalu.


Logowanie&Reset - Kod

Technologie

Dlaczego Spring, Angular i Bootstrap? Rozwiązania te są obecnie najbardziej popularne w nowych aplikacjach javowych. Dlaczego Angular w wersji pierwszej? Dlatego, że z jednej strony trzeba od czegoś zacząć (rozważamy wprowadzenie kolejnych wersji, ale to będzie zależało od wyników ankiety, którą zamieścimy niebawem), a z drugiej, z naszych obserwacji wynika, że w wielu firmach dopiero co przekonano się do AngularJS przechodząc z jeszcze niedawno szalenie popularnego jQuery. Jest wiele firm, które nie mogą, nie chcą, bądź nie są w stanie zmienić technologii tak szybko, a przecież one szukają do pracy i zatrudniają również wielu mniej doświadczonych, czy wręcz początkujących programistów. Zresztą nawet jeśli już są doświadczeni to może tylko w BE albo tylko w FE, a przecież pracując w tych firmach pewnie też chcieliby zostać fullstackowcami :) Pamiętajmy o tym!

Czego tu nie ma

To czego bardzo chcieliśmy uniknąć podczas pracy nad projektem to chęć nauczenia wszystkich wszystkiego. Dlatego też chcąc aby dostarczone rozwiązania były czytelne i jak najprostsze w użyciu staraliśmy się ograniczyć miejscami bardziej specjalistyczne rozwiązania. Dlatego też style CSS są podane w czystej formie, bez użycia kompilatorów Sass czy Less. Jeśli ktoś będzie zainteresowany pogłębieniem wiedzy w tej tematyce to polecamy zapoznać się specjalnie dedykowanym w tym celu portalom internetowym w celu uzupełnienia wiedzy.

Dołożyliśmy wszelkich starań aby przedstawione rozwiązania były jasne, klarowne i skuteczne w swoim przekazie, aby z jednej strony były wystarczająco merytoryczne, a z drugiej żeby nie zniechęcały przez nadmiar detali. Natomiast jeśli chcecie się wyspecjalizować w jednej z ujętych przez nas technologii to jesteśmy przekonani, że projekt StartAPPa będzie doskonałą bazą do Waszego dalszego rozwoju.

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 .