SlideShare une entreprise Scribd logo
1  sur  37
Scalable UI development at
         a breakneck pace
                      Phil Crosby
Phil Crosby
                             Tech lead of Ooyala Backlot



Ninjawords.com
Vimium - a Vim-like browsing experience for
Chrome
shoulda.js
livecss

                                                           2
Context - what we’re
                         building here

A product with
 Lots of functionality
 Lots of views (pages)
 New stuff each and every day



                                     3
Goals for our development
                        approach

Build lots of high quality UI with only a handful
of developers.
Iterate very quickly, build a malleable product.
No bugs!




                                                    4
Frontend development
            strategies




                     5
Frontend development
                           strategies

1. A thin client philosophy




                                    5
Frontend development
                           strategies

1. A thin client philosophy
2. Standalone views




                                    5
Frontend development
                           strategies

1. A thin client philosophy
2. Standalone views
3. Richness through a very light layer AJAX




                                              5
Frontend development
                           strategies

1. A thin client philosophy
2. Standalone views
3. Richness through a very light layer AJAX
4. Build on powerful primitives, like CSS3.




                                              5
Frontend development
                           strategies

1. A thin client philosophy
2. Standalone views
3. Richness through a very light layer AJAX
4. Build on powerful primitives, like CSS3.
5. Robust server and client side testing pipeline


                                                    5
A thin client philosophy




                       6
A thin client philosophy


Choose a thin client.




                                   6
A thin client philosophy


Choose a thin client.
We love stupid client apps.




                                   6
A thin client philosophy


Choose a thin client.
We love stupid client apps.
No behavior, no smarts => fewer places for
bugs to hide in the client.



                                             6
Standalone views
Goal: work on each view independently of the
others

Mechanics:




                                               7
Standalone views
Goal: work on each view independently of the
others

Mechanics:
Every view




                                               7
Standalone views
Goal: work on each view independently of the
others

Mechanics:
Every view
- is addressable




                                               7
Standalone views
Goal: work on each view independently of the
others

Mechanics:
Every view
- is addressable
- stateless




                                               7
Standalone views
Goal: work on each view independently of the
others

Mechanics:
Every view
- is addressable
- stateless
- has a uniform interface



                                               7
Standalone views
Goal: work on each view independently of the
others

Mechanics:
Every view
- is addressable
- stateless
- has a uniform interface
Every view can serialize itself into query string
params


                                                    7
Standalone views
Goal: work on each view independently of the
others

Mechanics:
Every view
- is addressable
- stateless
- has a uniform interface
Every view can serialize itself into query string
params
Views are connected with a light layer of ajax
                                                    7
Powerful, powerful primitives

jQuery (benefits are well-known)
HTML5
CSS3
SASS
Leverage only cutting-edge browsers.


                                       8
CSS3 - FEEL THE POWER!




                     9
CSS3 - FEEL THE POWER!

Lots of malleability for programmers to refine
UI.
Finally the expressiveness needed to cover
most styling techniques.
Box layouts, rounded corners, shadows,
gradients, and bears!


                                                 9
SASS - Bring structure to CSS


A DSL on top of CSS.
Provides nesting, variables, color arithmetic.
Write custom functions and macros to group
and reuse CSS code.



                                                 10
No love for IE




             11
No love for IE


Chrome Frame should win the 2011
Humanitarian Award.




                                      11
No love for IE


Chrome Frame should win the 2011
Humanitarian Award.
According to StatCounter’s worldwide stats for
this month, IE6 usage is down to 6% and IE7 is
down to 10%.



                                                 11
Our testing pipeline




                   12
Our testing pipeline

Most logic lives in server-side Ruby code, and
so that's where we write all of our tests.




                                                 12
Our testing pipeline

Most logic lives in server-side Ruby code, and
so that's where we write all of our tests.
HTML output is easy to assert against.




                                                 12
Our testing pipeline

Most logic lives in server-side Ruby code, and
so that's where we write all of our tests.
HTML output is easy to assert against.
Our client side testing tools:
- v8: Chrome's command line JavaScript engine
- env.js (also check out JSDom)
- Shoulda.js (github.com/philc/shoulda.js)


                                                 12
Takeaways




        13
Takeaways

We've refined this approach through building
lots of frontend product and tenaciously
enhancing team productivity.




                                               13
Takeaways

We've refined this approach through building
lots of frontend product and tenaciously
enhancing team productivity.
This frontend development approach has
worked really well for us!




                                               13
Takeaways

We've refined this approach through building
lots of frontend product and tenaciously
enhancing team productivity.
This frontend development approach has
worked really well for us!
Here are a few tools which may come in handy:
livecss
shouda.js
require.js
                                                13
THANK YOU

Contenu connexe

Tendances

Full stack web development
Full stack web developmentFull stack web development
Full stack web developmentCrampete
 
Agriya services
Agriya servicesAgriya services
Agriya servicesiScripts
 
The Full Stack Web Development
The Full Stack Web DevelopmentThe Full Stack Web Development
The Full Stack Web DevelopmentSam Dias
 
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...Prasid Pathak
 
1.[d2 오픈세미나]on thearchitectureofsocialnetworkservice
1.[d2 오픈세미나]on thearchitectureofsocialnetworkservice1.[d2 오픈세미나]on thearchitectureofsocialnetworkservice
1.[d2 오픈세미나]on thearchitectureofsocialnetworkserviceNAVER D2
 
Get Started with JavaScript Frameworks
Get Started with JavaScript FrameworksGet Started with JavaScript Frameworks
Get Started with JavaScript FrameworksChristian Gaetano
 
Looking for a place to hang my helmet
Looking for a place to hang my helmetLooking for a place to hang my helmet
Looking for a place to hang my helmetBrad Frost
 
Latest Javascript MVC & Front End Frameworks 2017
Latest Javascript MVC & Front End Frameworks 2017Latest Javascript MVC & Front End Frameworks 2017
Latest Javascript MVC & Front End Frameworks 2017AmarInfotech
 
Architecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsArchitecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsRasheed Waraich
 
Comparing JVM Web Frameworks - Devoxx 2010
Comparing JVM Web Frameworks - Devoxx 2010Comparing JVM Web Frameworks - Devoxx 2010
Comparing JVM Web Frameworks - Devoxx 2010Matt Raible
 
Ultimate guide on how to hire full stack web developer in 2022
Ultimate guide on how to hire full stack web developer in 2022Ultimate guide on how to hire full stack web developer in 2022
Ultimate guide on how to hire full stack web developer in 2022Katy Slemon
 
December 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig PresentationDecember 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig PresentationJonathan Abrams
 
Standardization in W3C
Standardization in W3CStandardization in W3C
Standardization in W3CJonathan Jeon
 
Shift Remote FRONTEND: Micro Frontend Architecture: A Look Into the Future - ...
Shift Remote FRONTEND: Micro Frontend Architecture: A Look Into the Future - ...Shift Remote FRONTEND: Micro Frontend Architecture: A Look Into the Future - ...
Shift Remote FRONTEND: Micro Frontend Architecture: A Look Into the Future - ...Shift Conference
 
Responsive Design Workflow (Breaking Development Conference 2012 Orlando)
Responsive Design Workflow (Breaking Development Conference 2012 Orlando)Responsive Design Workflow (Breaking Development Conference 2012 Orlando)
Responsive Design Workflow (Breaking Development Conference 2012 Orlando)Stephen Hay
 

Tendances (20)

Full stack web development
Full stack web developmentFull stack web development
Full stack web development
 
Agriya services
Agriya servicesAgriya services
Agriya services
 
MEAN Stack
MEAN Stack MEAN Stack
MEAN Stack
 
VisionX Prototyping.
VisionX Prototyping.VisionX Prototyping.
VisionX Prototyping.
 
Vue Storefront Basics
Vue Storefront BasicsVue Storefront Basics
Vue Storefront Basics
 
The Full Stack Web Development
The Full Stack Web DevelopmentThe Full Stack Web Development
The Full Stack Web Development
 
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
 
1.[d2 오픈세미나]on thearchitectureofsocialnetworkservice
1.[d2 오픈세미나]on thearchitectureofsocialnetworkservice1.[d2 오픈세미나]on thearchitectureofsocialnetworkservice
1.[d2 오픈세미나]on thearchitectureofsocialnetworkservice
 
Get Started with JavaScript Frameworks
Get Started with JavaScript FrameworksGet Started with JavaScript Frameworks
Get Started with JavaScript Frameworks
 
Looking for a place to hang my helmet
Looking for a place to hang my helmetLooking for a place to hang my helmet
Looking for a place to hang my helmet
 
Maintainable design
Maintainable designMaintainable design
Maintainable design
 
Top java script frameworks ppt
Top java script frameworks pptTop java script frameworks ppt
Top java script frameworks ppt
 
Latest Javascript MVC & Front End Frameworks 2017
Latest Javascript MVC & Front End Frameworks 2017Latest Javascript MVC & Front End Frameworks 2017
Latest Javascript MVC & Front End Frameworks 2017
 
Architecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsArchitecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web Apps
 
Comparing JVM Web Frameworks - Devoxx 2010
Comparing JVM Web Frameworks - Devoxx 2010Comparing JVM Web Frameworks - Devoxx 2010
Comparing JVM Web Frameworks - Devoxx 2010
 
Ultimate guide on how to hire full stack web developer in 2022
Ultimate guide on how to hire full stack web developer in 2022Ultimate guide on how to hire full stack web developer in 2022
Ultimate guide on how to hire full stack web developer in 2022
 
December 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig PresentationDecember 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig Presentation
 
Standardization in W3C
Standardization in W3CStandardization in W3C
Standardization in W3C
 
Shift Remote FRONTEND: Micro Frontend Architecture: A Look Into the Future - ...
Shift Remote FRONTEND: Micro Frontend Architecture: A Look Into the Future - ...Shift Remote FRONTEND: Micro Frontend Architecture: A Look Into the Future - ...
Shift Remote FRONTEND: Micro Frontend Architecture: A Look Into the Future - ...
 
Responsive Design Workflow (Breaking Development Conference 2012 Orlando)
Responsive Design Workflow (Breaking Development Conference 2012 Orlando)Responsive Design Workflow (Breaking Development Conference 2012 Orlando)
Responsive Design Workflow (Breaking Development Conference 2012 Orlando)
 

Similaire à How to do Scalable UI-Heavy Development at a Breakneck Pace

Build fast word press site in react in 30 mins with frontity
Build fast word press site in react in 30 mins   with frontityBuild fast word press site in react in 30 mins   with frontity
Build fast word press site in react in 30 mins with frontityImran Sayed
 
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014Phil Leggetter
 
5 Powerful Backend Frameworks for Web App Development in 2022
5 Powerful Backend Frameworks for Web App Development in 20225 Powerful Backend Frameworks for Web App Development in 2022
5 Powerful Backend Frameworks for Web App Development in 202275waytechnologies
 
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx75waytechnologies
 
RightScale User Conference: Why RightScale?
RightScale User Conference: Why RightScale?RightScale User Conference: Why RightScale?
RightScale User Conference: Why RightScale?Erik Osterman
 
Mainframe, the fast PHP framework
Mainframe, the fast PHP frameworkMainframe, the fast PHP framework
Mainframe, the fast PHP frameworkbibakis
 
WebAssembly with Rust
WebAssembly with RustWebAssembly with Rust
WebAssembly with RustKnoldus Inc.
 
ICONUK 2014 - From Idea To App
ICONUK 2014 - From Idea To AppICONUK 2014 - From Idea To App
ICONUK 2014 - From Idea To AppRené Winkelmeyer
 
Web based, mobile enterprise applications
Web based, mobile enterprise applicationsWeb based, mobile enterprise applications
Web based, mobile enterprise applicationsManish Garg
 
Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021
Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021
Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021Katy Slemon
 
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...GreeceJS
 
Leading Node.JS Development Services Company in India.docx
Leading Node.JS Development Services Company in India.docxLeading Node.JS Development Services Company in India.docx
Leading Node.JS Development Services Company in India.docxShilsha Technologies
 
Leading Node.JS Development Services Company in India.pdf
Leading Node.JS Development Services Company in India.pdfLeading Node.JS Development Services Company in India.pdf
Leading Node.JS Development Services Company in India.pdfShilsha Technologies
 
Choosing a JVM Web Framework
Choosing a JVM Web FrameworkChoosing a JVM Web Framework
Choosing a JVM Web FrameworkMatt Raible
 
Hybrid Mobile App Development Frameworks 2016
Hybrid Mobile App Development Frameworks 2016Hybrid Mobile App Development Frameworks 2016
Hybrid Mobile App Development Frameworks 2016PixelCrayons
 
AngularJS - Architecture decisions in a large project 
AngularJS - Architecture decisionsin a large project AngularJS - Architecture decisionsin a large project 
AngularJS - Architecture decisions in a large project Elad Hirsch
 
WebAssembly with Rust
WebAssembly with RustWebAssembly with Rust
WebAssembly with RustKnoldus Inc.
 
JavaScript Frameworks Popularity
JavaScript Frameworks PopularityJavaScript Frameworks Popularity
JavaScript Frameworks PopularityAlbiorix Technology
 
Mvvm knockout vs angular
Mvvm knockout vs angularMvvm knockout vs angular
Mvvm knockout vs angularBasarat Syed
 

Similaire à How to do Scalable UI-Heavy Development at a Breakneck Pace (20)

Build fast word press site in react in 30 mins with frontity
Build fast word press site in react in 30 mins   with frontityBuild fast word press site in react in 30 mins   with frontity
Build fast word press site in react in 30 mins with frontity
 
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
Using BladeRunnerJS to Build Front-End Apps that Scale - Fluent 2014
 
5 Powerful Backend Frameworks for Web App Development in 2022
5 Powerful Backend Frameworks for Web App Development in 20225 Powerful Backend Frameworks for Web App Development in 2022
5 Powerful Backend Frameworks for Web App Development in 2022
 
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
 
RightScale User Conference: Why RightScale?
RightScale User Conference: Why RightScale?RightScale User Conference: Why RightScale?
RightScale User Conference: Why RightScale?
 
Mainframe, the fast PHP framework
Mainframe, the fast PHP frameworkMainframe, the fast PHP framework
Mainframe, the fast PHP framework
 
WebAssembly with Rust
WebAssembly with RustWebAssembly with Rust
WebAssembly with Rust
 
ICONUK 2014 - From Idea To App
ICONUK 2014 - From Idea To AppICONUK 2014 - From Idea To App
ICONUK 2014 - From Idea To App
 
Web based, mobile enterprise applications
Web based, mobile enterprise applicationsWeb based, mobile enterprise applications
Web based, mobile enterprise applications
 
Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021
Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021
Top 10 Node.JS Frameworks To Gear Up Your Web App Development in 2021
 
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
 
Leading Node.JS Development Services Company in India.docx
Leading Node.JS Development Services Company in India.docxLeading Node.JS Development Services Company in India.docx
Leading Node.JS Development Services Company in India.docx
 
Leading Node.JS Development Services Company in India.pdf
Leading Node.JS Development Services Company in India.pdfLeading Node.JS Development Services Company in India.pdf
Leading Node.JS Development Services Company in India.pdf
 
Choosing a JVM Web Framework
Choosing a JVM Web FrameworkChoosing a JVM Web Framework
Choosing a JVM Web Framework
 
Hybrid Mobile App Development Frameworks 2016
Hybrid Mobile App Development Frameworks 2016Hybrid Mobile App Development Frameworks 2016
Hybrid Mobile App Development Frameworks 2016
 
AngularJS - Architecture decisions in a large project 
AngularJS - Architecture decisionsin a large project AngularJS - Architecture decisionsin a large project 
AngularJS - Architecture decisions in a large project 
 
WebAssembly with Rust
WebAssembly with RustWebAssembly with Rust
WebAssembly with Rust
 
Web frameworks
Web frameworksWeb frameworks
Web frameworks
 
JavaScript Frameworks Popularity
JavaScript Frameworks PopularityJavaScript Frameworks Popularity
JavaScript Frameworks Popularity
 
Mvvm knockout vs angular
Mvvm knockout vs angularMvvm knockout vs angular
Mvvm knockout vs angular
 

Dernier

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Dernier (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

How to do Scalable UI-Heavy Development at a Breakneck Pace

  • 1. Scalable UI development at a breakneck pace Phil Crosby
  • 2. Phil Crosby Tech lead of Ooyala Backlot Ninjawords.com Vimium - a Vim-like browsing experience for Chrome shoulda.js livecss 2
  • 3. Context - what we’re building here A product with Lots of functionality Lots of views (pages) New stuff each and every day 3
  • 4. Goals for our development approach Build lots of high quality UI with only a handful of developers. Iterate very quickly, build a malleable product. No bugs! 4
  • 5. Frontend development strategies 5
  • 6. Frontend development strategies 1. A thin client philosophy 5
  • 7. Frontend development strategies 1. A thin client philosophy 2. Standalone views 5
  • 8. Frontend development strategies 1. A thin client philosophy 2. Standalone views 3. Richness through a very light layer AJAX 5
  • 9. Frontend development strategies 1. A thin client philosophy 2. Standalone views 3. Richness through a very light layer AJAX 4. Build on powerful primitives, like CSS3. 5
  • 10. Frontend development strategies 1. A thin client philosophy 2. Standalone views 3. Richness through a very light layer AJAX 4. Build on powerful primitives, like CSS3. 5. Robust server and client side testing pipeline 5
  • 11. A thin client philosophy 6
  • 12. A thin client philosophy Choose a thin client. 6
  • 13. A thin client philosophy Choose a thin client. We love stupid client apps. 6
  • 14. A thin client philosophy Choose a thin client. We love stupid client apps. No behavior, no smarts => fewer places for bugs to hide in the client. 6
  • 15. Standalone views Goal: work on each view independently of the others Mechanics: 7
  • 16. Standalone views Goal: work on each view independently of the others Mechanics: Every view 7
  • 17. Standalone views Goal: work on each view independently of the others Mechanics: Every view - is addressable 7
  • 18. Standalone views Goal: work on each view independently of the others Mechanics: Every view - is addressable - stateless 7
  • 19. Standalone views Goal: work on each view independently of the others Mechanics: Every view - is addressable - stateless - has a uniform interface 7
  • 20. Standalone views Goal: work on each view independently of the others Mechanics: Every view - is addressable - stateless - has a uniform interface Every view can serialize itself into query string params 7
  • 21. Standalone views Goal: work on each view independently of the others Mechanics: Every view - is addressable - stateless - has a uniform interface Every view can serialize itself into query string params Views are connected with a light layer of ajax 7
  • 22. Powerful, powerful primitives jQuery (benefits are well-known) HTML5 CSS3 SASS Leverage only cutting-edge browsers. 8
  • 23. CSS3 - FEEL THE POWER! 9
  • 24. CSS3 - FEEL THE POWER! Lots of malleability for programmers to refine UI. Finally the expressiveness needed to cover most styling techniques. Box layouts, rounded corners, shadows, gradients, and bears! 9
  • 25. SASS - Bring structure to CSS A DSL on top of CSS. Provides nesting, variables, color arithmetic. Write custom functions and macros to group and reuse CSS code. 10
  • 26. No love for IE 11
  • 27. No love for IE Chrome Frame should win the 2011 Humanitarian Award. 11
  • 28. No love for IE Chrome Frame should win the 2011 Humanitarian Award. According to StatCounter’s worldwide stats for this month, IE6 usage is down to 6% and IE7 is down to 10%. 11
  • 30. Our testing pipeline Most logic lives in server-side Ruby code, and so that's where we write all of our tests. 12
  • 31. Our testing pipeline Most logic lives in server-side Ruby code, and so that's where we write all of our tests. HTML output is easy to assert against. 12
  • 32. Our testing pipeline Most logic lives in server-side Ruby code, and so that's where we write all of our tests. HTML output is easy to assert against. Our client side testing tools: - v8: Chrome's command line JavaScript engine - env.js (also check out JSDom) - Shoulda.js (github.com/philc/shoulda.js) 12
  • 33. Takeaways 13
  • 34. Takeaways We've refined this approach through building lots of frontend product and tenaciously enhancing team productivity. 13
  • 35. Takeaways We've refined this approach through building lots of frontend product and tenaciously enhancing team productivity. This frontend development approach has worked really well for us! 13
  • 36. Takeaways We've refined this approach through building lots of frontend product and tenaciously enhancing team productivity. This frontend development approach has worked really well for us! Here are a few tools which may come in handy: livecss shouda.js require.js 13

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n