T2941

Open Source Effective Java

Det här är utbildningen som fokuserar på hur man skriver robusta och väldesignade program i Java. Du får lära dig att använda effektiva mönster för att uppnå god läsbarhet, bra prestanda och för att underlätta framtida underhåll. Utbildningen tar systematiskt upp ett antal områden inom programutveckling i Java och förklarar hur man undviker vanliga fel och presenterar kompletta exempel på korrekt programkod.

Utbildningen innehåller rikligt med exempel och övningar för varje separat delmoment. Övningarna utgår typiskt från små applikationer som behöver kompletteras/förbättras.

Utbildningenföljer riktlinjer framtagna av Joshua Bloch publicerade i boken "Effective Java".

Utbildningen täcker in nyheterna i Java 7.

 Målgrupp:

Java-programmerare som vill fördjupa sin grundkompetens inom Java och kunna producera robust kod av god kvalité.

Programmerare med "gamla" kunskaper från någon tidigare version av Java som behöver uppdatering och fördjupning.

Erfarna C++ / C# programmerare som vill få en snabb introduktion till Java.

Format:

3 dagar - Hands-On

Utbildningens praktiska del baseras på kompletta körbara exempel för varje kapitel samt fristående övningar. Lösningsförslag till övningarna gås igenom och kopplas till aktuell teori.

Innehåll:

Grundläggande design av klasser och gränssnitt

1. Introduktion - Objektorientering och UML

  • UML
  • Klasser och Objekt
  • UML implementerat i Java

2. Enhetstestning med JUnit4

  • JUnit4 arkitektur
  • Annotationer för tester
    • @Test
    • @Before
    • @After
  • Integration av JUnit4 i Eclipse
  • Körning av enstaka tester
  • Körning av testsviter

3. Omdefinition av metoder från klassen Object

  • equals
  • hashCode
  • toString
  • Implementation av gränssnittet Comparable

4. Klasser och Interface

  • Tillgänglighet
    • Inkapsling
    • Publika metoder och privata attribut
    • Värdeklasser - immutable classes
  • Klassdesign
    • Arv eller komposition
    • Abstrakta basklasser eller gränssnitt
    • Interface för flexibilitet vid typval
  • Nästlade klasser
    • Statiska klasser
    • Inre klasser
    • Anonyma klasser
    • Lokala klasser

5. Skapa och städa undan objekt

  • Statiska fabriksmetoder kontra konstruktorer
  • Kedjade konstruktoranrop
  • Designmönster
    • Singleton
    • Builder
    • Prototype
  • Minska behov av garbage collection
  • Undvik finalizer

Användning av Java's API

6. Generics och Typsäkra samlingsklasser

  • Generics
    • Typparameterisering
    • Arrays vs Generics
  • Typsäkerhet i samlingsklasser
    • Erasure garanterar bakåtkompabilitet
  • Grundläggande interface
    • List, Set, Queue, Map, SortedSet, SortedMap
  • Grundläggande implementationsklasser
    • ArrayList, HashSet, TreeSet, HashMap, TreeMap
  • Iterator vs for:each-loop
  • Specialiserande interface
    • Deque, NavigableSet, NavigableMap
  • Implementationsklasser för specialiserande interface
    • ArrayDeque, PriorityQueue
  • Prestanda för implementationsklasser
  • Synkroniserade klasser

7. Enum och Annotationer

  • Enum för konstanter
  • Enum med metoder
  • Samlingsklasser med Enum-baserade nycklar
    • EnumMap
    • EnumSet
  • Annotationer
    • Definition
    • Regler för tillämpning
    • Retention
    • Annotationer vs namnkonventioner

8. Ramverk för loggning i Java

  • Arkitektur
  • Logger
  • LogRecord
  • Handler
  • Filters
  • Formatters
  • Konfiguration av loggning
Generell Programmering

9. Metoder i Java

  • Namngivning
  • Kontroll av inparametrar
  • Defensiv kopiering av returvärde
  • Undvik returvärdet null
  • Riktlinjer för dokumentation med JavaDoc

10. Formatering av text

  • java.util.Formatter
  • Metoden format i klassen String
  • Parameterhantering

11. Generell programmering

  • Minimera räckvidd för lokala variabler
  • Använd interface som typ
  • Använd for:each som läsloop
  • Undvik flyttalstyper för exakta beräkningar
  • Prestandaaspekter för wrapper-klasser
  • Prestandaaspekter för String
  • Följ kodningskonventioner

12. Undantagshantering

  • Överblick undantagstyper
    • Runtime exceptions
    • Checked exceptions
    • Chained exceptions
  • Använd undantag korrekt
    • Undantag vs returvärde
  • Val av undantagstyp
  • Använd befintliga undantagsklasser
  • Stöd loggning i felmeddelande

13. Serialisering

  • Serialisering i Java
  • Externalizable för utökad kontroll
  • Versionshantering

Fakta

Kurs
T2941
Längd
3 dagar
Pris
19.900 kr (exkl. moms)
Bookmark and Share

Förkunskaper

Erfarenhet från grundläggande programmering i Java, alternativt stor erfarenhet av programmering i C++ eller C#

Kursmaterial

Allt material är på engelska. Följand bok ingår: “Effective Java 2nd ed” Joshua Bloch

Kontakta oss
för mer information:

08 - 587 116 10 (Stockholm)
031 - 773 07 90 (Göteborg)
040-662 20 60 (Malmö)
info@informator.se