SlideShare uma empresa Scribd logo
1 de 20
This is why we can’t have nice things… The complexities of front-end web development
The developers Front-end is a specialisation Take pride in well engineered code Love a good design pattern Live by software engineering paradigms Perfectionists Sado-masochistic
What is “front-end”? Semantically marked-up content (HTML) Decoupled rules for presentation (CSS) Enhanced interaction and behaviour (JavaScript) XMLHttpRequest (aka XHR, AJAX, AJAJ, AJAH etc.) Templating So easy, even your cat could do it… right?
“An entirely hostile environment.” — Douglas Crockford
Multi user-agent Browsers Mozilla: Firefox, Camino WebKit: Safari, Chrome Trident: Internet Explorer Mobile Assistive devices Screen readers Web spiders GoogleBot
Web standards Standardised technology HTML CSS JavaScript, ActionScript (ECMAScript) XML JSON A development philosophy Semantic mark-up Separation of layers Unobtrusive JavaScript Not a complete solution to our problems!
When User Experience Attacks! Improving the users’ experience through technology
Web Accessibility Standards WCAG, WAI WAI-ARIA Legal precedents National Federation of the Blind vs. Target
Consideration Understand your users Physically disabled Blind Deaf Motor function Cognitive disabilities Autistic spectrum Difficulties with problem solving, focus, memory More common: short sightedness, colour blindness, dyslexia, dyspraxia Lazy, forgetful, pedantic, difficult… wait a minute… … that’s me! Wayfinding
SEO Semantic mark-up High quality content Links Google and the dreaded GoogleBot Headless browser Renders CSS Runs JavaScript (including events) Tests front-end performance Is learning well-used front-end widgets and methods
Technical understanding Pages not sites Framesets are confusing Understand the value of meta data Use HTTP properly
Performance Reduce download size Reduce HTTP requests Optimise static assets Minified CSS and JavaScript Well compressed images Remove image metadata Leverage caching Use GZip
“Java is to JavaScript asHam is to Hamster” The JavaScript renaissance
Ace language is ace Event-based execution Objectoriented Prototypal inheritance DOM Closures
Doing it right Graceful degradation Progressive enhancement
JavaScript Libraries JavaScript utility belt Even the cross-browser playing field Fix the stuff that’s missing Custom events Widget frameworks Not always a good thing
JavaScript Engines Know your enemy SpiderMonkey V8 JScript Inconsistent garbage collection Missing from the ECMAScript specification Memory leaks Not just IE; Firefox sucks too
Roads? Where we’re going, we don’t need roads… Future technologies are available today
Intertronz 3.0 HTML5 CSS3 Web sockets and web workers Access to standardised browser and OS APIs File system API, local storage, native drag and drop, improved browser history API Mobile Wicked awesome new interfaces You know… like in Minority Report … except without your arms getting tired
Tim Huegdon nefarioustim http://timhuegdon.com http://nefariousdesigns.co.uk Twitter: @nefarioustim http://github.com/nefarioustim

Mais conteúdo relacionado

Semelhante a This is why we can't have nice things…

Cross platform mobile web apps
Cross platform mobile web appsCross platform mobile web apps
Cross platform mobile web appsJames Pearce
 
Modern Web Development
Modern Web DevelopmentModern Web Development
Modern Web DevelopmentRobert Dawson
 
An Introduction to Microsoft Edge
An Introduction to Microsoft EdgeAn Introduction to Microsoft Edge
An Introduction to Microsoft EdgeChris Love
 
A Lap Around Internet Explorer 8
A Lap Around Internet Explorer 8A Lap Around Internet Explorer 8
A Lap Around Internet Explorer 8rsnarayanan
 
HTML5がIE10/Windows 8にもたらすもの
HTML5がIE10/Windows 8にもたらすものHTML5がIE10/Windows 8にもたらすもの
HTML5がIE10/Windows 8にもたらすものMicrosoft
 
Rob Tweed :: Ajax and the Impact on Caché and Similar Technologies
Rob Tweed :: Ajax and the Impact on Caché and Similar TechnologiesRob Tweed :: Ajax and the Impact on Caché and Similar Technologies
Rob Tweed :: Ajax and the Impact on Caché and Similar Technologiesgeorge.james
 
A Snapshot of the Mobile HTML5 Revolution
A Snapshot of the Mobile HTML5 RevolutionA Snapshot of the Mobile HTML5 Revolution
A Snapshot of the Mobile HTML5 RevolutionJames Pearce
 
Do you need jQuery in 2019?
Do you need jQuery in 2019?Do you need jQuery in 2019?
Do you need jQuery in 2019?LindaHsu19
 
Dojo - from web page to web apps
Dojo - from web page to web appsDojo - from web page to web apps
Dojo - from web page to web appsyoavrubin
 
Intro to mobile web application development
Intro to mobile web application developmentIntro to mobile web application development
Intro to mobile web application developmentzonathen
 
HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1James Pearce
 
Locking the Throne Room - How ES5+ might change views on XSS and Client Side ...
Locking the Throne Room - How ES5+ might change views on XSS and Client Side ...Locking the Throne Room - How ES5+ might change views on XSS and Client Side ...
Locking the Throne Room - How ES5+ might change views on XSS and Client Side ...Mario Heiderich
 
JavaScript: the who, what, when, where, why, & how
JavaScript: the who, what, when, where, why, & howJavaScript: the who, what, when, where, why, & how
JavaScript: the who, what, when, where, why, & howMonty Dickerson
 
DevTeach Montreal - 2012-12-11 - Windows 8 & HTML5: friends with benefits
DevTeach Montreal - 2012-12-11 - Windows 8 & HTML5: friends with benefitsDevTeach Montreal - 2012-12-11 - Windows 8 & HTML5: friends with benefits
DevTeach Montreal - 2012-12-11 - Windows 8 & HTML5: friends with benefitsFrédéric Harper
 
Intro to-html-backbone
Intro to-html-backboneIntro to-html-backbone
Intro to-html-backbonezonathen
 

Semelhante a This is why we can't have nice things… (20)

Developer < eat love code >
Developer   < eat love code >Developer   < eat love code >
Developer < eat love code >
 
How to be a Developer
How to be a DeveloperHow to be a Developer
How to be a Developer
 
Cross platform mobile web apps
Cross platform mobile web appsCross platform mobile web apps
Cross platform mobile web apps
 
Modern Web Development
Modern Web DevelopmentModern Web Development
Modern Web Development
 
An Introduction to Microsoft Edge
An Introduction to Microsoft EdgeAn Introduction to Microsoft Edge
An Introduction to Microsoft Edge
 
A Lap Around Internet Explorer 8
A Lap Around Internet Explorer 8A Lap Around Internet Explorer 8
A Lap Around Internet Explorer 8
 
HTML5がIE10/Windows 8にもたらすもの
HTML5がIE10/Windows 8にもたらすものHTML5がIE10/Windows 8にもたらすもの
HTML5がIE10/Windows 8にもたらすもの
 
Coding the UI
Coding the UICoding the UI
Coding the UI
 
Coding Ui
Coding UiCoding Ui
Coding Ui
 
Rob Tweed :: Ajax and the Impact on Caché and Similar Technologies
Rob Tweed :: Ajax and the Impact on Caché and Similar TechnologiesRob Tweed :: Ajax and the Impact on Caché and Similar Technologies
Rob Tweed :: Ajax and the Impact on Caché and Similar Technologies
 
A Snapshot of the Mobile HTML5 Revolution
A Snapshot of the Mobile HTML5 RevolutionA Snapshot of the Mobile HTML5 Revolution
A Snapshot of the Mobile HTML5 Revolution
 
Do you need jQuery in 2019?
Do you need jQuery in 2019?Do you need jQuery in 2019?
Do you need jQuery in 2019?
 
Dojo - from web page to web apps
Dojo - from web page to web appsDojo - from web page to web apps
Dojo - from web page to web apps
 
Intro to mobile web application development
Intro to mobile web application developmentIntro to mobile web application development
Intro to mobile web application development
 
HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1
 
HTML5
HTML5HTML5
HTML5
 
Locking the Throne Room - How ES5+ might change views on XSS and Client Side ...
Locking the Throne Room - How ES5+ might change views on XSS and Client Side ...Locking the Throne Room - How ES5+ might change views on XSS and Client Side ...
Locking the Throne Room - How ES5+ might change views on XSS and Client Side ...
 
JavaScript: the who, what, when, where, why, & how
JavaScript: the who, what, when, where, why, & howJavaScript: the who, what, when, where, why, & how
JavaScript: the who, what, when, where, why, & how
 
DevTeach Montreal - 2012-12-11 - Windows 8 & HTML5: friends with benefits
DevTeach Montreal - 2012-12-11 - Windows 8 & HTML5: friends with benefitsDevTeach Montreal - 2012-12-11 - Windows 8 & HTML5: friends with benefits
DevTeach Montreal - 2012-12-11 - Windows 8 & HTML5: friends with benefits
 
Intro to-html-backbone
Intro to-html-backboneIntro to-html-backbone
Intro to-html-backbone
 

Último

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 

Último (20)

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 

This is why we can't have nice things…

  • 1. This is why we can’t have nice things… The complexities of front-end web development
  • 2. The developers Front-end is a specialisation Take pride in well engineered code Love a good design pattern Live by software engineering paradigms Perfectionists Sado-masochistic
  • 3. What is “front-end”? Semantically marked-up content (HTML) Decoupled rules for presentation (CSS) Enhanced interaction and behaviour (JavaScript) XMLHttpRequest (aka XHR, AJAX, AJAJ, AJAH etc.) Templating So easy, even your cat could do it… right?
  • 4. “An entirely hostile environment.” — Douglas Crockford
  • 5. Multi user-agent Browsers Mozilla: Firefox, Camino WebKit: Safari, Chrome Trident: Internet Explorer Mobile Assistive devices Screen readers Web spiders GoogleBot
  • 6. Web standards Standardised technology HTML CSS JavaScript, ActionScript (ECMAScript) XML JSON A development philosophy Semantic mark-up Separation of layers Unobtrusive JavaScript Not a complete solution to our problems!
  • 7. When User Experience Attacks! Improving the users’ experience through technology
  • 8. Web Accessibility Standards WCAG, WAI WAI-ARIA Legal precedents National Federation of the Blind vs. Target
  • 9. Consideration Understand your users Physically disabled Blind Deaf Motor function Cognitive disabilities Autistic spectrum Difficulties with problem solving, focus, memory More common: short sightedness, colour blindness, dyslexia, dyspraxia Lazy, forgetful, pedantic, difficult… wait a minute… … that’s me! Wayfinding
  • 10. SEO Semantic mark-up High quality content Links Google and the dreaded GoogleBot Headless browser Renders CSS Runs JavaScript (including events) Tests front-end performance Is learning well-used front-end widgets and methods
  • 11. Technical understanding Pages not sites Framesets are confusing Understand the value of meta data Use HTTP properly
  • 12. Performance Reduce download size Reduce HTTP requests Optimise static assets Minified CSS and JavaScript Well compressed images Remove image metadata Leverage caching Use GZip
  • 13. “Java is to JavaScript asHam is to Hamster” The JavaScript renaissance
  • 14. Ace language is ace Event-based execution Objectoriented Prototypal inheritance DOM Closures
  • 15. Doing it right Graceful degradation Progressive enhancement
  • 16. JavaScript Libraries JavaScript utility belt Even the cross-browser playing field Fix the stuff that’s missing Custom events Widget frameworks Not always a good thing
  • 17. JavaScript Engines Know your enemy SpiderMonkey V8 JScript Inconsistent garbage collection Missing from the ECMAScript specification Memory leaks Not just IE; Firefox sucks too
  • 18. Roads? Where we’re going, we don’t need roads… Future technologies are available today
  • 19. Intertronz 3.0 HTML5 CSS3 Web sockets and web workers Access to standardised browser and OS APIs File system API, local storage, native drag and drop, improved browser history API Mobile Wicked awesome new interfaces You know… like in Minority Report … except without your arms getting tired
  • 20. Tim Huegdon nefarioustim http://timhuegdon.com http://nefariousdesigns.co.uk Twitter: @nefarioustim http://github.com/nefarioustim

Notas do Editor

  1. Often versed in several middle-tier languages
  2. Douglas Crockford, JavaScript guru, creator of JSLint and popularised JSON. Member of the ECMAScript committee.
  3. Text only browsers
  4. Legal: Aug 2008, USA. Establish a $6 million fund for settlement claims. Promised make site fully accessible to blind. Class action lawsuit took two and a half years.