środa, 24 kwietnia 2013

"Mistrz programowania" - recenzja

Kupiłem sobie niedawno książkę Mistrz programowania. Zwiększ efektywność i zrób karierę autorstwa Neala Forda. Po polsku wydana przez Helion.
Właśnie skończyłem ją czytać, zatem na gorąco podzielę się wrażeniami.

Jest to książka z kategorii "o wszystkim i o niczym", czyli zbiór różnych rad, dobrych praktyk i opisów narzędzi, które mają poprawić efektywność pracy i jakość pisanego kodu. Doświadczony programista raczej nie znajdzie tu wiele nowego, ale myślę że mimo to warto zaglądać do takich pozycji by poznać jeden czy dwa nowe dla siebie tematy. Tym bardziej, że książka nie jest droga, więc nie ma się wiele do stracenia - ja znalazłem nową na Allegro za niecałe 20 PLN razem z wysyłką. W tej cenie warto spróbować.

W książce między innymi możemy sie między innymi dowiedzieć o zaletach TDD, automatyzacji codziennych zadań za pomocą Selenium, i skryptów wiersza poleceń, narzędziach do statycznej analizy kodu takich jak PMD i Findbugs , dobrych praktykach programowania obiektowego, refaktoryzacji, pracy w zespole, aż po przegląd edytorów tekstu z funkcjami poprawiającymi efektywnośc pracy.
Należy jednak powiedzieć wprost, że wszystkie te tematy są pokryte bardzo pobieżnie. Myślę, że książka może dobrze posłużyć jako przewodnik po rozmaitych zagadnieniach, które dobry programista powinien znać. Gdy już zainspiruje do poznania jakiegoś tematu, wtedy trzeba będzie poszukać dalszych szczegółów w innych źródłach.


Polskie tłumaczenie miejscami troche kulawe i wymaga skupienia, by np. zrozumieć że oprzyrządowanie klas to instrumentacja ;-) Czasami użyte sformułowania co prawda sporadycznie występują w polskojęzycznej literaturze, ale nie są tak przyjęte w użyciu jak angielskie oryginały, przez co brzmią sztucznie i śmiesznie.. na przykład system usuwania nieużytków, albo otwarty szkielet sieciowy Struts.

Na końcu książki autor zapewnia, że nie chce pisać monologu, ale raczej porozmawiać o produktywności i dlatego utworzył wiki. W zamyśle ma się tam dalej toczyć dyskusja o narzędziach i sposobach poprawy produktywności programisty. Świetny pomysł, chętnie to zobaczę! - pomyślałem. Niestety podana strona productiveprogrammer.com już nie istnieje, a domena jest wystawiona na sprzedaż. Wechikuł czasu pokazuje, że strona nie istniała juz co najmniej od 2011. Szkoda. Za to przyznaję minus wydawcy.
A może znacie jakąś fajną stronę albo forum poświęcone produktywności w tworzeniu oprogramowania? Podzielcie się linkiem w komentarzu!

niedziela, 21 kwietnia 2013

Java 8 się spóźnia

W ostatnim poście Mark Reinhold (główny architekt projektu Javy w Oracle) ujawnił, że wcześniej planowany harmonogram wydania Javy 8 we wrześniu tego roku nie jest możliwy do spełnienia.
Ściągnięto ze strony http://www.gizmodo.com.au/2013/01/how-to-disable-java-in-your-browser/

Opóźnienie jest tłumaczone problemami w security Javy będącej już w użyciu (na przykład te wymienione tutaj), które wymagały czasu developerów Javy. W efekcie prace nad projektem Lambda się opóźniły. Według nowego harmonogramu GA Javy zostało przeniesione na Marzec 2014.

To nie pierwsza zmiana w releasie Java 8. W zeszłym roku z powodu problemów z harmonogramem lista nowej funkcjonalności planowanej w Java 8 została okrojona. Przede wszystkim projekt Jigsaw został przeniesiony do Java 9.
Wydawać by się mogło, że mamy powtórkę z tej historii. Na szczęście Oracle nie zdecydował się za wszelką cenę utrzymać dat, kosztem ograniczenia ograniczenia zakresu (czyli wywalenia projektu Lambda, najważniejszego i najbardziej wyczekiwanego ficzera Javy 8!).

Obydwie zmiany w planach są typowym przykładem problemu "za krótkiej kołderki" w projekcie, gdy okazuje się, że nie da się dostarczyć całej planowanej funkcjonalności w planowanym czasie. Co ciekawe, możemy obserwować inne rozwiązania z tych sytuacji - za pierwszym razem ucierpiał scope, za drugim harmonogram (pewnie dla tego, bo już w scop'ie nie było czego uciąć). W klasycznym "magicznym trójkącie" zarządzania projektami mówi się jeszcze o trzecim parametrze projektu, czyli koszcie.

Nie jestem pewien, czy w tym przypadku łatwo byłoby Oracle'owi utrzymać zakres i czas nawet gdyby zdecydował się na zwiększenie budżetu na Java 8. Prawdopodobnie prace nad Java 8 są już zbyt zaawansowane i pierwotny GA zbyt blisko, by udało się to bez utraty jakości. Jak wiadomo z Prawa Brooksa dodawanie ludzi do opóźnionego projektu tylko opóźni go jeszcze bardziej :-)
Chief Architect

sobota, 6 kwietnia 2013

Przyszłość w IT - po konferencji


Pare godzin temu wróciłem z konferencji Przyszłość w IT, więc mogę na gorąco podzielić się wrażeniami.

Najbardziej podobała mi się prezentacja Szczepana Fabera dotycząca Gradle, w którym jest core developerem. Było tam wszystko to, czego oczekuję od takich wykładów - ciekawy merytorycznie, inspirujący i poprowadzony na luzie.
Nigdy nie miałem wcześniej do czynienia z Gradle, ale po prezentacji poczułem że warto te braki nadrobić ;-)
Szkoda tylko, że ze względu na problemy techniczne z podłączeniem rzutnika nie udało się zaprezentować przykładów "na żywo", ale slajdy też dawały radę.

Wykład Piotra Łaskawca, autora javablog.eu też trzymał wysoki poziom. Głównym tematem była budowa i tuning JVM pod kątem wydajności - w szczególności kompilacja JIT, oraz garbage collection.

Mam wrażenie, że dla większości wykładów limit 40 minut był trochę ograniczający. Każdy z prezenterów miał w zanadrzu jeszcze kilka slajdów i wątków które chciałby jeszcze poruszyć.

Ale ogólnie wrażenia pozytywne - polecam osobom z innych miast gdzie odbędą się kolejne edycje. Jeśli we wrześniu w Krakowie będzie nowa agenda wykładów to na pewno rozważe ponowne uczestnictwo.



czwartek, 4 kwietnia 2013

Konferencja Przyszłość w IT

W najbliższą sobotę (6 kwietnia 2013) w Krakowie odbędzie się konferencja Przyszłość w IT. Właściwie to nie  konferencja tylko targi pracy połączone z wykładami - tak to określają sami organizatorzy. Zatem na pewno będzie dużo nachalnej promocji sponsorujących firm i łapanka rekrutacyjna, ale agenda wykładów mimo to wygląda ciekawie. Wykłady mają się odbyć równolegle po cztery w każdym z czterech bloków merytorycznych.

Dla miłośników Javy ciekawie zapowiada się wykład Piotra Łaskawca o szczegółach JVM. Chętnie zobaczę również wykład Szczepana Fabera o automatyzowaniu wszystkiego co się robi. Prelegent jest autorem Mockito, biblioteki do tworzenia mocków na potrzeby testów JUnit.

Myślę że warto pójść zobaczyć, tym bardziej że wstęp za darmo, a pogoda na zewnątrz nie oferuje nic ciekawszego. Nie wiem czy w Krakowie są jeszcze wolne miejsca (trzeba się zarejestrować przed konferencją), ale w kolejne weekendy ma być powtórka w innych miastach, więc zwracam uwagę ich mieszkańców na tę konferencję.