SlideShare une entreprise Scribd logo
1  sur  78
Winat live with JavaScript Patterns By Pascal PrechtHannoverJS 08/11
I am not a Guru!
Gutes Software-Design
„Kaum etwas ist so schnellen Veränderungen unterworfen wie Software.“
„Software muss erweiterbar sein.“
Patterns
Was ist ein Pattern?
Eine Lösung für ein häufig auftretendes Problem.
... Eine bewährte Vorgehensweise, eine nützliche Abstraktion und eine Vorlage für das Lösen ganzer Problem-Kategorien.
Welche Vorteile bieten Patterns?
Vorteile von Patterns Besserer Code / Vermeidung von Redundanzen Abstraktion Bessere Kommunikation im Team
Arten der Patterns
Arten der Patterns Design-Patterns 	// Entwurfsmuster Coding-Patterns	// Spezifische Muster Anti-Patterns	// „Negative Assoziation“
JavaScript Patterns
Das funktioniert.
Aber Vorsicht!
Hoisting
Das Single-var-Pattern
Vorteile des Single-var-Pattern
Vorteile des Single-var-Pattern Zentrale Deklaration/Initialisierung Code ist leichter zu lesen Vermeidung logischer Fehler
The better way!
Objekte und Literale
Very bad!
Achtung!
Das Object-Literal-Pattern
Vorteile des Object-Literal-Pattern Weniger Code Objects sind „nur“ Hashes Keine Object-Constructor-Überraschungen
But I need a constructor!
Sh*t! I forgot the new!
Ohne new zeigt this auf das globale Objekt!
Muster zum erzwingen von new
Funktionen
Das Callback-Pattern
Immediate-Function-Pattern
Vorteile des Immediate-Function-Pattern
Vorteile des Immediate-Function-Pattern Kapselung von Aufgaben Keine globale Variabeln Modulares Verhalten
Das Immediate-Object-Pattern
Vorteile des Immediate-Object-Pattern
Vorteile des Immediate-Object-Pattern Globaler Namesraum wird frei gehalten Modulares Verhalten Private Hilfs-Funktionen sind deutlich erkennbar
Das Configuration-Object-Pattern
Vorteile des Object-Configuration-Pattern
Flexibilität.
Thank you!
Stay tuned! Twitter: @PascalPrecht Blog: HopelessArt.com
Win At Live With JavaScript Patterns

Contenu connexe

En vedette

Rastreamento de objetos utilizando ar drone
Rastreamento de objetos utilizando ar droneRastreamento de objetos utilizando ar drone
Rastreamento de objetos utilizando ar dronePET Computação
 
Rencontres datashom2016 GaelleNassif_Cerema
Rencontres datashom2016 GaelleNassif_CeremaRencontres datashom2016 GaelleNassif_Cerema
Rencontres datashom2016 GaelleNassif_CeremaFanny Lecuy
 
Top 10 Internet Trends 2000
Top 10 Internet Trends 2000Top 10 Internet Trends 2000
Top 10 Internet Trends 2000Jürg Stuker
 
MOOC CFPB
MOOC CFPB MOOC CFPB
MOOC CFPB FFFOD
 
Tracer un rectangle d'or sur le sol
Tracer un rectangle d'or sur le solTracer un rectangle d'or sur le sol
Tracer un rectangle d'or sur le solMichel Hoffmann
 
Energies marines : le positionnement de l'Ifremer et l'initiative Ipanema
Energies marines : le positionnement de l'Ifremer et l'initiative IpanemaEnergies marines : le positionnement de l'Ifremer et l'initiative Ipanema
Energies marines : le positionnement de l'Ifremer et l'initiative IpanemaStephane Parpinelli
 
Verantwortliche und kritische Nutzung digitaler Medien
Verantwortliche und kritische Nutzung digitaler MedienVerantwortliche und kritische Nutzung digitaler Medien
Verantwortliche und kritische Nutzung digitaler MedienJohannes Maurek
 
PR-Trendmonitor Oktober 2009
PR-Trendmonitor Oktober 2009PR-Trendmonitor Oktober 2009
PR-Trendmonitor Oktober 2009news aktuell
 
Greenpilot Demovortrag ZB MED
Greenpilot Demovortrag ZB MEDGreenpilot Demovortrag ZB MED
Greenpilot Demovortrag ZB MEDGREENPILOT
 
Analyse et comparaison des principaux outils SEO disponible sur le marché
Analyse et comparaison des principaux outils SEO disponible sur le marchéAnalyse et comparaison des principaux outils SEO disponible sur le marché
Analyse et comparaison des principaux outils SEO disponible sur le marchéBarbara Czmil-Ruello
 
Was ist eigentlich EAV?
Was ist eigentlich EAV?Was ist eigentlich EAV?
Was ist eigentlich EAV?danielnitz
 
Skype 4 Business Webcast 11. März 2015
Skype 4 Business Webcast 11. März 2015Skype 4 Business Webcast 11. März 2015
Skype 4 Business Webcast 11. März 2015Thomas Poett
 
alphabétisation numérique en zone rurale
alphabétisation numérique en zone ruralealphabétisation numérique en zone rurale
alphabétisation numérique en zone ruraleFranck DIEA
 

En vedette (19)

Rastreamento de objetos utilizando ar drone
Rastreamento de objetos utilizando ar droneRastreamento de objetos utilizando ar drone
Rastreamento de objetos utilizando ar drone
 
Rencontres datashom2016 GaelleNassif_Cerema
Rencontres datashom2016 GaelleNassif_CeremaRencontres datashom2016 GaelleNassif_Cerema
Rencontres datashom2016 GaelleNassif_Cerema
 
Top 10 Internet Trends 2000
Top 10 Internet Trends 2000Top 10 Internet Trends 2000
Top 10 Internet Trends 2000
 
MOOC CFPB
MOOC CFPB MOOC CFPB
MOOC CFPB
 
Tracer un rectangle d'or sur le sol
Tracer un rectangle d'or sur le solTracer un rectangle d'or sur le sol
Tracer un rectangle d'or sur le sol
 
Facebook Leitfaden
Facebook LeitfadenFacebook Leitfaden
Facebook Leitfaden
 
Energies marines : le positionnement de l'Ifremer et l'initiative Ipanema
Energies marines : le positionnement de l'Ifremer et l'initiative IpanemaEnergies marines : le positionnement de l'Ifremer et l'initiative Ipanema
Energies marines : le positionnement de l'Ifremer et l'initiative Ipanema
 
Verantwortliche und kritische Nutzung digitaler Medien
Verantwortliche und kritische Nutzung digitaler MedienVerantwortliche und kritische Nutzung digitaler Medien
Verantwortliche und kritische Nutzung digitaler Medien
 
Talca Analisis
Talca AnalisisTalca Analisis
Talca Analisis
 
Acoustique musicale
Acoustique musicaleAcoustique musicale
Acoustique musicale
 
PR-Trendmonitor Oktober 2009
PR-Trendmonitor Oktober 2009PR-Trendmonitor Oktober 2009
PR-Trendmonitor Oktober 2009
 
Greenpilot Demovortrag ZB MED
Greenpilot Demovortrag ZB MEDGreenpilot Demovortrag ZB MED
Greenpilot Demovortrag ZB MED
 
SURFING
SURFINGSURFING
SURFING
 
Bmw bike r1200 gs_katalog
Bmw bike r1200 gs_katalogBmw bike r1200 gs_katalog
Bmw bike r1200 gs_katalog
 
Analyse et comparaison des principaux outils SEO disponible sur le marché
Analyse et comparaison des principaux outils SEO disponible sur le marchéAnalyse et comparaison des principaux outils SEO disponible sur le marché
Analyse et comparaison des principaux outils SEO disponible sur le marché
 
Was ist eigentlich EAV?
Was ist eigentlich EAV?Was ist eigentlich EAV?
Was ist eigentlich EAV?
 
Sahara
SaharaSahara
Sahara
 
