Recenzja książki „Myślenie obiektowe w programowaniu”

Myslenie obiektowe

Książka dobra dla początkującego programisty ze względu na poruszenie jedynie podstaw tematu. Generalnie po przeczytaniu tej pozycji nie miałem wrażenia, że dowiedziałem się czegoś nowego. Co więcej, jest ona w całości opatrzona nudnymi przykładami w C#.

Tytuł książki dokładnie wyczerpuje jej treść – opisano w niej przykłady, jak programować w prosty sposób, by nie wpaść w tarapaty i ułatwić sobie pracę z kodem.

Książka zawiera dokładny opis, w jakich miejsach umieszczać metody i poszczególne pola, jak tworzyć metody dostępowe i jak budować przejrzyste interfejsy. Poruszono również takie zagadnienia, jak: elementy dziedziczenia, funkcji wirtualnych.

ZALETY

Pozytywnym spostrzeżeniem po przeczytaniu tej pozycji jest utwierdzenie się w przekonaniu, iż dziedziczenie składowych obiektów jest w programowaniu nadużywane, a fascynacja nim prowadzi do bardzo skomplikowanego kodu.

REKOMENDACJA

Książkę polecam początkującym programistom C#, którzy chcieliby nauczyć się podstaw myślenia obiektowego.

OCENA

Książkę oceniam: 5/10.

Kilka tygodni po jej przeczytaniu niewiele z niej pamiętam. Choć dałem autorowi szansę do końca i dotrwałem do ostatniej kartki, to jednak była to dość nudna lektura.

 

Recenzja książki „Wzorce projektowe – elementy oprogramowania obiektowego wielokrotnego użytku”

Wzorce-Projektowe

O książce „Wzorce projektowe – elementy oprogramowania obiektowego wielokrotnego użytku” można powiedzieć, że powinna być wpisana w kanon każdego dobrego programisty. Pozycja ta jest cytowana przez wiele innych źródeł, a sami autorzy są nazywani „bandą czterech”. Jako pierwsi zapisali oni wszystkie dobre metody programowania w jednej książce, co przyniosło im znaczny rozgłos.

Książka zawiera szczegółowe omówienie wzorców projektowych podzielonych na trzy grupy:  wzorce konstrukcyjne, strukturalne i operacyjne.

Ocena

Książkę oceniam 8/10.

Uzasadnienie

Dlaczego wystawiam książce „tylko” 8/10? Jest napisana ciężkim, technicznym językiem. Pomimo, że niektóre opisywane metody różnią się znacznie stopniem trudności, to cała książka utrzymana jest w podobnym stylu. Poza tym wykorzystywany przez autorów kod jest trudny do zrozumienia dla początkujących programistów, a niekiedy odbiega od dobrej notacji (np. metody rozpoczynają się wielkimi literami). Pomimo tego pozycja stanowi fachową literaturę.

Rekomendacja

Książkę poleciłbym co najmniej średnio zaawansowanym programistom.

Recenzja książki „C++ i Qt – wprowadzenie do wzorców projektowych”

Qt wprowadzenie do wzorców projektowych

Książkę można byłoby zawrzeć w jednym zdaniu – jest to zdecydowanie najlepsza pozycja o Qt, którą czytałem. Choć zdjęcie wygląda, jakbym ją wypożyczył z biblioteki, gdzie była czytana co najmniej przez kilkadziesiąt osób, to jednak muszę przyznać, że jest to książka którą czytałem sam wielokrotnie, a jej wygląd wynika z wysokiej jakości treści i przykładów dobrych praktyk, do których wracałem.

„C++ i Qt wprowadzenie do wzorców projektowych” zawiera kompleksowe omówienie zasad tworzenia wysokiej jakości oprogramowania. Wyjaśnione są w niej najważniejsze wzorce projektowe, widgety, sposoby ich konstruowania, pokazany na przykładach język modelowania UML. Autorzy rekomendują też w większości narzędzia typu open source i podają wiele przykładów praktycznych.

ZALETY

Po przeczytaniu książki można wielokrotnie do niej wracać, ponieważ jest w niej tak dużo rozwiązań i solidnych przykładów, że mogłaby się  ona z powodzeniem nazywać biblią programisty.

REKOMENDACJA

Lekturę polecam osobom, które miały już styczność z programowaniem. Raczej co najmniej śrenio zaawansowanym programistom. Książkę mogę zarekomendować wszystkim, chcącym stać się lepszymi programistami C++/Qt.

OCENA

Bez zastanowienia: 10/10.

&nb

Recenzja książki „Agile – przewodnik po zwinnych metodykach programowania”

Agile Przewodnik po zwinnych metodach programowania

Książka zaczyna się przydługim i nudnym wstępem, który ciągnie się przez ok. 100 stron i zawiera wypunktowane, sucho omówione punkty. Dalsza część lektury jednak bazuje na doświadczeniach autorów, które są barwnie omówione i opatrzone przykładami.

Książka omawia metodyki zwinne projektowania (agile), a składa się z omówienia różnych podejść Scrum, XP oraz Lean i Kanban. Treść jest dosyć zwarta, obrazowa i życiowa.

Autorzy odnoszą się dosyć krytycznie do programowania kaskadowego, polegającego na uprzednim planowaniu wszystkiego i zawieraniu w dokumentacji, na rzecz programowania zwinnego, gdzie decyzje odnośnie projektu podejmuje się w ostatnim sensownym momencie. Ma to oczywiście swoje wady i zalety, które są często pomijane, ponieważ po podpisaniu kontraktu często okazuje się, że klienci chcą dodawać nowe funkcjonalności lub zmieniać koncepcje. W książce brakuje mi rozwiązania tego problemu. Autorzy opisują nowe wymagania jako wartości i choć omawiają budżetowanie projektów, nie wspominają o sposobach rozwiązywania takich sytuacji.

Książka zwraca uwagę na dość istotne problemy – traktowania programistów jako maszynek do klepania kodu. Lektura pokazuje, jak stworzyć atmosferę do tego, aby zespoły same zaczęły myśleć i organizować się.

Autorzy zwracają uwagę na wiele istotnych kwestii, jak sposoby testowania oprogramowania. W przypadku XP szczególne miejsce zajmuje tu programowanie w parach, codzienne spotkania, iteracyjny sposób produkcji oprogramowania ze spotkaniami odbywającymi się co 2-4 tygodni. Odradzam jednak tę lekturę freelancerom, ponieważ głównym zadaniem książki było skupienie się na zarządzaniu zespołem.

Po przeczytaniu pozycji miałem wrażenie, że autorzy postrzegają programistów jako typowych introwertyków, zamkniętych w sobie i nie potrafiących się komunikować ze światem. Ciekawie omówiono kwestię przyrostu problemów w zespole związanych ze złą komunikacją i bezmyślnością, która może świadczyć o tym, że duże zespoły są w stanie wyprodukować niewiele więcej kodu niż freelancer.

Uzasadniając swój wniosek, mogę powiedzieć, że wokół programistów, którzy wytwarzają kod, są osoby odpowiedzialne za kontakt z klientem, niekoniecznie potrafiące przekazywać realną wartość pomysłu, o którym myślał klient. Zespół często też może nie komunikować się ze sobą dobrze i pracować nad byle jakim kodem, którego naprawę zleca młodszym pracownikom, a im z kolei znajdowanie błędów zajmuje kilka dni.

Dość frustrującym i demotywującym dla zespołu jest feedback z gatunku „klient tego nie chciał”, który wynikaja zwykle ze złego przekazu, jego braku lub stąd, że osoba kontaktowa zapomina o wymogach klienta. Należy zwrócić uwagę na to, że klienci są różni – najgorszą, ale często zdarzającą się sytuacją, jest konieczność zrobienia czegoś, nad czym klient musi się jeszcze zastanowić. Po przeczytaniu książki nasuwa mi się myśl: ile pracy, wysiłku i pieniędzy oszczędza bezpośrednie ustalanie wymagań?

OCENA

Książkę oceniam: 7/10. Nie zaspokoiła w pełni moich wymagań, ale stanowi dosyć solidną podstawę tematu zarządzania zespołem i wiele mówi o dostarczaniu wartości klientowi i użytkownikom. Ma również rozwiązania umożliwiające tworzenie środowiska, w którym zespoły są zmotywowane.

REKOMENDACJA

Książkę poleciłbym szczególnie informatycznym project managerom. Zwraca się w niej uwagę na zobowiązania i podejście do klienta.

Recenzja książki „UML dla zwykłych śmiertelników”

uml dla zwykłych śmiertelników.

Książka raczej niezbyt treściwa – ma ok. 250 stron. Zawiera podstawowe informacje na temat UML (Unified Modeling Language).  Napisana w lekkim amerykańskim – niezbyt merytorycznym – stylu. Niekiedy czytelnik odnosi wrażenie, że autor tworzył schematy w programie Paint.

Książka omawia podstawowe zagadnienia związane z UML, takie jak Klasy, Asocjacje, Generalizacje, Diagramy Stanów, Architektura Logiczna, Architektura Fizyczna.

Książkę polecam osobom, które po raz pierwszy spotykają się z UML. Autor namawia do korzystania z kartki i długopisu podczas zbierania wymagań, z czym mogę się zgodzić. Jednak uważam, że w książce powinny zostać omówione podstawowe narzędzia na przykładach praktycznych, a nie czysto teoretycznych.

REKOMENDACJA

Pomimo, że UML nie jest skomplikowany i nie powinien taki być, to jednak przykłady przedstawione w książce nie przemawiają do mnie. Uważam również, że książka nie wyczerpuje w znacznym stopniu tematu UML-a. Trochę przypomina mi pozycję pisaną na kolanie lub pracę dyplomową pisaną na tydzień przed obroną, o niezbyt dobrej jakości.

OCENA

Książce daję ocenę: 3/10.

Recenzja książki „Myśl jak programista”

Mysl Jak Programista

Książka ukazuje obrazowo, jak alokowana jest pamięć na stercie i stosie. Wskazuje również zalety programowania rekurencyjnego, jednak zarazem zawiera zbyt wiele powtórzeń. Autor położył nacisk na rozwiązywanie problemów w schematyczny sposób oraz przedstawił kłopotliwe sytuacje, w jakich może znaleźć się programista.

Książka nie jest raczej skierowana do zaawansowanych programistów. Autor porusza podstawowe zagadnienia dotyczące zarządzania pamięcią. Jednak należy przyznać, że jest to dość istotna kwestia podczas pierwszych lekcji związanych z programowaniem. Dodatkowo autor przedstawia obrazowo takie zagadnienia, jak tablice, listy, klasy oraz sortowanie.

REKOMENDACJA

Książkę poleciłbym raczej początkującym programistom C++.

OCENA

Książkę oceniam: 5/10.