Prelekcja na JUG! And what if microservices are just the beginning?

Kilka przydatnych linków dla chcących dowiedzieć się więcej: Prezentacja z JUG Punkt startowy dla zaczynających z mikrofrontendami Martin Fowler o mikrofrontendach Wsparcie webcomponentów przez frameworki Angular Elements - wsparcie dla budowania webcomponentów

Mikrofrontend - implementujemy

Implementacja wcześniej wspomnianej idei, choć wydaje się trudna na pierwszy rzut oka, wcale taka nie jest. Zasadniczo powstaje wiele rzeczy do okoła które wymagają uwagi tj. mechanizmy do aktualizacji komponentów bez pobierania ich cały czas od nowa. Odpowiednie proxy routujące ruch na np. odpowiednie wersje endpointów czy serwisów itd. Zajmijmy się jednak podstawową częścią. Umieścimy podstronę stworzoną w Angularze w aplikacji Vue, tak aby się ze sobą komunikowały bez przeszkód.

Mikroserwisy – o krok dalej

Realizacja Obecnie realizujemy warstwę widoku na kilka sposobów. Oczywiście będę tu generalizować, bo ile wdrożeń tyle pomysłów - aczkolwiek główny koncept pozostaje taki sam. Monolit W monolitycznych aplikacjach mamy monolityczny frontend. To chyba żadne odkrycie. Jednakże chcę zwrócić na to uwagę bo wrócimy do tego później. Otóż, tworząc aplikację typu monolit posiadamy w jednym repozytorium, jedną paczkę, jeden końcowy artefakt jako całość - backend & frontend. Zalety są niesamowite, pomijając tu absolutnie wielkość kodu, który mogą posiadać duuże monolity.

Refleksja w testach

Dziś krótko chciałbym przedstawić jaki problem niosą ze sobą pewne metody wykorzystywane często w testach. Dziś piszemy w java 🙂 Refleksja Gdyby zgłębiać szczegóły refleksja może brzmieć tajemniczo. Na chłopski rozum to po prostu metoda która sprawia że hermetyzacja nie istnieje i dzięki różnym tajemniczym operacjom mamy dostęp do prywatnych pól. Możemy też odczytać wszelkie metody jakie dana klasa zawiera, konstruktory itd. - taki backdoor i wciskanie różnych rzeczy na siłę.

Framework a niezależność

Niespodzianka w spring’u Ostatnio coraz więcej używam javowego springa, który codziennie mnie czymś zaskakuje. Przy okazji webcomponentowego szaleństwa tworzyłem prosty serwis do autoryzacji i chciałem obsłużyć go w innym serwisie. Wszystko było super, lecz potrzebowałem stworzyć takiego specjalnego beana w kontenerze DI – beana który będzie tworzony przy każdym requeście, a później w middlewarze czy innym interceptorze odpowiednio wypełniony i użyty w dalszej interpretacji żądania. Brzmi prosto. Przecież mamy scope typu request, można go bez problemu użyć.

Świat JS – i inne abominacje

Jak kiedyś już pisałem. Zaczynam pracę nad aplikacją “blogiem” która będzie wymagała ode mnie umiejętności na każdym polu. Frontend webowy, frontend mobilny, backend oraz rzeczy potrzebne do wdrożenia. Temat nie umarł! Najbardziej boję się frontendu webowego… JavaScript… CSS… . Ogrom frameworków, rzeczy które należy poznać, konwencje kodu czy też ich brak, narzędzia. To wszystko sprawia że przy komputerze czuję się jakbym w ogóle nie potrafił programować i zastanawiam się co ja właściwie robię i czy kiedykolwiek to ogarnę.

Java 11 – kilka nowych ficzerów

Java 11 - LTS Na wstępie chciałem tylko powiedzieć że nowa Java jest LTS(Long Term Support) tak jak poprzednio Java 8. Co to znaczy? Głównie dla użytkowników SE, będzie dostępne komercyjne wsparcie ze strony Oracle, dla użytkowników OpenJDK nie oznacza to właściwie nic, przynajmniej ja to tak rozumiem. W sieci można znaleźć kilka dyskusji na ten temat - niestety żadna z tych które przeczytałem niewiele więcej mówiła. Będą łatki bezpieczeństwa, które i tak zapewne przygotuje community.

Testowanie metod Java final || C# non-virtual

Testy testy i po… Testowanie jest (a przynajmniej powinno być) nieodłączną częścią programowania. Bez testów kod nie jest kompletny i takie tam. Jednak często bywa tak że przetestować się czegoś nie da… Programiści niektórych bibliotek zabezpieczając się przed użytkownikami, żeby utrzymać w ryzach projekt i nie hamować jego rozwoju uniemożliwiają ich użytkownikom łatwe testowanie. Języki którymi obecnie się posługuję C# i Java nie są w tej sytuacji wyjątkiem i chciałbym pokazać jak niektóre decyzje projektowania oprogramowania, lub nawet samego języka wpływają na późniejsze jego testowanie.

Technologie i stagnacja

Come back Stagnacja – to dobre słowo na początek tego wpisu. Chwilka kiedy był ostatni? Niestety sporo się ostatnio działo w moim życiu i musiałem nieco ogarnąć swój porządek dnia. Dodam tylko iż winowajcą jest ten wredny uniwersytet oraz pewna niewiasta – choć i tak nie czuję się usprawiedliwiony :( Ale porozmawiajmy o technologii. Technologią nazywam tu język programowania, framework, różnego rodzaju narzędzia jak docker czy wirtualna maszyna. Czyli wszystko czego na co dzień używamy.

Żołnierzu – dziś wysyłam Cię na front

Ostatnio pisałem o tym, że dążę do stania się fullstack developerem. Nie poznałem się jeszcze za dobrze na backendzie, ale cały czas nad tym pracuję. W zasadzie jeszcze długo nie zająłbym się webem gdyby nie pewne nieoczekiwane wydarzenie… Jak dostałem szansę poznania frontu? Wszystko zmienił mail na firmowej skrzynce o treści w skrócie “witaj, idziesz na szkolenie z weba”. Z początku nie wiedziałem za bardzo co o tym myśleć, ale po chwili się ucieszyłem.

Ja, kariera i blog – czyli pomysł na…

Zawodowo programuję od niespełna 2 lat głownie jako programista aplikacji mobilnych i desktopowych UWP, czyli najnowszy framework microsoftu dedykowany windowsowi 10… No i tutaj pojawia się problem, gdyż od lat jestem wiernym wyznawcą systemów bazujących na linuxie, a windows phone/mobile umarł śmiercią naturalną. Zderzenie ze środowiskiem okienek było dla mnie lekkim szokiem, gdyż przyzwyczajony do linii komend swojego debiana nie mogłem się przestawić w tryb – “chcesz coś zrobić to sobie wyklikaj”.