Skype 4 Business Webcast 11. März 2015
Skype 4 Business Webcast 11. März 2015Skype 4 Business Webcast 11. März 2015
Skype 4 Business Webcast 11. März 2015
 
alphabétisation numérique en zone rurale
alphabétisation numérique en zone ruralealphabétisation numérique en zone rurale
alphabétisation numérique en zone rurale
 

Similaire à Win At Live With JavaScript Patterns

JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerDennis Wilson
 
Design. Kantine. Web Typography. Namics.
Design. Kantine. Web Typography. Namics.Design. Kantine. Web Typography. Namics.
Design. Kantine. Web Typography. Namics.Claus Medvesek
 
Prototyping in der Softwareentwicklung (Folien zum Referat)
Prototyping in der Softwareentwicklung (Folien zum Referat)Prototyping in der Softwareentwicklung (Folien zum Referat)
Prototyping in der Softwareentwicklung (Folien zum Referat)Ulf Schröder
 
Design Pattern Libraries, Aufzucht und Pflege
Design Pattern Libraries, Aufzucht und PflegeDesign Pattern Libraries, Aufzucht und Pflege
Design Pattern Libraries, Aufzucht und PflegeWolf Brüning
 
Clean Coding - Theorie und Praxis Guide.pptx
Clean Coding - Theorie und Praxis Guide.pptxClean Coding - Theorie und Praxis Guide.pptx
Clean Coding - Theorie und Praxis Guide.pptxkaftanenko
 
Programmieren lernen Grundkurs - Tag1: 2. Theoretischer Einstieg
Programmieren lernen Grundkurs - Tag1: 2. Theoretischer EinstiegProgrammieren lernen Grundkurs - Tag1: 2. Theoretischer Einstieg
Programmieren lernen Grundkurs - Tag1: 2. Theoretischer EinstiegJan Brinkmann
 
Dnug dresden blend 5. 5. 2010
Dnug dresden blend 5. 5. 2010Dnug dresden blend 5. 5. 2010
Dnug dresden blend 5. 5. 2010SharepointUGDD
 
DNUG Dresden Blend
DNUG Dresden BlendDNUG Dresden Blend
DNUG Dresden BlendMartin Hey
 
Website Konzeption - Eine interdisziplinäre Teamarbeit
Website Konzeption - Eine interdisziplinäre TeamarbeitWebsite Konzeption - Eine interdisziplinäre Teamarbeit
Website Konzeption - Eine interdisziplinäre TeamarbeitOliver Annen
 
Mehr Nutzen, Weniger Interface
Mehr Nutzen, Weniger InterfaceMehr Nutzen, Weniger Interface
Mehr Nutzen, Weniger InterfaceMoritz Haarmann
 
IfN Studienarbeit Abschlusspres 18.9.2007
IfN Studienarbeit Abschlusspres 18.9.2007IfN Studienarbeit Abschlusspres 18.9.2007
IfN Studienarbeit Abschlusspres 18.9.2007derDoc
 
Pattern Libraries als Schnittstelle zwischen Design & Development
Pattern Libraries als Schnittstelle zwischen Design & DevelopmentPattern Libraries als Schnittstelle zwischen Design & Development
Pattern Libraries als Schnittstelle zwischen Design & DevelopmentMatthias Feit
 
Feedback-Loops in der ABAP Softwareentwicklung
Feedback-Loops in der ABAP SoftwareentwicklungFeedback-Loops in der ABAP Softwareentwicklung
Feedback-Loops in der ABAP SoftwareentwicklungPascal_Erni
 
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche SprachanwendungenFortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche SprachanwendungenRalf Eggert
 
23 Dinge, die Sie über Software-Entwicklung in Teams wissen sollten.
23 Dinge, die Sie über Software-Entwicklung in Teams wissen sollten.23 Dinge, die Sie über Software-Entwicklung in Teams wissen sollten.
23 Dinge, die Sie über Software-Entwicklung in Teams wissen sollten.Stephan Schmidt
 

Similaire à Win At Live With JavaScript Patterns (20)

JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem Softwerker
 
Design. Kantine. Web Typography. Namics.
Design. Kantine. Web Typography. Namics.Design. Kantine. Web Typography. Namics.
Design. Kantine. Web Typography. Namics.
 
Prototyping in der Softwareentwicklung (Folien zum Referat)
Prototyping in der Softwareentwicklung (Folien zum Referat)Prototyping in der Softwareentwicklung (Folien zum Referat)
Prototyping in der Softwareentwicklung (Folien zum Referat)
 
Design Pattern Libraries, Aufzucht und Pflege
Design Pattern Libraries, Aufzucht und PflegeDesign Pattern Libraries, Aufzucht und Pflege
Design Pattern Libraries, Aufzucht und Pflege
 
PHP mit Paul Bocuse
PHP mit Paul BocusePHP mit Paul Bocuse
PHP mit Paul Bocuse
 
Clean Coding - Theorie und Praxis Guide.pptx
Clean Coding - Theorie und Praxis Guide.pptxClean Coding - Theorie und Praxis Guide.pptx
Clean Coding - Theorie und Praxis Guide.pptx
 
Programmieren lernen Grundkurs - Tag1: 2. Theoretischer Einstieg
Programmieren lernen Grundkurs - Tag1: 2. Theoretischer EinstiegProgrammieren lernen Grundkurs - Tag1: 2. Theoretischer Einstieg
Programmieren lernen Grundkurs - Tag1: 2. Theoretischer Einstieg
 
GUIs mit Expression Blend
GUIs mit Expression BlendGUIs mit Expression Blend
GUIs mit Expression Blend
 
Dnug dresden blend 5. 5. 2010
Dnug dresden blend 5. 5. 2010Dnug dresden blend 5. 5. 2010
Dnug dresden blend 5. 5. 2010
 
DNUG Dresden Blend
DNUG Dresden BlendDNUG Dresden Blend
DNUG Dresden Blend
 
Website Konzeption - Eine interdisziplinäre Teamarbeit
Website Konzeption - Eine interdisziplinäre TeamarbeitWebsite Konzeption - Eine interdisziplinäre Teamarbeit
Website Konzeption - Eine interdisziplinäre Teamarbeit
 
Mehr Nutzen, Weniger Interface
Mehr Nutzen, Weniger InterfaceMehr Nutzen, Weniger Interface
Mehr Nutzen, Weniger Interface
 
IfN Studienarbeit Abschlusspres 18.9.2007
IfN Studienarbeit Abschlusspres 18.9.2007IfN Studienarbeit Abschlusspres 18.9.2007
IfN Studienarbeit Abschlusspres 18.9.2007
 
objectiF extrem
objectiF extremobjectiF extrem
objectiF extrem
 
Pattern Libraries als Schnittstelle zwischen Design & Development
Pattern Libraries als Schnittstelle zwischen Design & DevelopmentPattern Libraries als Schnittstelle zwischen Design & Development
Pattern Libraries als Schnittstelle zwischen Design & Development
 
Mehr Softwarequalität: Requirements Engineering
Mehr Softwarequalität: Requirements EngineeringMehr Softwarequalität: Requirements Engineering
Mehr Softwarequalität: Requirements Engineering
 
Feedback-Loops in der ABAP Softwareentwicklung
Feedback-Loops in der ABAP SoftwareentwicklungFeedback-Loops in der ABAP Softwareentwicklung
Feedback-Loops in der ABAP Softwareentwicklung
 
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche SprachanwendungenFortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
 
Patterns @ EduCamp 2008
Patterns @ EduCamp 2008Patterns @ EduCamp 2008
Patterns @ EduCamp 2008
 
23 Dinge, die Sie über Software-Entwicklung in Teams wissen sollten.
23 Dinge, die Sie über Software-Entwicklung in Teams wissen sollten.23 Dinge, die Sie über Software-Entwicklung in Teams wissen sollten.
23 Dinge, die Sie über Software-Entwicklung in Teams wissen sollten.
 

Win At Live With JavaScript Patterns