Posty

Czym właściwie jest Spock?

Obraz
Artykuł ten jest wstępem do większej serii.

Wyobraźcie sobie świat, gdzie dokumentacja i kod to jedno. Gdzie wymagania biznesu są kompilowane i jesteś pewny, że są spełnione. Świat, w którym kod piszesz jak tekst i nie musisz go odkodowywać. No właśnie! Piękna idea. Narzędzie, które wam dzisiaj przedstawię, bardzo przybliża nas do niej.
Przed wami - Mr. Spock!


Od jakiegoś czasu używam do swoich testów Spocka. Postanowiłem się z wami podzielić swoimi przemyśleniami na jego temat.

Czym jest Spock?

Spock jest to framework testowania oraz specyfikacji dla Javy i Grooviego. Używa on runnera Junit’a, więc jest kompatybilny z wieloma fajnymi narzędziami CI oraz IDE.

Po co się go uczyć?

Spock jest to świetnie napisane narzędzie, którego celem jest zastosowanie BDD w nieco inny sposób, niż dotychczasowe rozwiązania nam oferowały. Dzięki Spockowi możemy pisać specyfikacje w kodzie i mieć tylko jedno miejsce do utrzymania go.

Jakie ma zalety?

Spock (dzięki użyciu Grooviego) usuwa dużo narzutów Javy…

Czym grozi łamanie prawa Demeter w rzeczywistości?

Jakiś czas temu natknąłem się na świetną publikację napisaną po francusku (brak linka z powodu sklerozy i nieznajomość francuskiego, żeby znaleźć w google). Opisywała ona sytuacje, która mi utknęła w pamięci i mam zamiar się nią z wami podzielić.
Lecz wszystko po kolei…

Czym jest prawo Demeter?
Prawo Demeter nieformalnie można określić jako „Nie rozmawiaj z nieznajomymi”. Co idzie za tym stwierdzeniem? Otóż metoda danego obiektu może wywołać tylko metody:
- tego samego obiektu,
- dowolnego obiektu przekazanego jako parametr,
- dowolnego obiektu przez nią stworzonego,
- dowolnego składnika klasy, do której należy dana metoda.

Mnie osobiście nie podoba się określenie „Nie rozmawiaj z nieznajomymi”. Wolę o prawie Demeter myśleć w sposób: „niech twój obiekt będzie egoistyczny”. Aby zrozumieć moje podejście, musimy zrozumieć, jaki kod łamie to prawo.

Człowiek stefan = new Człowiek(„Stefan”); Parówka parówka = new Parówka(); stefan.getKorpus().getZoladek().getZawartosc().add(parówka);
Czy m…

Efektywne programowanie - recenzja

Obraz
Przez ostatnie półtorej miesiąca, siedziałem i starałem się zrozumieć rozdział po rozdziale książkę Joshua Bloch’a. Muszę wam przyznać, że wydanie trzecie „Efektywnego programowania”, jest ciekawą pozycją. Niestety nie dałem rady przeczytać drugiej wersji ze względu na słabe tłumaczenie więc nie jestem w stanie porównać wydań między sobą. Pomimo to książkę odebrałem bardzo dobrze, chociaż nie była prosta – może i dlatego, że czytałem ją po angielsku?:) Niektóre rozdziały dotyczyły elementów, z którymi nie pracuje na co dzień (chociażby wielowątkowość w Javie) ale wciąż mogłem wyciągnąć cenne lekcje.

Bloch w swojej pozycji nawiązał do Javy 8 oraz 9. Kilka rozdziałów jest poświęconych tylko javie 8 oraz bardzo często, w rozdziałach widzimy kod napisany z użyciem lambd i tym podobnych. Autor często również wspomina w ramach danego rozdziału, że „w Javie 8 można to zrobić lepiej”.
Niestety zawiodłem się informacjami o Javie 9. Bloch niewiele wspomina o niej a o samej modułowości napisa…

CodeEurope - Czyli historia głodnego programisty.

Obraz
Dowiedziałem się o tym wydarzeniu na, którymś JUGu wrocławskim (serdecznie tam zapraszam). Za uczestnictwo w spotkaniu dostaliśmy promocje, aby kupić bilety jako early birds (wczesna faza kupowania biletów). Ostatnia faza kupna doszła do 499 złotych, tak więc kwota duża. Pomyślałem - promocja! Czym prędzej kupiłem bilety jeszcze dnia, kiedy dostałem kod promocyjny i czekałem na konferencję.

W dniu 13 grudnia 2017 przybyłem na CodeEurope. Chociaż wielką podróżą bym tego nie nazwał, ponieważ dojechałem tramwajem z mieszkania. 

Niestety nie biorąc pod uwagę już tego, że przechodzenie z budynku do budynku bez kurtki było niepraktyczne, to konferencja moim zdaniem miała poważne problemy z tłumem ludzi. Agenda również nie przewidywała zbyt dużych przerw, więc na przejście z sali jednej do drugiej miałem 10 minut, a przebicie się przez tłumy ludzi bywało wyzwaniem.

Problemem był również katering - otóż nie było go. Przyzwyczajony z innych konferencji nie biorę własnych kanapek na konferencj…

Darmowa 3 miesięczna subskrypcja Pluralsight

Obraz
Jakiś czas temu natknąłem się na informację, że pluralsight umożliwia trzy miesięczną subskrypcję, abyśmy mogli upewnić się czy warto wykupić u nich dłuższy pakiet.

Czym jest Pluralsight?
Jest to zbiór kursów, dzięki którym możecie się rozwijać. Różnica między nim a Udemy.com jest taka, że pluralsight udostępnia wszystkie materiały, jeżeli wykupisz subskrypcję. Udemy natomiast sprzedaje Ci dostęp do danego kursu – zazwyczaj dożywotnio.
Jak dostać subskrypcję?

Krok 1 – Zarejestruj się na https://www.visualstudio.com/pl/dev-essentials/

Krok 2 – Zaloguj 😊

Krok 3 – Kliknij ten link


Krok 5 – Znajdz ten kafelek i kliknij aktywuj

Krok 4 – Zarejestruj się na Plurasight.
Tyle wystarczy, aby przez 3 miesiące cieszyć się dostępem do materiałów.

Liderzy jedzą na końcu. - Recenzja

Obraz
Jeżeli chcecie dowiedzieć się dlaczego niektóre zespoły potrafią świetnie współpracować, a inne nie, to polecam wam książkę Simona Sinek. Czytając ją poznacie inne podejście do zarządzania ludźmi niż nastawienie na krótkoterminowe zyski. Spotkacie się z historią Johnego Bravo, którą można znaleźć pod hasłem There Are Some Fates Worse Than Death: Mike Drowley. Poznacie jak niektóre mechanizmy motywowania wpływają na nasze ciało oraz dlaczego w taki sposób. Dowiecie się, jak największe korporacje podchodzą oraz podchodziły w czasach kryzysu do swoich pracowników. Książkę uważam za ciekawą i wartą przeczytania.

Jeżeli chcesz być liderem, który zamiast liczb widzi potrzeby ludzi - ta pozycja jest dla Ciebie.

Eclipse - widoczność klas

Obraz
Chyba każdy może zgodzić się ze stwierdzeniem, że kod jest częściej czytany niż pisany. Jest to stwierdzenie, które powie każdy interesujący się czystym kodem lub software craftsmanship. Jeżeli utrzymywaliście czyjś kod to wiecie jak można docenić przyjazną architekturę.
Osobiście jestem wielkim fanem używania zasięgu pakietowego dla klas i metod.
Dzięki temu podejściu możemy zastosować architekturę nazywaną clean architecture. Jeżeli nigdy o tym nie słyszeliście, polecam się zapoznać.

Elicpse na początku mi nie pomagał w zastosowaniu tego podejścia. Kojarzycie ten brzydki cylinder?



Wygląda niegroźnie ale...



Przykład jest wzięty z biblioteki Quava. Niech mi ktoś powie od czego zacząć analizę tego kodu? No właśnie. A teraz niech się zadzieje magia i pokażmy zasięg pakietowy usuwając gitowy cylinder.




Niebieskie trójkąciki oznaczają, że klasa jest zasięgu pakietowego(tutaj więcej icon). Wiemy, że nie musimy od nich zaczynać analizy kodu. Ułatwia? Jestem tego pewny.

Usunięcie cylindra z E…