Pierwszy miesiąc z Hobusu

Aplikacja Hobusu jest rozwijana od 1.5 miesiąca. Niniejszy post jest podsumowaniem okresu, w którym do aplikacji dorabiałem kolejne funkcjonalności oraz weryfikowałem działanie tych istniejących. Przez mienione 1.5 miesiąca odrzuciłem kilka pomysłów na nowe możliwości aplikacji. Powodem, dla którego funkcjonalności te nie były wdrażane był sposób w jaki korzystam z aplikacji czyli krótko mówiąc rzeczywistość je zweryfikowała.

Continue Reading

Podsumowanie projektu inżynierskiego – architektura mikroserwisowa

Od kliku miesięcy projekt inżynierski zajmował 90% czasu, który mogłem poświęcić na programowanie po godzinach. Oficjalnie projekt nosił nazwę „Architektura mikroserwisowa na przykładzie aplikacji do komunikacji”. Na początku nieco obawiałem się podejmować problem (czyt. mikroserwisy), który znałem tylko teoretycznie, ale po pewnym czasie przekonałem się, że nie taki diabeł straszny jak go malują. Wykonane odpowiednio wcześnie planowanie oraz wczesne rozpoczęcie projektu pozwoliło mi na zrealizowanie go z dużym zapasem czasowym. Cały proces rozwijania architektury był bardzo przyjemny, ponieważ połączyłem zagadnienie, które interesuje mnie od dłuższego czasu z wizją, że zdobytą wiedzę będę mógł wykorzystać poza murami uczelni. Sytuacja win-win.

Continue Reading

Szybka akcja #2 – AngularJS

W ramach Szybka akcja #1 – Play Framework napisane zostało REST API do aplikacji Hobusu. Mając stworzoną logikę po stronie serwera przyszedł czas na realizację części frontendowej.

Do tej pory wszystkie projekty realizowałem na bardzo podobnym stosie technologicznym – Bootstrap + jQuery + zewnętrzne biblioteki JavaScript. Miałem również chwilową przygodę z MustacheJS. Projekt Hobusu chciałem zrealizować jako Single Page Application, więc pisanie funkcjonalności z wcześniej wspomnianymi technologiami zajęłoby dużo czasu i wymagało sporo rzeźbienia. Wybór padł na framework AngularJS.

Continue Reading

Szybka akcja #1 – Play Framework

Jesteśmy obecnie w trakcie okresu w roku, w którym poziom naszej motywacji sięga najwyższych wartości. Jednym z moich postanowień na rok 2017 jest zaoszczędzenie pewnej sumy pieniędzy. W związku z tym stwierdziłem, że potrzebuję w jakiś sensowny sposób mieć wgląd w swoje wydatki, aby móc je stale kontrolować, analizować i na bieżąco korygować. W ten sposób powstał pomysł na napisanie aplikacji, która będzie zaspokajała podstawowe potrzeby w tym temacie.

Continue Reading

Konwersja obiektów z użyciem ConversionService

Projekt, nad którym obecnie pracuję, to system aplikacji mikroserwisowych komunikujących się za pomocą protokołu HTTP. Ze względu na ograniczone konteksty używanej domeny poszczególne aplikacje nie mają pełnej wiedzy o encjach – po prostu nie ma takiej potrzeby. Niestety „odchudzenie” encji w pewnych częściach systemu powoduje konieczność ich konwertowania i uzupełniania o dodatkowe dane podczas komunikacji. W celu enkapsulacji logiki konwersji tworzyłem kolejne konwertery, które z czasem zaczęły być uciążliwe i niepraktyczne w zastosowaniu.

Continue Reading

Zestawienie połączenia HTTPS pomiędzy Apache Tomcat a klientami

HTTPS to szyfrowana wersja protokołu HTTP, która zabezpiecza dane wymieniane pomiędzy serwerem a klientem. W niniejszym wpisie pokażę w jaki sposób włączyć obsługę HTTPS w kontenerze Apache Tomcat oraz jak skonfigurować aplikacje klienckie.

Poprawna konfiguracja HTTPS wymaga, aby serwer posiadał „dokumenty”, które to będzie przedstawiał przy łączeniu się do źródeł wrażliwych danych. Takim dokumentem jest certyfikat, który możemy wygenerować za pomocą keytool.

Continue Reading

Zamiana preg_replace na preg_replace_callback

Funkcja preg_replace służy do podmiany podciągów ciągu znaków na podstawie wyrażeń regularnych. Język PHP został dodatkowo wyposażony w modyfikator /e. To dzięki niemu mieliśmy możliwość wykonywania dodatkowych funkcji na dopasowanym ciągu np. strtoupper. W wersjach od 5.5.0 modyfikator ten został oznaczony jako DEPRECATED, a w 7.0.0 i wyższych usunięty.

Continue Reading

Zdalne debugowanie aplikacji uruchomionych w kontenerze Tomcat

Istnieje wiele różnych technik debugowania. Jedną z najlepszych i najwygodniejszych jest debugowanie za pomocą narzędzi, które pozwalają nam zatrzymywać wykonywanie aplikacji w wyznaczonych miejscach (breakpoint).

Realizacja jednego z projektów nasunęła pytanie:  w jaki sposób debugować aplikację napisaną w Javie przy użyciu Springa, która jest uruchamiana za pomocą Mavena we wbudowanym kontenerze Tomcat, używając narzędzi dostępnych z poziomu IntelliJ?

Continue Reading