Recenzja książki „Getting Things Programmed. Droga do efektywności”


17 marca 2017 / Michał Kortas


Kiedy w zeszłym miesiącu robiłem zakupy w Helionie, wpadła mi pod rękę książka o obiecująco brzmiącym tytule Getting Things Programmed. Droga do efektywności. Nie zastanawiając się jakoś specjalnie dłużej dodałem ją do koszyka i w zasadzie o niej zapomniałem. Przyszła jednak paczka, z nudów rozpocząłem lekturę. Nie lubię motywatorskich opowieści, trenerów efektywnego spędzania czasu czy innych kołczów, jednak muszę przyznać, że pozycja ta wypada bardzo dobrze na tle innych materiałów (taka subiektywna opinia), szczególnie, że nastawiona jest na organizację pracy programisty.

Zapraszam do tej krótkiej, piątkowej recenzji. Czytaj dalej Recenzja książki „Getting Things Programmed. Droga do efektywności”


Tagi:


Recenzja Elastycznego Web Hostingu w dhosting


2 marca 2017 / Michał Kortas


Jak zapewne dobrze wiecie, partnerem technologicznym bloga webroad.pl już od kilku lat jest dhosting. Dotychczas strona funkcjonowała na zwykłym koncie VPS, które radziło sobie świetnie nawet podczas akcji typu Wykop Efekt – wiadomo – parametry serwera posiadałem całkiem ciekawe. Co jednak w takich sytuacjach począć mogą właściciele witryn, których zastałaby śmierć kliniczna w postaci błędu 503? Czytaj dalej Recenzja Elastycznego Web Hostingu w dhosting


Tagi:


Recenzja: Praktyczny kurs SQL. Wydanie III


8 lutego 2016 / Michał Kortas


Minęły już dwa tygodnie od pierwszej edycji konkursu „Czytaj, nie pytaj”, w którym to mogłeś wygrać wspaniałą książkę Praktyczny kurs SQL. Poniżej dowiesz się o niej trochę więcej.

Możesz nabyć tę książkę z 20% zniżką. Wystarczy, że składając zamówienie użyjesz kodu rabatowego WEBROAD.

Jest to trzecie wydanie książki, traktujące o języku SQL w wersji dla SQL Server firmy Microsoft. Autorzy szybko przeprowadzą Cię od instalacji serwera bazodanowego, przez najróżniejsze operacje na przykładowej, niewielkiej bazie AdventureWorksLT, aż po kwestie związane z tworzeniem własnej bazy i nadawaniem uprawnień jej użytkownikom. Ponadto znajdziesz tu ważne (i nowe!) informacje o partycjonowaniu danych i wydajności zapytań. Bezcennym wsparciem w trakcie nauki będą dla Ciebie zadania ich rozwiązanie pozwoli Ci poczuć się pewniej i sprawdzić swoje wiadomości w praktyce. Jeśli chcesz rozpocząć swoją przygodę z bazami danych albo odświeżyć swoje informacje, trafiłeś doskonale!

Źródło: Helion.pl

Informacje o książce

Pierwsze wydanie tej publikacji miało miejsce w roku 2008. W raz z rozwojem implementacji języka SQL w Microsoft SQL Server pojawiły się kolejne dwa wydania. Ostatnie z nich postaram się za moment zrecenzować. Książka z założenia jest praktycznym kursem i każdy omawiany w niej przypadek poparto odwzorowaniem w, budowanej przez wszystkie rozdziały, bazie danych. Całość opiera się na SQL Server w wersji 2012, ze względu na dobrą dokumentację, która może znacznie rozszerzyć zasięg możliwości czytelnika.

Zalety

  • Obszerna dawka wiedzy
  • Świetnie wyjaśnione wszelkie aspekty języka SQL
  • Wysoki poziom merytoryczny
  • Zrozumiała dla zupełnie początkujących
  • Omówia nie tylko język SQL ale również wprowadza do zagadnienia baz danych i modeli relacyjnych

Wady

  • Autorzy skupiają się na MS SQL, które różni się od innych języków SQL-owych, wybór ten solidnie jednak uzasadniono
  • Książki nie da się zabrać ze sobą na wakacje – jest zbyt ciężka :-)

Podsumowanie

Książka Praktyczny kurs SQL, na pewno na stałe zajmie wysokie miejsce na mojej półce z książkami (choć w tym wypadku w przenośni, bo akurat do niej nabyłem e-booka i trzymam go na Kindle). Dla osoby, która zna któryś z języków SQL-owych jest dobrą odskocznią do poznania szczegółów MS SQL. Czytelnicy zupełnie początkujący otrzymali zaś podany na tacy obszerny materiał, będący obecnie najlepszą bazą omawiającą SQL na rynku.

Ocena

Kategoria Ocena
Wartość merytoryczna 9
Przydatność dla początkujących 9
Przydatność dla zaawansowanych 6
Ocena końcowa 8/10

Tagi:


Recenzja: Tajemnice JavaScriptu. Podręcznik ninja


14 września 2014 / Comandeer


Okładka książki

JavaScript to język programowania, który wymaga od programisty szerokiej wiedzy i dokładności. Chwila nieuwagi może spowodować poważne problemy, trudne do wykrycia. Jak sobie radzić w tym wymagającym środowisku? Jak zwinnie poruszać się pomiędzy zastawionymi pułapkami?

Źródło: Helion.pl

Tytuł + nazwiska nadają tej książce status pożądanej przez każdego kodera JS. Kto bowiem nie chciałby stać się wojownikiem ninja, pod okiem takiego mistrza, jak John Resig?

Tłumaczenie

Zacznę nietypowo, bo to główna rzecz, jaka rzuca się w oczy: tłumaczenie jest po prostu tragiczne. Część zdań jest napisana całkowicie niezrozumiale. Nie to jest jednak głównym mankamentem. Prawdziwym problemem są strasznie dziwne polskie tłumaczenia niektórych ogólnie przyjętych pojęć. Nie wiem kiedy w Helionie zrodziła się myśl, żeby każdy termin angielski tłumaczyć na polski odpowiednik. Niemniej efekty takich działań są czasami komiczne. Mamy zatem „funkcje bezpośrednie” zamiast IIFE (który to skrót występuje wszędzie), mamy „pakiety testów” zamiast… frameworków testowych czy też… „procesy robocze standardu HTML5” (oczywiście chodzi o standard Web Workers, który nawet nie jest częścią specyfikacji HTML5). Ale już prawdziwym mistrzostwem jest „niepozorny kod JS” (który nagle w innym miejscu książki staje się „dyskretnym kodem JS”). O czym mowa? O technice unobtrusive JS.

Oczywiście nigdzie przy polskich terminach nie ma podanego ich odpowiednika angielskiego, więc jeśli ktoś nie zna pojęć związanych z programowaniem w JS, to po przeczytaniu tej książki… dalej ich nie będzie znał. Za to będzie rozróżniał dziwne polskie odpowiedniki, których nikt po prostu nie używa. Moim zdaniem w książce powinna zostać użyta konwencja odwrotna: termin angielski (tłumaczenie na polski). I to winno być jedyne miejsce wystąpienia polskiego terminu. Raczej powinno się zapoznawać ludzi z używanymi zwrotami a nie sztucznie wykreowanymi na potrzeby książki. Byłem w stanie rozpoznać o co chodzi tylko i wyłącznie dlatego, że te pojęcia znam i kod na nie wskazywał… Niemniej i tak miałem problem z rozdziałem „Analizowanie kodu w środowisku wykonawczym”, który traktował o eval. I nie uwierzę, że w oryginale było analizowanie a nie interpretacja. I mam rację – w oryginale jest: „evaluation”, co nie ma prawa zostać przetłumaczone jako analizowanie…

