Katalog książek

Wydawnictwo Helion

Helion SA
ul. Kościuszki 1c
44-100 Gliwice
tel. (32) 230-98-63




© Helion 1991-2016

Lauret zaufanych opinii
Java. Efektywne programowanie. W...

Java. Efektywne programowanie. Wydanie II

Autor: 

Ocena:
   5/6  Opinie  (8)
Stron: 352
Ksiazka drukowana Druk (oprawa: miękka)
Wydawca: Helion
Cena promocyjna: Oszczędzasz: 11,80 zł
47,20 zł 59,00 zł

Poznaj specyfikę języka Java i zostań mistrzem programowania

  • Jak korzystać z bibliotek języka Java?
  • Jak pisać funkcjonalny i klarowny kod?
  • Jak stworzyć profesjonalny i efektowny program?

Język Java jest językiem obiektowym z dziedziczeniem jednobazowym. Wewnątrz każdej metody korzysta on ze zorientowanego na instrukcje stylu kodowania. Aby dobrze poznać jakikolwiek język, należy nauczyć się posługiwać jego regułami, zasadami i składnią -- podobnie jest z językiem programowania. Jeśli chcesz zyskać możliwość efektywnego programowania w języku Java, powinieneś poznać struktury danych, operacje i udogodnienia, oferowane przez biblioteki standardowe, a także często stosowane i efektywne sposoby tworzenia kodu. Całą potrzebną Ci wiedzę znajdziesz właśnie w tym podręczniku.

W książce "Java. Efektywne programowanie" w sposób zrozumiały i klarowny przedstawiono zasady opisujące mechanizmy używane w najlepszych technikach programowania. Ten podręcznik podpowie Ci, jak najbardziej racjonalnie korzystać z języka Java oraz jego podstawowych bibliotek. Dowiesz się, jak stosować wyjątki przechwytywalne i wyjątki czasu wykonania, poznasz także zalety stosowania statycznych klas składowych. Opanujesz metody sprawdzania poprawności parametrów i projektowania sygnatur oraz wszelkie instrukcje, które pozwolą Ci na wydajne i profesjonalne programowanie.

  • Tworzenie i usuwanie obiektów
  • Klasy i interfejsy
  • Zapewnianie niezmienności obiektu
  • Projektowanie i dokumentowanie klas przeznaczonych do dziedziczenia
  • Zalety stosowania statycznych klas składowych
  • Typy ogólne
  • Typy wyliczeniowe i adnotacje
  • Metody
  • Programowanie
  • Wykorzystanie ogólnie przyjętych konwencji nazewnictwa
  • Wyjątki
  • Współbieżność i serializacja
  • Dokumentowanie bezpieczeństwa dla wątków

Nie wystarczy samo poznanie języka Java. Trzeba wiedzieć, jak z niego efektywnie korzystać!

Słowo wstępne (11)
Przedmowa (13)
Podziękowania (17)
Rozdział 1. Wprowadzenie (21)
Rozdział 2. Tworzenie i usuwanie obiektów (25)
  • Temat 1. Tworzenie statycznych metod factory zamiast konstruktorów (25)
  • Temat 2. Zastosowanie budowniczego do obsługi wielu parametrów konstruktora (31)
  • Temat 3. Wymuszanie właściwości singleton za pomocą prywatnego konstruktora (37)
  • Temat 4. Wykorzystanie konstruktora prywatnego w celu uniemożliwienia utworzenia obiektu (39)
  • Temat 5. Unikanie powielania obiektów (40)
  • Temat 6. Usuwanie niepotrzebnych referencji do obiektów (44)
  • Temat 7. Unikanie finalizatorów (47)
Rozdział 3. Metody wspólne dla wszystkich obiektów (53)
  • Temat 8. Zachowanie założeń w trakcie przedefiniowywania metody equals (53)
  • Temat 9. Przedefiniowywanie metody hashCode wraz z equals (65)
  • Temat 10. Przedefiniowywanie metody toString (70)
  • Temat 11. Rozsądne przedefiniowywanie metody clone (73)
  • Temat 12. Implementacja interfejsu Comparable (81)
Rozdział 4. Klasy i interfejsy (87)
  • Temat 13. Ograniczanie dostępności klas i ich składników (87)
  • Temat 14. Stosowanie metod akcesorów zamiast pól publicznych w klasach publicznych (91)
  • Temat 15. Zapewnianie niezmienności obiektu (93)
  • Temat 16. Zastępowanie dziedziczenia kompozycją (101)
  • Temat 17. Projektowanie i dokumentowanie klas przeznaczonych do dziedziczenia (107)
  • Temat 18. Stosowanie interfejsów zamiast klas abstrakcyjnych (112)
  • Temat 19. Wykorzystanie interfejsów jedynie do definiowania typów (117)
  • Temat 20. Zastępowanie oznaczania klas hierarchią (119)
  • Temat 21. Zastosowanie obiektów funkcyjnych do reprezentowania strategii (122)
  • Temat 22. Zalety stosowania statycznych klas składowych (125)
Rozdział 5. Typy ogólne (129)
  • Temat 23. Nie korzystaj z typów surowych w nowym kodzie (129)
  • Temat 24. Eliminowanie ostrzeżeń o braku kontroli (135)
  • Temat 25. Korzystanie z list zamiast tablic (137)
  • Temat 26. Stosowanie typów ogólnych (142)
  • Temat 27. Stosowanie metod ogólnych (146)
  • Temat 28. Zastosowanie związanych szablonów do zwiększania elastyczności API (151)
  • Temat 29. Wykorzystanie heterogenicznych kontenerów bezpiecznych dla typów (158)
Rozdział 6. Typy wyliczeniowe i adnotacje (165)
  • Temat 30. Użycie typów wyliczeniowych zamiast stałych int (165)
  • Temat 31. Użycie pól instancyjnych zamiast kolejności (176)
  • Temat 32. Użycie EnumSet zamiast pól bitowych (177)
  • Temat 33. Użycie EnumMap zamiast indeksowania kolejnością (178)
  • Temat 34. Emulowanie rozszerzalnych typów wyliczeniowych za pomocą interfejsów (182)
  • Temat 35. Korzystanie z adnotacji zamiast wzorców nazw (186)
  • Temat 36. Spójne użycie adnotacji Override (192)
  • Temat 37. Użycie interfejsów znacznikowych do definiowania typów (195)
Rozdział 7. Metody (197)
  • Temat 38. Sprawdzanie poprawności parametrów (197)
  • Temat 39. Defensywne kopiowanie (200)
  • Temat 40. Projektowanie sygnatur metod (204)
  • Temat 41. Rozsądne korzystanie z przeciążania (206)
  • Temat 42. Rozsądne korzystanie z metod varargs (212)
  • Temat 43. Zwracanie pustych tablic lub kolekcji zamiast wartości null (215)
  • Temat 44. Tworzenie komentarzy dokumentujących dla wszystkich udostępnianych elementów API (217)
Rozdział 8. Programowanie (225)
  • Temat 45. Ograniczanie zasięgu zmiennych lokalnych (225)
  • Temat 46. Stosowanie pętli for-each zamiast tradycyjnych pętli for (228)
  • Temat 47. Poznanie i wykorzystywanie bibliotek (231)
  • Temat 48. Unikanie typów float i double, gdy potrzebne są dokładne wyniki (234)
  • Temat 49. Stosowanie typów prostych zamiast opakowanych typów prostych (236)
  • Temat 50. Unikanie typu String, gdy istnieją bardziej odpowiednie typy (239)
  • Temat 51. Problemy z wydajnością przy łączeniu ciągów znaków (242)
  • Temat 52. Odwoływanie się do obiektów poprzez interfejsy (243)
  • Temat 53. Stosowanie interfejsów zamiast refleksyjności (245)
  • Temat 54. Rozważne wykorzystywanie metod natywnych (248)
  • Temat 55. Unikanie optymalizacji (249)
  • Temat 56. Wykorzystanie ogólnie przyjętych konwencji nazewnictwa (252)
Rozdział 9. Wyjątki (257)
  • Temat 57. Wykorzystanie wyjątków w sytuacjach nadzwyczajnych (257)
  • Temat 58. Stosowanie wyjątków przechwytywanych i wyjątków czasu wykonania (260)
  • Temat 59. Unikanie niepotrzebnych wyjątków przechwytywanych (262)
  • Temat 60. Wykorzystanie wyjątków standardowych (264)
  • Temat 61. Zgłaszanie wyjątków właściwych dla abstrakcji (266)
  • Temat 62. Dokumentowanie wyjątków zgłaszanych przez metodę (268)
  • Temat 63. Udostępnianie danych o błędzie (270)
  • Temat 64. Zachowanie atomowości w przypadku błędu (272)
  • Temat 65. Nie ignoruj wyjątków (274)
Rozdział 10. Współbieżność (275)
  • Temat 66. Synchronizacja dostępu do wspólnych modyfikowalnych danych (275)
  • Temat 67. Unikanie nadmiarowej synchronizacji (280)
  • Temat 68. Stosowanie wykonawców i zadań zamiast wątków (286)
  • Temat 69. Stosowanie narzędzi współbieżności zamiast wait i notify (288)
  • Temat 70. Dokumentowanie bezpieczeństwa dla wątków (293)
  • Temat 71. Rozsądne korzystanie z późnej inicjalizacji (296)
  • Temat 72. Nie polegaj na harmonogramie wątków (300)
  • Temat 73. Unikanie grup wątków (302)
Rozdział 11. Serializacja (305)
  • Temat 74. Rozsądne implementowanie interfejsu Serializable (305)
  • Temat 75. Wykorzystanie własnej postaci serializowanej (310)
  • Temat 76. Defensywne tworzenie metody readObject (317)
  • Temat 77. Stosowanie typów wyliczeniowych zamiast readResolve do kontroli obiektów (323)
  • Temat 78. Użycie pośrednika serializacji zamiast serializowanych obiektów (327)
Dodatek A: Tematy odpowiadające pierwszemu wydaniu (331)
Dodatek B: Zasoby (335)
Skorowidz (339)
Najczęściej kupowane razem:
Java. Efektywne programowanie. Wydanie II plus BDD w działaniu. Sterowanie zachowaniem w rozwoju aplikacji plus Efektywne programowanie w języku Java
Cena zestawu: 140,25 zł 165,00 zł
Oszczędzasz: 24,75 zł (15%)
Dodaj do koszyka
zestaw0 Java. Efektywne programowanie. Wydanie II
Osoby, które kupowały książkę, często kupowały też:
Cena: 47,20 zł
Cena: 119,20 zł
Cena: 71,20 zł
6
(3)
5
(2)
4
(3)
3
(0)
2
(0)
1
(0)

Liczba ocen: 8

Średnia ocena
czytelników

  


okladka
  Ocena : 6 

Jak to mój czteroletni siostrzeniec powiedział "książka o herbacie" :) Bardzo dobra książka :).
  Ocena : 6 

Obowiązkowa pozycja każdego programisty Java, zwłaszcza dla tego, kto będzie przygotowywał kod dla współpracowników. Autor książki jest jednym z twórców standardowej biblioteki Java, zarówno pochwala, jak i krytykuje rozwiązania, które zostały zaimplementowane w standardowej bibliotece w perspektywie tego, że jej API ma się nie zmieniać. Idealna pozycja dla architektów oprogramowania. Kładzie nacisk na krytyczne myślenie i tworzenie uniwersalnego, nie zmieniającego swojego API kodu. Jestem zobligowany zarekomendować.
  Ocena : 6 

Na początku zaznaczam, że moja ocena dotyczy wydania angielskiego tej książki. Jest to książka, którą każdy programisty Javy powinien mieć, przeczytać i powracać do niej. Dziwię się, że do tej pory nie było polskiego wydania. Początkujący znajdzie w niej szereg wskazówek, dzięki którym uniknie szeregu niejawnych błędów w kodzie. Nauczy się również zasad tworzenie oprogramowania. Programista zaawansowany będzie mógł usystematyzować swoją wiedzę. Tego typu książki wpływają na podwyższenie poziomu rozwiązań programistycznych - uczą programistów dobrych nawyków. Wystarczy przeczytać opinię Jamesa Goslinga. Dla mnie jego rekomendacja jest potwierdzeniem wyjątkowości tej książki. Książka świetnie się nadaje również dla wykładowców wyższych uczelni.
  Ocena : 5 

Jest to jedna z obowiązkowych pozycji każdego programisty Javy. Niestety, polskie tłumaczenie tej ksiażki trochę mnie rozczarowało. Uważam, że niektóre zwroty nie powinny być przetłumaczone na język polski np. garbage collector - tutaj "proces zbierania nieużytków", final variables - tutaj "zmienne ostateczne". Doświadczony programista Javy (dla którego raczej jest ta książka) jest bardziej zaznajomiony z angielskimi zwrotami bezpośrednio dotyczącymi samego języka Java, niż z ich polskim tłumaczeniem.
  Ocena : 5 

Obowiązkowa lektura każdego programisty Java i nie tylko.
  Ocena : 4 

Sama zawartość książki i techniki w niej opisane są bardzo dobre i powinny być znane każdemu programiście Java. Niestety tłumaczenie tej książki jest niestety słabe, tłumacz "na siłę" stosował tłumaczenia, które w polskim światku informatycznym w ogóle nie funkcjonują (gdyż powszechnie używa się angielskich terminów, np. "final", "generic", itp). W niektórych przypadkach zastosowano inne tłumaczenia niż te, które są używane w jez. polskim od lat (np. metoda "protected" w książce przetłumaczona jest jako "zabezpieczona", podczas gdy powszechnie mówi się "chroniona"). Z ww. powodów książkę się w wielu miejscach ciężko czyta, trzeba się domyślać co oryginalny autor miał tak naprawdę na myśli. Podsumowując: za zawartość 6, z tłumaczenie -2, w efekcie ocena polskiego wydania 4.
  Ocena : 4 

Zgadzam sie z innymi osobami, ze tlumaczenie jest kanciaste, mnie osobiscie najbardziej irytowalo pomieszanie terminu nadpisanie metody z przeslonieciem metody. Tlumaczenie bylo niekiedy tak dziwne, ze musialem po kodzie dojsc o co chodzi w opisie. Natomiast co do meritum -- w zaleznosci od tematu. Problem w tym, ze autor pomieszal problemy z poziomu absolutnie pierwszakow ("stosuj polimorfizm zamiast switchy") z powiedzmy zaawansowanymi tematami dot. projektowania jako takiego ("unikanie wieloparametrycznych wywolan"). Nie jest na pewno to ksiazka tak jednorodna jak seria Effective C++ Meyersa, do ktorej jest odwolanie w recenzjach (w ksiazce). Ksiazka przyda sie glownie programistom Javy, ale skorzystaja takze programisci np. C#, ktorzy dowiedza sie skad sie wziely karkolomne konstrukcje jak Clone na poziomie object, HashCode i Equals. Tak, to spuscizna Javy. Ksiazke warto kupic, przeczytac i sprzedac -- jest to typowa pozycja na jedno czytanie (ze zrozumieniem tresci). Powinna byc wydana na ekonomicznym papierze i za nizsza cene. Nie jest to pozycja referencyjna, do ktorej sie wraca. I uwaga: im wieksze doswiadczenie czytelnika tym wieksza szansa, ze czytane beda tylko tytuly rozdzialow (wiele problemow jest uniwersalnych dla programowania jako takiego).
  Ocena : 4 

Ksiązkę zacząłem czytać w wersji angielskiej. Bardzo spodobał mi się sposób w jaki autor przekazuje wiedzę i ilustruje przykłady. Jak najbardziej polecam każdemu kto programuje w javie. Natomiast jestem kompletnie zawiedziony tłumaczeniem. Tłumaczenie na siłę typowo informatycznych zwrotów powoduje, że zdanie kompletnie traci sens. Po przeczytaniu kilku stron od razu widać, że polskiego tłumaczenia nie widział ktokolwiek z branży informatycznej. Mój apel do HELIONa: zatrudnijcie człowieka, który ma wiedzę z zagadnień informatyki, bo to co tutaj czytam woła o pomstę do nieba! Do zainteresowanych: KUPUJCIE TĄ KSIĄŻKĘ WYŁĄCZNIE W WERSJI ANGIELSKIEJ!!!