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.
Recensioner
Det finns inga recensioner än.