I ostatni kwiatek, którego po prostu nie można pominąć: Java ma się do JS jak… szynka do hamburgera. Cóż, w angielskim ma to sens (ham ↔ hamburger), ale w polskim – absolutnie nie. Jest tyle innych takich par w naszym języku (kot ↔ kotara, koń ↔ koniak, blacha ↔ blachara…) – całkowicie nie rozumiem decyzji z pozostawieniem tłumaczenia dosłownego.

Tłumaczenie po prostu zabiło tę książkę. A szkoda.

Zawartość

Mimo wszystko tłumaczenie nie jest głównym grzechem tej książki. Pod względem merytorycznym również mocno odstaje od poziomu, jaki deklarują nazwiska autorów.

Książka podzielona jest na 4 części:

  • Przygotowania do treningu
  • Trening ucznia
  • Trening wojownika
  • Trening mistrza

W przygotowaniach de facto jedyne, czym się zajmujemy, to tworzeniem własnego „pakietu testów” (czyli – jak już wspominałem – frameworka testowego). Tworzone jest m.in. grupowanie testów. Niestety, w całej reszcie książki jedyną rzeczą, którą z tego wyniesiemy, jest funkcja assert, która będzie równocześnie służyła za… funkcję logującą (cóż, to się nazywa reużywalność, prawda?). W tej części książki dowiadujemy się także, że co prawda JS nie działa już jedynie w przeglądarkach (jedyne miejsce, gdzie wspomniana jest nazwa node.js), jednak ta książka i tak jest JS browserowemu poświęcona. Tym samym można skreślić na starcie „JavaScriptu” z tytułu, bo to książka o dostosowywaniu kodu do IE (niestety).

Część druga książki to jedyna w miarę sensowna rzecz, jaka tutaj jest. Ale i tak nie do końca. Po zapoznaniu się z nią można dojść do błędnego wniosku, że JS jest językiem funkcyjnym, z na chamca dodaną wybrakowaną obiektowością (lol, nie ma klas) a głównym terminem w JS jest pojęcie „funkcja to obiekt pierwszej klasy”. Funkcjom poświęcono aż 3 rozdziały, lecz i tak zabrakło miejsca na to, żeby dokładnie wyjaśnić hoisting czy magiczne słówko this. O Function.prototype.bind można w ogóle zapomnieć a dlaczego – to o tym później. Obiektom poświęcono natomiast tylko jeden rozdział, gdzie nie do końca wyjaśniono całą rzecz z prototypami i nawet nie pokuszono się o wytłumaczenie innego patternu konstruktorów niźli jedynie przez słówko new. Jedyna fajna rzecz z obiektówki, którą pokazano, to metoda tworzenia subklas z odwołaniem do rodzica. Ponadto przy literałach liczbowych i wywoływaniu ich metod podano nie do końca prawidłowe informacje (np nie podano w ogóle 5..metoda). Ewidentnie widać, że autorzy traktują po macoszemu obiektowe możliwości JS, skupiając się w pełni na jego funkcyjnej stronie.

Co jeszcze w tej części? Pean na cześć wyrażeń regularnych. Owszem, są bardzo potrzebne, niemniej w rozdziale im poświęconym nie pokazano zbyt wiele przykładów wskazujących na ich nieodzowność w arsenale każdego JS ninja (i nie, trim nie jest dobrym przykładem). Na sam koniec zapoznajemy się z licznikami czasu, gdzie równocześnie bliżej wytłumaczone jest pojęcie event loop. Szkoda, że o Web Workers jest jedynie króciutka wzmianka i nic więcej (a o setImmediate nawet tego nie ma).

Trzecia część to już niestety zbiór quirków w przeglądarkach oraz przestarzałych praktyk. Zaczynamy od rozdziału o „analizowaniu” kodu i poznajemy eval, którego później używamy do… parsowania JSON. Tak, autorzy zdają sobie sprawę z istnienia JSON, ale przecież on nie działa wszędzie i należy znać eval. Aż spojrzałem z niedowierzaniem na datę powstania książki – 2013. Naprawdę? JSON w JS jest od co najmniej 2012 a jedyne przeglądarki, które tego nie mają to naprawdę prehistoryczne IE (IE 8 już wspiera!). W kolejnym rozdziale jest jeszcze gorzej: prezentowana jest instrukcja with. Naprawdę ta instrukcja potrzebuje aż osobnego rozdziału i traktowania na tym samym poziomie, co programowanie obiektowe? Najlepsze jest, że przez cały rozdział nieustannie jest powtarzane, że tego mechanizmu nie powinno się używać… więc po co marnuje się czas – mój na czytanie, autorów na pisanie? Natomiast później po prostu dowiadujemy się czym jest feature detection oraz uczymy się używać element.style. A to już niestety nie jest JS.

Ostatnią część – czyli trening mistrza – autorzy mogli sobie po prostu darować. Nie ma nic wspólnego z JS a z pisaniem owijaczy DOM-owych dla naprawdę starych IE (naprawdę w 2013 roku należy napisać a w roku 2014 wydać książkę traktującą o błędach w IE9-?). Nie dość, że nie ma to nic wspólnego z JS, to jeszcze jest po prostu przepisywaniem jQuery. A jeśli ktoś jest mistrzem JS (lub do tego miana pretenduje), to kod jQuery czyta sobie na deser.

Tak, ¾ książki o tajemnicach JS traktuje o błędach w implementacji modelu DOM. I nie w nowoczesnych przeglądarkach, ale IE w wersjach 6, 7 i 8. Tak, to książka z 2013 roku. Zamiast mieć fantastyczny rozdział o własnej implementacji systemu eventowego, z podglądaniem takich rozwiązań, jak EventEmitter w node.js, skupiamy się na patchowaniu modelu zdarzeń DOM, żeby zapobiec wyciekom pamięci i innym dziwnym rzeczom w przeglądarce MS. To nie jest trening ninja – to nauka jazdy czołgiem. A co w tym wszystkim jest najśmieszniejsze? Że na samym początku autorzy sami stwierdzają, że DOM to zupełnie inna bestia niż JS i nie należy winić języka za niedoskonałość tego (jednego z najgorzej zaprojektowanych w historii) API. Gdzieś koło 11. rozdziału jakby o tym stwierdzeniu całkowicie zapominali i DOM staje się integralną częścią JS w przeglądarce.

I w sumie jedyne, co autorów interesuje, to obsługa IE i całej reszty. Standard ES5 jakby w ogóle dla nich nie istniał. Można spotkać niestandardowe implementacje String.prototype.trim czy metody forEach (dziwnym trafem jest de facto przekopiowana z jQuery). Kiedy natomiast już pojawiają się informacje o nowych możliwościach, to zamiast odnośnika do standardu ES, jesteśmy raczeni informacjami o wersjach JS, typu JS 1.6, 1.85… To wyłącznie numeracja Mozilli, nie mająca nic wspólnego z prawdziwym, standardowym JS. Co więcej – każdej nowości jest poświęcona raptem krótka notatka (no bo przecież nie można ich używać – ninja tak nie robią!). Zamiast uczyć prawdziwego, czystego JSa, ta książka zachęca do tworzenia obejść, hacków i wszelkiej maści polyfillów w celu wspierania starych przeglądarek (Safari 3, Opera 10, Firefox 3, IE9-…). Ba, większość przykładów z książki nie ma prawa zadziałać w strict mode (mimo że autorzy go znają i to bardzo dobrze!) z powodu niewłaściwego używania this (w strict mode jeśli this jest poza kontekstem obiektu, to jest undefined a nie window) czy też arguments.callee.

