Design patterns och anti patterns

24900 kr

I den här kursen går vi igen vilka design patterns som finns, vilka problem de löser och hur man implementerar dem. Vi går även igenom vanliga antipatterns, hur de uppstår, hur man identifierar dem och vad man kan göra åt dem både retroatktivt – för att ta sig ur den grop man själv grävt åt sig – och proaktivt – för att undvika att man trillar ner (igen).

Design patterns är etablerade lösningar på vanligt förekommande problem som använts så pass ofta att de fått egna namn. Anti patterns är etablerade problem orsakade av vanligt förekommande lösningar som påträffats så pass ofta att de fått egna namn.

Öppna/Schemalagda kursdatum
Stockholm – 13 – 15/10 eller 8 – 10/12
Göteborg 11 – 13/8

Beskrivning

De patterns vi går igenom är så pass generella att de är språkagnostiska, så länge vi pratar om objektorienterade språk som C++, C#, Java eller TypeScript.

Målgrupp
Målgruppen är mjukvaruutvecklare som vill fördjupa sig inom objektorienterad programmering.

Mål
Efter kursens slut kommer du känna till vilka design patterns som finns, vilka problem de löser och hur man implementerar dem. Du kommer också lära dig att känna igen vanligt förekommande fallgropar (s.k. code smells), lära dig vad man kan göra åt dem och hur du kan undvika att hamna där från början när du skriver kod.

Bakgrundskunskaper
Du förväntas ha kännedom om objektorienterad programmering.

Språk
Utbildningsmaterialet är skrivet på engelska. Utbildningen kan genomföras antingen på svenska eller engelska.

Kurslitteratur
Som kurslitteratur används:

  • Design Patterns av Erich Gamma, Rchard Helm, Ralph Johnsson och John Vlissides (”Gang of four”), ISBN: 0-201-63361-2
  • Antipatterns av William J. Brown, Raphael C. Malveau, Hays W. ”Skip” McCormick, Thomas J. Mowbray, ISBN: 978-0-471-19713-3


Kurslängd

Kursen genomförs under tre dagar

Innehåll
I kursen går vi igenom:

Skapande DesignPattern med tillhörande antipattern
Design pattern

·         Factory Method – Låt subklasser bestämma vilken klass som ska instansieras.
·         Abstract Factory – Skapa familjer av relaterade objekt utan att binda till konkreta klasser.
·         Builder – Bygg komplexa objekt steg för steg med konfigurerbara delar.
·         Singleton – Säkerställ att en klass bara har en instans och ge global åtkomst till den.
·         Prototype – Skapa nya objekt genom att klona en existerande instans.

AntiPattern
·         Poltergeist – Kortlivade objekt som bara vidarebefordrar anrop eller bygger något trivialt.
·         Overengineering – Onödigt komplexa abstraktioner utan verkligt behov.
·         Singleton Abuse – Singleton används för globalt tillstånd snarare än kontrollerad åtkomst.
·         Lava Flow – Övergiven eller halvklar kod som lever kvar i projektet.
·         God Factory – En fabrik som skapar alla typer och växer okontrollerat.

Strukturella DesignPattern med tillhörande antipattern
DesignPattern

·         Adapter – Anpassa ett gränssnitt till ett annat som klienten förväntar sig.
·         Bridge – Separera abstraktion från implementation så de kan utvecklas oberoende.
·         Composite – Behandla enskilda objekt och sammansättningar på samma sätt.
·         Decorator – Lägg till ansvar på objekt dynamiskt utan att ändra dess klass.
·         Facade – Erbjud ett förenklat gränssnitt till ett komplext system.
·         Proxy – Kontrollera åtkomst till ett objekt via ett ställföreträdande objekt.

Antipattern
·         God Object – Ett objekt som vet och gör för mycket – bryter mot separation av ansvar.
·         Tight Coupling –             Komponenter är för beroende av varandra för att kunna förändras isolerat.
·         Shotgun Surgery – En ändring kräver modifiering på många olika ställen.
·         Magic Numbers – Hårdkodade tal utan förklarande namn eller syfte.

Beteendedesignpattern med tillhörande antipattern

DesignPattern
·         Observer – Meddela flera objekt när ett annat objekts tillstånd förändras.
·         Strategy                           – Välj beteende vid körning genom att byta ut logikobjekt.
·         State – Ändra objektets beteende beroende på dess interna tillstånd.
·         Command – Kapsla in ett anrop som ett objekt för att möjliggöra ångra/upprepa.
·         Chain of Responsibility – Skicka förfrågningar längs en kedja av hanterare tills någon tar ansvar.
·         Memento – Bevara och återställ ett objekts interna tillstånd utan att exponera det.
·         Mediator – Samordna kommunikation mellan komponenter via en central instans.

Antipattern
·         Spaghetti Code – Ostrukturerad och sammanflätad kod med svårkontrollerat flöde.
·         Copy-Paste Programming – Duplicerad kod istället för att återanvända eller abstrahera.
·         Premature Optimization – Komplicerad kod för att optimera prestanda innan det behövs.
·         Bad Error Handling – Ingen eller överdriven hantering av fel; ofta med try-catch överallt.
·         Inner-Platform Effect – Återskapar funktionalitet som redan finns i språket eller plattformen.

 

Kursen levereras i samarbete med Mindroad

Kontakta oss om denna kurs

Ytterligare information

Kurslängd

3 dagar

Lärarledd

Ja

Språk

Svenskt tal, material på engelska

Recensioner

Det finns inga recensioner än.

Endast inloggade kunder som har köpt denna produkt får lämna en recension.