Blog Kokosa

.NET i okolice, wydajność, architektura i wszystko inne

NAVIGATION - SEARCH

Advanced .NET Debugging - recenzja

Nie wiem czy macie prawo jazdy, ale nawet jeśli nie, to pewnie zrozumiecie wysublimowaną analogię, którą zaraz przeczytacie. Otóż jeżdżąc samochodem i mniej więcej kojarząc przepis drogowe, możemy jeździć z powodzeniem całe życie. Jednak chcąc być profesjonalnym, zawodowym kierowcą-wyjadaczem, spędzającym w samochodzie całe dnie, prędzej czy później ubrudzimy sobie ręce smarem, grzebiąc w silniku. Podobnie widzę życie .NET developera. Zdecydowana większość może "jeździć" bardzo dobrze, znając składnię, wzorce projektowe, sztuczki i kruczki. I będą profesjonalistami. Ale jest mniejsza grupa geeków, nerdów, wyjadaczy, którym to nie wystarcza. Chcą zrozumieć internalsy CLR, chcą wiedzieć jak to wszystko działa pod spodem, jak wgrzebać się w pamięć i jak używać tak surowych narzędzi jak WinDbg. Osobiście myślę, że to jest po prostu ciekawe i każdego może kiedyś zainteresować, choćby na chwilę. Popularność czerwcowych devWarsztatów, które ja oraz Sebastian Solnica zdecydowaliśmy się poprowadzić, niejako to potwierdzają.

Dla takich osób istnieje książka, którą mogę z czystym sumieniem polecić - tytułowe Advanced .NET Debugging autorstwa Mario Hewardta.

Cover

Jest to jego druga książka z serii, pierwsza dotyczyła debugowania natywnych aplikacji pt. Advanced Windows Debugging. Ta jednak jest w całości poświęcona .NETowi i jak się w niego wgrzebać, głównie za pomocą WinDbg właśnie. I jest napisana naprawdę przejrzyście i spójnie. Jeśli zatem z jakiegoś powodu trochę Was pociągają takie "internalsowe" tematy, zdecydowanie polecam. Wbrew tytułowi, nie jest to książka dla wymiataczy, którzy od lat siedzą w WinDbg. Raczej traktowałbym ją jako bardzo przyzwoite wprowadzenie, poznanie narzędzi, przedstawienie kilku konkretnych problemów i jak dotrzeć do ich przyczyny. Wtedy, poznając na żywo, to co jest tam opisane, będziecie mogli zobaczyć, czy "złapaliście bakcyla", czy to jednak nie to. Jeśli złapaliście, to czeka Was dalsza, żmudna droga czytania, oglądania, podpatrywania. Oraz przede wszystkim, brudzenia sobie rąk smarem własnego kodu.

Jednak, by nie zrozumieć mnie źle, to nie jest książka dla przedszkolaków. Jeśli na widok adresów, bajtów i zrzutów pamięci uciekacie z krzykiem, to w tej książce nie odnajdziecie się. Nie ma tu historyjek pod tytułem "wyobraźmy sobie, że pamięć to klocki Lego i tutaj mamy klocek oznaczający zmienną X". Autor od razu właściwie wszystko ilustruje przykładami w WinDbg. Osobiście uważam to za dużą zaletę.

Żeby nie było całkowicie różowo, mam też pewne zastrzeżenia. Po pierwsze, książka wydana w 2009 roku prawie w całości dotyczy .NET 2.0 i wersji 32 bit - bo wersja 4.0 była dopiero w becie. I jest tej becie poświęcony ostatni rozdział, tylko albo aż. Jednak nie jest to bardzo problematyczne, wiedza, którą zdobędziemy będzie w pełni użyteczna również dziś - tylko ją sobie trochę uaktualnimy. M.in. o dodatki takie jak netext. Po drugie, odrobinę więcej miejsca poświęciłbym w książce tematowi analizy memory dumpów. Jednak może to moje nieobiektywne przechylenie.

W każdym razie, podsumowując, książkę mogę jak najbardziej polecić osobom, które chcą się w temat wgłębić, ale nie mają o nim za dużo pojęcia - albo nawet wcale. Wymiatacze - mogą przeczytać, by sobie wiedzę usystematyzować - nigdy nie zaszkodzi.

blog comments powered by Disqus