Praktycznie w ogóle nie jest poruszony temat asynchroniczności JS. Jedynie liczniki czasu coś do tego tematu wnoszą. Niestety o requestAnimationFrame czy setImmediate nie ma ani słowa. Nie wspominając już o promises czy generatorach. A obecnie wszystkie API w JS są na obiecankach lub eventowe. Co więcej – zdarzenia niestandardowe w książce są… obsługiwane niestandardowo. Wypadałoby chociaż wspomnieć o Custom Event z DOM. Całkowicie zignorowano także temat modułów, co dzisiaj jest całkowitą podstawą. No i JS ninja kojarzy mi się z wykorzystaniem takich technik, jak object pooling i unikanie garbage collectora (i wszystkie inne rzeczy dotyczące zarządzania pamięcią). Tutaj tego nie ma…

Ocena

Jestem bardzo, ale to bardzo zawiedziony. Po tytule spodziewałem się, że wreszcie powstała porządna książka o prawdziwym JS. Okazała się jednak kolejną książką o dziwactwach IE. Z całej tej książki wyniosłem jedną, jedyną rzecz – \f jest znakiem nowej strony… Trochę mało, jak na książkę o tajemnicach JS (no i to nawet JS nie jest!).

We wstępie jest napisane, że to książka nie dla początkujących. To fakt – za mało tłumaczenia pewnych rzeczy. Jednak dla bardziej zaznajomionych z JS również nie – oni to po prostu wiedzą i robią to intuicyjnie. Ta książka po prostu nie ma targetu: dla uczących się JS jest za trudna (a tłumaczenie tylko ją dobija) a dla znających JS nie jest niczym nowym. Dodatkowo bardzo dużo w niej braków merytorycznych i zbyt dużo DOM (to „Tajemnice DOM” a nie JS…). Dlatego nie jestem w stanie dać tej książce więcej niźli 3/10.


Tagi:


Recenzja: Podręcznik Node.js. Smashing Magazine


20 lipca 2014 / Michał Załęcki


podnodPlatforma Node.js powstała w 2009 roku. Pozwala na tworzenie wydajnych, skalowalnych aplikacji sieciowych. W tym środowisku napiszesz kod działający po stronie serwera – i użyjesz do tego języka JavaScript. Brzmi niesamowicie? I tak w rzeczywistości jest! Przekonasz się o tym w czasie czytania tej książki. Została ona w całości poświęcona Node.js.

Źródło: Helion.pl

Długo czekałem na Podręcznik Node.js. Smashing Magazine po tym jak zobaczyłem go w księgarni jako zapowiedź, pech ciał, że przez natłok zajęć musiałem odłożyć w czasie jego lekturę.

Tematyka

Cała książka podzielona została na 5 części. Pierwsza cześć omawia przygotowanie środowiska, szybki przegląd JavaScript, kwestie blokujących i nieblokujących operacji I/O oraz ukazuje większe różnice w pisaniu kodu używanego po stronie klienta w przeglądarce, a pisaniu kodu dla Node (obiekt globalny, require i te sprawy).

Część druga, znacznie ciekawsza wyjaśnia zagadnienia związane ze specyfikacją protokokołu TCP i HTTP. Na plus trzeba zaliczyć dość ambitne aplikacje, które tworzymy podczas lektury książki. Są to m. in. klient IRC, klient Twittera i czat oparty o WebSocket z możliwością słuchania utworów wskazanych przez „DJa”. Widziałem, że zarzuca się tej pozycji zbyt dużą ilość teorii. Czytając takie opinie zastanawiam się czy chodzi o tę samą pozycję. Ze względu na zajęcia w tym roku musiałem zaprzyjaźnić się z Język C++. Szkoła programowania, w której po 180 stronach pojawia się temat dotyczący pętli for – to jest książka, w której jest dużo teorii.

Trzecia część porusza tematykę popularnych frameworków. Nie obeszło się jednak bez zgrzytów. Dużo osób narzeka na błędy w książce. Podejrzewam, że nerwy puszczają co niektórym przy rozdziale o WebSocket.IO. Kod z tego rozdziału po prostu nie działa na nowszych instalacjach Node.js (WebSocket.IO nie jest rozwijany od ponad 2 lat). Poprawny kod, uaktualniony, można znaleźć w przykładach do książki na FTP, więc nikt nie powinien mieć problemów z ewentualnymi poprawkami.

