Facebook - konwersja
  • promocja

Java. Podejście funkcyjne. Rozszerzanie obiektowego kodu Javy o zasady programowania funkcyjnego - ebook

Wydawnictwo:
Tłumacz:
Data wydania:
20 lutego 2024
Format ebooka:
EPUB
Format EPUB
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najpopularniejszych formatów e-booków na świecie. Niezwykle wygodny i przyjazny czytelnikom - w przeciwieństwie do formatu PDF umożliwia skalowanie czcionki, dzięki czemu możliwe jest dopasowanie jej wielkości do kroju i rozmiarów ekranu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, PDF
Format PDF
czytaj
na laptopie
czytaj
na tablecie
Format e-booków, który możesz odczytywać na tablecie oraz laptopie. Pliki PDF są odczytywane również przez czytniki i smartfony, jednakze względu na komfort czytania i brak możliwości skalowania czcionki, czytanie plików PDF na tych urządzeniach może być męczące dla oczu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, MOBI
Format MOBI
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najczęściej wybieranych formatów wśród czytelników e-booków. Możesz go odczytać na czytniku Kindle oraz na smartfonach i tabletach po zainstalowaniu specjalnej aplikacji. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
(3w1)
Multiformat
E-booki sprzedawane w księgarni Virtualo.pl dostępne są w opcji multiformatu - kupujesz treść, nie format. Po dodaniu e-booka do koszyka i dokonaniu płatności, e-book pojawi się na Twoim koncie w Mojej Bibliotece we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu przy okładce. Uwaga: audiobooki nie są objęte opcją multiformatu.
czytaj
na laptopie
Pliki PDF zabezpieczone watermarkiem możesz odczytać na dowolnym laptopie po zainstalowaniu czytnika dokumentów PDF. Najpowszechniejszym programem, który umożliwi odczytanie pliku PDF na laptopie, jest Adobe Reader. W zależności od potrzeb, możesz zainstalować również inny program - e-booki PDF pod względem sposobu odczytywania nie różnią niczym od powszechnie stosowanych dokumentów PDF, które odczytujemy każdego dnia.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na tablecie
Aby odczytywać e-booki na swoim tablecie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. Bluefire dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na czytniku
Czytanie na e-czytniku z ekranem e-ink jest bardzo wygodne i nie męczy wzroku. Pliki przystosowane do odczytywania na czytnikach to przede wszystkim EPUB (ten format możesz odczytać m.in. na czytnikach PocketBook) i MOBI (ten fromat możesz odczytać m.in. na czytnikach Kindle).
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na smartfonie
Aby odczytywać e-booki na swoim smartfonie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. iBooks dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.

Java. Podejście funkcyjne. Rozszerzanie obiektowego kodu Javy o zasady programowania funkcyjnego - ebook

Aby napisać dobry kod, programiści muszą wybrać optymalnye sposóoby rozwiązania danego problemu. Java jest znana ze skutecznego i przetestowanego podejścia obiektowego (OOP), jednak ten paradygmat ten nie zawsze okazuje się wystarczający. Zamiast wymuszaćnia zasad OOP w każdym wprzypadku, warto wdrożyć w swoim kodzie zasady programowania funkcyjnego (FP), aby zapewnić sobie najlepsze korzyści płynące ze stosowania tych obydwóch paradygmatów.

Dzięki tej książce zrozumiesz bazowe koncepcje programowania funkcyjnego i przekonasz się, że możesz włączać je do kodu bez rezygnacji z paradygmatu obiektowego. Dowiesz się również, kiedy w swojej codziennej pracy i dlaczego używać takich opcjifunkcjonalności, jak niemutowalność i funkcje czyste i dlaczego warto to robićw swojej codziennej pracy. Poznasz różnetakie aspekty FP:, jak kompozycjęa, ekspresyjność, modułowość, wydajność i efektywne manipulowanie danymi. Nauczysz się również wykorzystać zywania FP w celudla zapewnienia wyższego bezpieczeństwa i łatwiejszego utrzymywania kodu. Teo wszystkieo pozwoli Ci zdobyć cenne umiejętności, które ułatwią Ci pisanie bardziej zwięzłego, rozsądnego i przyszłościowego kodu.

W książce między innymi:

  • zasady programowania funkcyjnego
  • przegląd typów programowania funkcyjnego dostępnych w Javie
  • różne koncepcje FP i sposoby ich zastosowaniakorzystania z nich
  • rozszerzanie kodu Javy o aspekty funkcjonalności FP bez przechodzenia na pełną funkcyjność
  • jak doskonalić swój styl programowania niezależnie od języka lub paradygmatu

To obowiązkowa lektura dla każdego programisty, który chce poprawić swoje umiejętności i pozostać na bieżąco z trendami w programowaniu

A. N. M. Bazlur Rahman, inżynier oprogramowania i mistrz Javy

Spis treści

Przedmowa

Część I. Podstawy programowania funkcyjnego

  • 1. Wprowadzenie do programowania funkcyjnego
    • Co sprawia, że język jest funkcyjny?
    • Koncepcje programowania funkcyjnego
      • Funkcje czyste i transparentność referencyjna
      • Niemutowalność
      • Rekurencja
      • Typy pierwszoklasowe i funkcje wyższego rzędu
      • Kompozycja funkcyjna
      • Rozwijanie funkcji
      • Częściowe zastosowanie funkcji
      • Ewaluacja leniwa
    • Zalety programowania funkcyjnego
    • Wady programowania funkcyjnego
    • Podsumowanie
  • 2. Funkcyjna Java
    • Czym są wyrażenia lambda Javy?
      • Składnia wyrażeń lambda
      • Interfejsy funkcyjne
      • Wyrażenia lambda i zmienne zewnętrzne
      • A co z klasami anonimowymi?
      • Instrukcja invokedynamic
    • Wyrażenia lambda w działaniu
      • Tworzenie wyrażeń lambda
      • Wywoływanie wyrażeń lambda
      • Odwoływanie się do metod
    • Koncepcje programowania funkcyjnego w Javie
      • Funkcje czyste i transparentność referencyjna
      • Niemutowalność
      • Typy pierwszoklasowe
      • Kompozycja funkcyjna
      • Ewaluacja leniwa
    • Podsumowanie
  • 3. Interfejsy funkcyjne pakietu JDK
    • Cztery główne kategorie interfejsów funkcyjnych
      • Funkcje
      • Konsumenty
      • Dostawcy
      • Predykaty
    • Dlaczego jest tak wiele wariantów interfejsu funkcyjnego?
      • Argumentowość funkcji
      • Typy proste
      • Wypełnianie luki między interfejsami funkcyjnymi
    • Kompozycja funkcyjna
    • Rozszerzanie wsparcia funkcyjnego
      • Dodawanie metod domyślnych
      • Bezpośrednie implementowanie interfejsu funkcyjnego
      • Tworzenie statycznych metod pomocniczych
    • Podsumowanie

Część II. Podejście funkcyjne

  • 4. Niemutowalność
    • Mutowalność i struktury danych w OOP
    • Niemutowalność (nie tylko) w programowaniu funkcyjnym
    • Stan niemutowalności Javy
      • java.lang.String
      • Niemutowalne kolekcje
      • Typy proste i obiektowe typy opakowujące
      • Niemutowalna matematyka
      • Java Time API (JSR-310)
      • Typy wyliczeniowe
      • Słowo kluczowe final
      • Rekordy
    • Jak osiągnąć niemutowalność?
    • Powszechne praktyki
    • Podsumowanie
  • 5. Praca z rekordami
    • Typy agregacji danych
      • Krotki
      • Prosty POJO
      • Od POJO do niemutowalności
      • Od POJO do rekordu
    • Rekordy na ratunek
      • Mechanizmy wewnętrzne
      • Funkcjonalności rekordu
      • Brakujące funkcjonalności
    • Przypadki użycia i powszechne praktyki
      • Walidacja rekordów i oczyszczanie danych
      • Zwiększanie poziomu niemutowalności
      • Tworzenie zmodyfikowanych kopii
      • Rekordy jako lokalne krotki nominalne
      • Lepsza obsługa opcjonalnych danych
      • Serializowanie ewoluujących rekordów
      • Dopasowywanie wzorców rekordów (od Javy 19)
    • Jeszcze kilka słów na temat rekordów
    • Podsumowanie
  • 6. Przetwarzanie danych za pomocą strumieni
    • Przetwarzanie danych za pomocą iteracji
      • Iteracja zewnętrzna
      • Iteracja wewnętrzna
    • Strumienie jako funkcyjne potoki danych
      • Funkcjonalności strumieni
      • Spliterator, kręgosłup strumieni
    • Budowanie potoków strumieniowych
      • Tworzenie strumienia
      • Wykonywanie pracy
      • Kończenie strumienia
      • Koszt operacji
      • Modyfikowanie zachowania strumienia
    • Używać strumienia czy nie?
    • Podsumowanie
  • 7. Praca ze strumieniami
    • Strumieniowe typy proste
    • Strumienie iteracyjne
    • Strumienie nieskończone
      • Liczby losowe
      • Pamięć nie jest nieskończona
    • Od tablic do strumieni i z powrotem
      • Tablice typu obiektowego
      • Tablicowe typy proste
    • Niskopoziomowe tworzenie strumieni
    • Praca z operacjami we-wy plików
      • Odczytywanie zawartości katalogów
      • Przechodzenie katalogów w głąb
      • Przeszukiwanie systemu plików
      • Odczytywanie plików linia po linii
      • Zastrzeżenia dotyczące strumieni z operacjami we-wy plików
    • Obsługa daty i czasu
      • Kwerendowanie typów czasowych
      • Strumienie z zakresem LocalDate
    • Pomiar wydajności strumienia za pomocą narzędzia JMH
    • Kolektory
      • Kolektory downstreamowe
      • Tworzenie własnego kolektora
    • Jeszcze kilka słów na temat strumieni (sekwencyjnych)
    • Podsumowanie
  • 8. Równoległe przetwarzanie danych za pomocą strumieni
    • Współbieżność a równoległość
    • Strumienie jako równoległe potoki funkcyjne
    • Strumienie równoległe w akcji
    • Kiedy używać, a kiedy unikać strumieni równoległych?
      • Wybór odpowiedniego źródła danych
      • Liczba elementów
      • Operacje strumieniowe
      • Koszty ogólne strumienia i dostępne zasoby
      • Przykład - jeszcze raz Wojna i pokój
      • Przykład - liczby losowe
    • Lista kontrolna dla strumieni równoległych
    • Podsumowanie
  • 9. Obsługa wartości null za pomocą typów Optional
    • Problem z zerowymi referencjami
    • Jak obsługiwać wartość null w Javie (przed wprowadzeniem Optional)?
      • Najlepsze praktyki w zakresie obsługi wartości null
      • Kontrole null z użyciem narzędzi
      • Typy wyspecjalizowane, takie jak Optional
    • Typy opcyjne na ratunek
      • Czym jest Optional?
      • Tworzenie potoków opcyjnych
    • Opcje i strumienie
      • Typy opcyjne jako elementy strumienia
      • Operacje terminalne strumieni
    • Opcyjne typy proste
    • Zastrzeżenia
      • Opcje są zwykłymi typami
      • Metody uwzględniające tożsamość
      • Narzut związany z wydajnością
      • Szczególne kwestie dotyczące kolekcji
      • Opcje i serializacja
    • Jeszcze kilka słów na temat referencji null
    • Podsumowanie
  • 10. Obsługa wyjątków funkcyjnych
    • Obsługa wyjątków Javy w pigułce
    • Blok try-catch
      • Różne rodzaje wyjątków i błędów
    • Wyjątki sprawdzane w wyrażeniach lambda
      • Wyodrębnianie kodu do postaci bezpiecznych metod
      • Anulowanie sprawdzania wyjątków
      • Sneaky throws
    • Funkcyjne podejście do wyjątków
      • Nierzucanie wyjątków
      • Błędy jako wartości
      • Wzorzec Próba, Powodzenie, Niepowodzenie
    • Jeszcze kilka słów na temat funkcyjnej obsługi wyjątków
    • Podsumowanie
  • 11. Ewaluacja leniwa
    • Porównanie leniwości i gorliwości
    • Jak gorliwa jest Java?
      • Ewaluacja minimalna
      • Struktury sterowania
      • Leniwe typy pakietu JDK
    • Wyrażenia lambda i funkcje wyższego rzędu
      • Podejście gorliwe
      • Podejście bardziej leniwe
      • Podejście funkcyjne
    • Opóźnianie wykonywania za pomocą typu Thunk
      • Tworzenie prostego typu Thunk
      • Thunk bezpieczny dla wątków
    • Jeszcze kilka słów na temat leniwości
    • Podsumowanie
  • 12. Rekurencja
    • Czym jest rekurencja?
      • Porównanie rekurencji głowowej i ogonowej
      • Rekurencja i stos wywołań
    • Bardziej złożony przykład
      • Iteracyjne przechodzenie drzewa
      • Rekurencyjne przechodzenie drzewa
    • Strumienie rekurencyjne
    • Jeszcze kilka słów na temat rekurencji
    • Podsumowanie
  • 13. Zadania asynchroniczne
    • Porównanie zadań synchronicznych i asynchronicznych
    • Typy Future Javy
    • Projektowanie potoków asynchronicznych przy użyciu typu CompletableFuture
      • Obiecywanie wartości
      • Tworzenie instancji CompletableFuture
      • Komponowanie i łączenie zadań
      • Obsługa wyjątków
      • Operacje terminalne
      • Tworzenie metody pomocniczej CompletableFuture
    • Ręczne tworzenie i rozwiązywanie
      • Ręczne tworzenie
      • Ręczne rozwiązywanie
      • Przypadki użycia dla ręcznie utworzonych i ukończonych instancji
    • Pule wątków i limity czasu
    • Jeszcze kilka słów na temat zadań asynchronicznych
    • Podsumowanie
  • 14. Funkcyjne wzorce projektowe
    • Czym są wzorce projektowe?
    • (Funkcyjne) wzorce projektowe
      • Wzorzec Metoda Wytwórcza
      • Wzorzec Dekorator
      • Wzorzec Strategia
      • Wzorzec Budowniczy
    • Jeszcze kilka słów na temat funkcyjnych wzorców projektowych
    • Podsumowanie
  • 15. Funkcyjne podejście do Javy
    • Porównanie zasad OOP i FP
    • Funkcyjny sposób myślenia
      • Funkcje są typami pierwszoklasowymi
      • Unikanie skutków ubocznych
      • Funkcyjne przetwarzanie danych za pomocą mapowania, filtrowania i redukcji
      • Implementacje opierają się na abstrakcjach
      • Budowanie funkcyjnych pomostów
      • Ułatwienie równoległości i współbieżności
      • Uwaga na potencjalny narzut
    • Architektura funkcyjna w świecie imperatywnym
      • Od obiektów do wartości
      • Separacja zagadnień
      • Różne rozmiary FC/IS
      • Testowanie FC/IS
    • Jeszcze kilka słów na temat funkcyjnego podejścia do Javy
    • Podsumowanie
Kategoria: Programowanie
Zabezpieczenie: Watermark
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
ISBN: 978-83-289-0652-5
Rozmiar pliku: 5,4 MB

BESTSELLERY

Kategorie: