data.mdx.frontmatter.hero_image

Recenzja – Building Microservices with ASP.NET Core

2017-09-22 | Recenzje | bd90

Z racji tego że to okrągły, 16 post, to postanowiłem zrobić coś nowego :). Obecnie mój blog jest wypełniony ciężkimi, technicznymi tematami. To zawsze będzie serce i kręgosłup tego bloga. Jednak, aby zachować świeżość umysłu, trzeba od czasu do czasu zrobić coś nowego. Postanowiłem podzielić się opinią o książce "Building Microservices with ASP.NET Core" autorstwa Kevina Hoffmana. Książka ta jest stosunkowo nowa (wydana w tym miesiącu) i w momencie pisania tego artykułu nadal utrzymuje się wśród nowości serwisu https://helion.pl/.

Ogólnie o książce

Najpierw zacznę od podstawowych informacji o samej książce. Wydana jest tylko w języku angielski. Przez polskie kanały dystrybucji można kupić tylko e-book. Niektórzy lubią ten dotyk i zapach papieru, jednak mi forma elektroniczna nie przeszkadza. Oczywiście ,czytanie na Kindle ma swoje wady np. analiza długich fragmentów kodu źródłowego to pain in ass... Stąd pierwszym plusem tej książki jest zawarta we wstępie informacja, że wszystkie aplikacje omawiane w książce są dostępne na Githubie.

Jeżeli chodzi o cenę, to niestety muszę przyznać że książka jest dość droga. Za sam ebook zapłacimy 160 PLN. Dla niektórych może wydawać się to powalająca kwota (w końcu fabularne książki kosztują 20% - 30% tej ceny) acz widziałem książki techniczne i za 300. Za tą cenę otrzymujemy 232 strony podzielonych na 12 rozdziałów.

O Autorze

Hoffman to znane nazwisko - mamy w Polsce Jerzego Hoffmana, którego przedstawiać nie trzeba. Amerykanie mają Dustina Hoffmana, i tu też nie muszę się rozpisywać. A słyszeliście o Kevinie Hoffmanie? Nie proponuje go googlować - dla wyszukiwarki bardziej znany jest aktor i reżyser kryjący się pod tymi danymi. Nie ma on niestety związku z naszym autorem. Natomiast na oficjalnej stronie wydawnictwa O'Reily możemy przeczytać, że jest to jego druga publikacja przez nich wydana. Z dodatkowych informacji jakie tam się znajdują wynika, że zaczął programować w wieku 10 lat i obecnie jest pracownikiem firmy Pivotal.

Po krótkim research-u znalazłem jeszcze, że posiada swoją stronę domową: www.kotancode.com, jednak strona jest w budowie.

Trochę o treści

Wprowadzenie w świat .NET Core

W książce są opisane podstawy tworzenia mikroserwisów w technologi .NET Core(no shit sherlock!). Podróż rozpoczynamy od stworzenia zwykłej aplikacji konsolowej. Następnie, poprzez dodawanie odpowiednich pakietów nuget-a i kilku linijek kodu, przetwarzamy ją w coś więcej. Autor wielokrotnie podkreśla jak ważna dla niego jest wiedza, co się dzieje pod spodem, jak to jest zbudowane. Co więcej, podkreśla często iż możliwość migracji z projektu konsolowego do np. MVC jest dostępna dopiero w technologii .NET Core, wcześniej przy projektach w .NET Framework to nie było takie proste :)

W dalszych partiach omawia dwie usługi CI (Wrecker i Circle CI). W tej części brakowało mi jedynie omówienia Gitlab CI, którego używam w swoich aplikacjach. Niestety nie można mieć wszystkiego (Jeżeli chcesz poznać możliwości Gitlab CI dla .NET Core zajrzyj tutaj). Nigdy nie korzystałem z usług wyżej wymienionych serwisów, acz w najbliższym czasie chce sprawdzić Circle CI. Szczególnie zachęciła mnie reklama:

Jenkins is Free, Your time isn't

Pierwsze Mikroserwisy

Kolejne rozdziały wyjaśniają czym są "Backing Service" i do czego są potrzebne ilustrując to prostymi przykładami. Motywem przewodnim jest budowanie aplikacji, która pozwala zarządzać zespołem ludzi (definicje zespołu, jego członków, ich lokalizacja).

Urzekło mnie to, że czytelnik nie jest od razu rzucany w wir szyn komunikacyjnych opartych na protokole AMQP (RabbitMQ, ZeroMQ). Pierwsze serwisy są budowane za pomocą starego, porządnego Rest API i komunikują się ze sobą wykorzystując HTTP Client-a.

Bardziej zaawansowane Mikroseriwsy

Po dość jasnym wytłumaczeniu podstaw autor przechodzi to bardziej zaawansowanych tematów (zahaczając nawet o takie paradygmaty jak CQRS i Event Sourcing). W mojej opinii rozdział ten był dość skromny, mógłby zostać trochę bardziej rozbudowany. Samemu użyciu szyny komunikacyjnej RabbitMQ można by poświęcić rozdział. Wiele tematów zostało poruszone po łebkach.

Od tego momentu tendencja do nie zagłębiania się w tematy utrzymuje się do końca. To jakby kupić pizze i po zjedzeniu kawałka wyrzucić resztę do kosza. No dobra, może nie aż taka tragedia, acz powierzchniowe podejście do wykorzystania gotowych rozwiązań typu service discovery, konfigurowania serwisów, autoryzacji za pomocą OpenID Connect i JWT czy budowanie aplikacji Real Time pozostawia pewien niedosyt.

Miłe słówko

Dużo radości sprawiły mi odwołania do chyba najsławniejszego serwisu zbudowanego na architekturze mikroserwisów czyli Netflixie. Nie są to bezwartościowe fragmenty, lecz odwołania do wartościowych elementów jak np. Netflix Eureka, który służy właśnie jako service discovery.

Ocena i podsumowanie

Można powiedzieć, że 232 strony to całkiem sporo, acz momentami brakowało trochę treści. W przypadku próby wdrożenia się w zaawansowane techniki i narzędzia tworzenia mikroserwisów prawdopodobne jest odczuwanie sporego niedosytu. Nie znaczy, że jest to książka bez wartosci. Te 232 strony są wypełnione wiedzą potrzebną do rozpoczęcia pracy z mikroserwisami. Polecam je osobom, które dopiero planują zacząć swoją przygodę z światem mikroserwisów. Dla bardziej zaawansowanych programistów w tym temacie będzie to trochę stratą czasu.

Nie zrozumcie mnie źle. Konstrukcja jak i sposób tłumaczenia są niezwykle przystępne. Stare chińskie przysłowie mówi, że jak coś jest do wszystkiego, to jest do niczego (a może moja babcia tak mówiła? grunt, że stare się zgadza). Książka dostaje ode mnie mocne 4/5 za to, że w dość jasny i prosty sposób pozwala na rozpoczęcie programowania aplikacji rozproszonych.

Dzięki za uwagę. Chcecie czegoś więcej/mniej? Coś wam się szczególnie podobało? Macie jakieś uwagi? Śmiało piszcie w komentarzach!

Do Następnego!

By Bd90 | 22-09-2017 | Recenzje