Część czwarta porusza sposoby komunikacji z trzema bazami danych: MongoDB, MySQL i Redis. Ostatnia, piąta część omawia zagadnienia związane ze współdzieleniem kodu oraz jego testowaniem.

Ocena

Ogólnie książka pozostawiła po sobie bardzo dobre wrażenie. Przeszkadza trochę kod, który jest wstawiany w małych partiach (jedna, dwie funkcję). Pod koniec rozdziałów znajduje się zawartość całych plików co pozwala na upewnienie się czy wszystko napisaliśmy poprawnie. Z czystym sumieniem mogę polecić Podręcznik Node.js. Smashing Magazine osobą początkującym lub tym, który chcą swoją wiedzę uporządkować. Książka otrzymuje od nas zasłużone 7/10. Gdyby nie pechowy rozdział o WebSocket.IO i literówki w kodzie to ocena byłaby wyższa.


Tagi:


Recenzja: Redesign The Web. The Smashing Book #3


13 kwietnia 2014 / Michał Kortas


Redesign The Web. The Smashing Book #3Sieć WWW podlega ciągłym przemianom. Webdeveloperzy dysponują lepszymi narzędziami, a przeglądarki są wydajniejsze i potrafią znacznie więcej niż jeszcze kilka lat temu. Te zmiany mają ogromny wpływ na to, jak obecnie tworzy się atrakcyjne strony internetowe. A czy Twoje podejście do projektowania stron idzie z duchem czasu? Czy Twoje rozwiązania prawidłowo funkcjonują na urządzeniach mobilnych, które generują coraz więcej ruchu sieciowego? Jeśli masz wątpliwości, koniecznie sięgnij po tę książkę — kolejny podręcznik z kultowej serii „Smashing Magazine”!

(Helion.pl)

Po raz kolejny do moich rąk trafiła książka z serii „The Smashing Book„, wydawnictwa, którego chyba żadnemu webdesignerowi nie trzeba przedstawiać. Zabieram się zatem do recenzji.

O czym jest książka „Redesign The Web”?

Jak sam tytuł wskazuje, autorzy skupili się w całości na przeprojektowywaniu istniejących witryn internetowych. Przeczytamy w niej m.in. jak wygląda kwestia biznesowa podczas przeprojektowywania, w jaki sposób możemy technicznie przygotować się do tego procesu, dokonamy wielu zmian za pomocą HTML5 i CSS3, wyeliminujemy skomplikowany i często niepotrzebny kod jQuery, poznamy techniki lepszego User eXperience oraz zastanowimy się co jest lepsze dla urządzeń mobilnych – wersja WWW czy natywna.

Dla kogo jest przeznaczona?

Prawdę mówiąc, każdy znajdzie w niej coś dla siebie. Począwszy od początkującego projektanta stron www, po zaawansowanego programistę. Teksty są jak zwykle przygotowane w sposób bardzo zrozumiały, nawet dla zwykłego laika. Zazwyczaj narzekałem na przerost formy graficznej nad treścią. Tym razem jest zupełnie inaczej. Do dyspozycji dostajemy bardo rozbudowane artykuły, z minimalną ilością potrzebnych grafik.

Ocena i podsumowanie

I tym razem (to już po raz trzeci z rzędu) przyznajemy recenzowanej książce ocenę 10/10. Według mojej subiektywnej opinii bije ona na głowę poprzednie części, szczególnie jeśli chodzi o obszerność tekstu. Dzięki książce z łatwością przyswoimy sobie jeden z ważniejszych aspektów pracy przy witrynach www, czyli przeprojektowywaniu.

Zachęcam do dzielenia się swoimi opiniami w komentarzach.

Zobacz fragment książki Kup książkę on-line


Tagi: