Efektywne programowanie w języku Java

Opis szkolenia:

Uczestnicy szkolenia poznają zasady efektywnego wykorzystania języka Java oraz jego podstawowych bibliotek. Dowiedzą się, jak stosować wyjątki przechwytywalne i wyjątki czasu wykonania oraz poznają zalety stosowania statycznych klas składowych. Omówione zostaną także metody sprawdzania poprawności parametrów, projektowania sygnatur oraz idiomy, które umożliwiają tworzenie wydajnego i profesjonalnego programowania.

 


Plan szkolenia:

Tworzenie i usuwanie obiektów

  • Zastosowanie Fabryk do tworzenia obiektów
  • Zastosowanie budowniczego do obsługi wileu parametrów konstruktora
  • Klasy singletonowe
  • Unikanie powielania obiektów
  • Usuwanie niepotrzebnych referencji do obiektów

Metody wspólne dla wszystkich obiektów

  • Prawidłowa implementacja metod: equals, hashCode, toString
  • Implementacja interfejsu Comparable
  • Implementacja metody clone - wzorzec projektowy Prototype

Klasy i interfejsy

  • Ograniczanie dostępności klas i ich składników
  • Zapewnianie niezmienności obiektu - wzorzec Immutable
  • Zastępowanie dziedziczenia kompozycją
  • Projektowanie i dokumentowanie klas przeznaczonych do dziedziczenia
  • Stosowanie interfejsów zamiast klas abstrakcyjnych
  • Zastosowanie obiektów funkcyjnych do reprezentowania strategii - wzorzec Strategy
  • Stosowanie statycznych klas składowych

Typy ogólne

  • Stosowanie typów ogólnych
  • Stosowanie metod ogólnych
  • Zastosowanie związanych szablonów do zwiększania elastyczności AP

Typy wyliczeniowe i adnotacje

  • Użycie typów wyliczeniowych
  • Użycie EnumSet zamiast pól bitowych
  • Użycie EnumMap zamiast indeksowania kolejnością
  • Emulowanie rozszerzalnych typów wyliczeniowych za pomocą interfejsów
  • Korzystanie z adnotacji zamiast wzorców nazw
  • Spójne użycie adnotacji Override
  • Użycie interfejsów znacznikowych do definiowania typów

Metody

  • Defensywne kopiowanie
  • Rozsądne korzystanie z przeciążania
  • Rozsądne korzystanie z metod varargs
  • Zwracanie pustych tablic lub kolekcji zamiast wartości null

Programowanie

  • Problemy z wydajnością przy łączeniu ciągów znaków
  • Odwoływanie się do obiektów poprzez interfejsy
  • Stosowanie interfejsów zamiast refleksyjności

Wyjątki

  • Stosowanie wyjątków przechwytywanych i wyjątków czasu wykonania
  • Wykorzystanie wyjątków standardowych
  • Zachowanie atomowości w przypadku błędu
  • Dokumentowanie wyjątków zgłaszanych przez metodę
  • Udostępnianie danych o błędzie

Współbieżność i serializacja

  • Synchronizacja dostępu do wspólnych modyfikowalnych danych
  • Stosowanie wykonawców i zadań zamiast wątków
  • Stosowanie narzędzi współbieżności zamiast wait i notify
  • Dokumentowanie bezpieczeństwa dla wątków
  • Grupy wątków

Serializacja

  • Implementacja interfejsu Serializable
  • Wykorzystanie własnej postaci serializowanej
  • Defensywne tworzenie metody readObject
  • Stosowanie typów wyliczeniowych zamiast readResolve do kontroli obiektów
  • Użycie pośrednika serializacji zamiast serializowanych obiektów - wzorzec Proxy


Czas trwania szkolenia:

3 dni po 8 godzin lekcyjnych

 

Wycena szkolenia zamkniętego

Szkolenie zamknięte jest prowadzone w siedzibie Klienta.
Klient zobowiązuje się zapewnić salę szkoleniową wyposażoną w odpowiednią liczbę stanowisk komputerowych oraz rzutnik multimedialny:

Liczebność grupy:    
Miasto: