•  

    877 + 1 = 878

    Tytuł: Java. Efektywne programowanie. Wydanie III
    Autor: Joshua Bloch
    Gatunek: informatyka
    Ocena: ★★★★★★★★☆☆

    Mam lepszą, bardziej chwytliwą nazwę dla tej książki - „Java. 97 rzeczy, które powinieneś wiedzieć”.

    Jeśli jakaś wiedza o Javie aspiruje do tej, którą powinno się wiedzieć, to raczej jest zawarta w opisywanej tu książce, choć oczywiście i tak nie jest to żadna „biblia programistów”. Sama struktura „Efektywnego programowania” jest bardzo zachęcająca, bo podzielona na 90 tematów zgrupowanych tematycznie w 12 rozdziałów. Tematy nie mają sztucznie narzuconego limitu stron, więc są bardzo rozbudowane i często przedstawione w formule „10 przepisów na…” przedefiniowanie metody hashCode czy sprawdzenie poprawności parametrów w metodzie. Często okazuje się, że niektóre rozdziały są rozbudowywane przez autora, ale w sumie nawet niepotrzebnie, bo właściwie to używanie danej funkcjonalności jest niezalecane. W sumie możesz przedefiniować metodę clone, ale lepiej użyj konstruktora kopiującego. Trochę mnie rozczarowało, że autor wspomina o bibliotece AutoValue do generowania metod wspólnych obiektów, a pomija bibliotekę Lombok, którą mógłby użyć w tych, ale również i innych przykładach, jak ze wzorcem budowniczego.

    Do tej pory nie spotkałem się chyba z bardziej zaciętym krytykiem Javy niż Joshua Bloch. W książce znajdziemy dziesiątki nieścisłości czy wręcz błędów, na które możemy się natknąć podczas korzystania z bibliotek języka. Autor szczegółowo opisuje przypadek metody remove z interfejsów List oraz Set, której wywołanie z liczbą całkowitą prowadzi do całkowicie innego zachowania w zależności od interfejsu (unboxing plus przeciążenie metod). Jeśli zajrzymy do kodu tych interfejsów, to zauważymy, że ich autorem jest… Joshua Bloch. Bloch jest współtwórcą samego języka, dlatego dosyć naturalnie przychodzi mu samokrytyka i żonglowanie przykładami ze specyfikacji Javy.

    Książka jest napisana raczej suchym i technicznym językiem, anegdotek nie zauważono, chociaż moim zdaniem przydałoby się trochę więcej łopatologii. Mam wrażenie, że autor czasami niepotrzebnie komplikował definicje i przykłady, chociażby wplątując jakieś niepowiązane z tematem kwestie algorytmiczne.

    Pozycję mogę polecić średnio zaawansowanym programistom, bo, moim zdaniem, stanowi dobre rozwinięcie tematów z zakresu czystego kodu czy wzorców projektowych dla języka Java. Wydanie trzecie, względnie nowe, bo z roku 2018, dotyczy Javy 9, a w wyniku obecnej biegunki wydawniczej mamy już Javę 16, ale myślę, że treść książki broni się pomimo tego.

    Wpis dodany za pomocą tego skryptu

    #bookmeter #readdev #ksiazki #programowanie #naukaprogramowania #czytajzwykopem

    źródło: javep3.jpg

    +: g.........k, m.........e +16 innych