Nie jesteś zalogowany Zaloguj Kontakt

„Prostota to wspaniała zaleta, jednak jej osiągnięcie wymaga ciężkiej pracy, a jej docenienie - odpowiedniej wiedzy.”
Edsger Dijkstra

Projekt Java CMS

Witaj, drogi Użytkowniku! Strona, którą oglądasz, powstała jako projekt, w którym zapoznaję się z Javą. Po prostu od jakiegoś czasu chodził mi po głowie pomysł nauczenia się Javy, a wiadomo, że najlepszą metodą nauki jest praktyka. I dlatego usiadłem do komputera i zacząłem pisać... A jak mi szło, postaram się opowiedzieć. Zamierzam opisać kolejne etapy, jakie musiałem przejść od wyboru infrastruktury do uruchomienia serwisu. Prace nad projektem trwały od stycznia do kwietnia 2015 r. Serwis od strony backendu (czyli silnika) jest już gotowy, natomiast treści tu zawarte powstają na bieżąco, i w zależności od tego, co mi się przypomni lub przyjdzie do głowy, pojawią się kolejne artykuły.

Od czego zacząć?

Zacząłem od poszukiwania darmowej platformy, na której można wdrażać aplikacje w Javie. Mój wybór padł na OpenShift. Jest to bardzo wygodny i nowoczesny hosting oparty na chmurze. Darmowe konto w hostingu umożliwia uruchomienie do trzech aplikacji. Każda aplikacja może mieć dodatki, np. baza danych, phpMyAdmin itp. Dla mnie wystarczy.

Środowisko programistyczne

Teraz trzeba było wybrać środowisko programistyczne, tzw. IDE (Integrated Development Environment), w którym będę sobie pisał kod. Wahałem się między NetBeans a Eclipse - oba darmowe. W końcu wybrałem Eclipse dla Java EE. Następnie należało skonfigurować Eclipse, tak aby środowisko "współpracowało" z OpenShiftem, a dokładnie rzecz ujmując - z repozytorium na serwerze OpenShift. Dzięki temu mogłem każdą zmianę w kodzie commitować bezpośrednio na serwer - bez wychodzenia z IDE, bez używania FTP. Kod był od razu uwzględniany, efekt widziało się na stronie. Mówiąc inaczej - serwis tworzyłem od razu na serwerze produkcyjnym. Procedurę konfiguracji Eclipse opisałem w artykule Procedura uruchomienia projektu.

Pierwsze kroki

Mając "podstawę sprzętowo-środowiskową" zacząłem pisać elementarne aplikacje. Jak to zwykle bywa, w pierwszej kolejności należało napisać aplikację "Hello, World!". Potem przyszła kolej na przetrenowanie obsługi formularzy (odbieranie danych od użytkownika i pokazywanie na ekranie). W naturalny sposób zastosowałem tu architekturę serwletów. Tak mi się ona spodobała, że już przy niej pozostałem. Jest ona na tyle przejrzysta i zrozumiała, że pozwala łatwo zrozumieć przepływ sterowania w aplikacji - od początku do końca, od odebrania requesta, poprzez logikę biznesową, jaką zaprojektowaliśmy, aż po sposób przygotowania odpowiedzi i zwrócenie response'a.

Baza danych

W następnym kroku zacząłem tworzyć zaczerpnięte z przykładów aplikacje, skupiając się na współpracy z bazą danych. Moim celem było opanowanie techniki pełnej obsługi typu CRUD (Create Read Update Delete), a więc podstawowych działań, jakie podczas normalnej pracy aplikacja wykonuje na bazie. Tak więc niezbędne było opanowanie zapisu do bazy odbieranych od użytkownika danych oraz wyświetlanie danych pobieranych z bazy.

Architektura MVC

Gdy obsługę bazy miałem opanowaną, stworzyłem szkielet aplikacji oparty na MVC (Model View Controller), w którym kontrola działania, pobieranie i zapis danych oraz prezentacja interfejsu użytkownika są od siebie odseparowane. W architekturze serwletów funkcję kontrolera pełnią właśnie serwlety. W przypadku modelu do komunikacji z bazą danych użyłem interfejsu JDBC (Java DataBase Connection). Do prezentacji interfejsu użyłem technologii JSP (Java Server Pages) wraz z JSTL (Java Standard Tag Library).

Efekt końcowy

W tym momencie wszystkie niezbędne do zbudowania aplikacji elementy zostały opanowane i można było zacząć tworzenie serwisu. Zdecydowałem, że stworzę prosty serwis typu Blog. A więc będą tu zawarte dwie funkcjonalności - CMS oraz system komentarzy. Kod źródłowy aplikacji znajduje się na Githubie, zaś link znajdziesz w tym artykule. I tak oto doszliśmy do momentu, gdy całość jest gotowa, ja sobie piszę stronę startową, a Ty, drogi Użytkowniku, ją czytasz i, jeśli nie straciłeś jeszcze zainteresowania, otworzysz kolejną podstronę, rzucisz na nią okiem, i - co mnie bardzo ucieszy - napiszesz jakiś komentarz, ale koniecznie pozytywny! Inne będę bezlitośnie usuwał! Żartowałem. :) No to życzę przyjemnej lektury i zachęcam do pisania komentarzy!