SlideShare a Scribd company logo
Redux-Saga
Workshop
Bullet Proof Testing
For Your Design System
By Chen Feldman
Staff Front End Software Engineer
@Gong.io
Lecture’s Timeline
Apps
Development
Today & Failure
Points
CDD &
Design Systems
Storybook as a
use-case
Testing Our
Design System
Dev Teams building components
○ Building a page from the design which not always contains or fully
aware to the existing developed components
○ Trying to keep the components isolated but not making too much effort
for that (from the planning process)
○ Taking the components to a common folder or waiting for the need for
2-3 more like that component to move it. (and then, it can become too
late)
Dev Teams building components
○ Building a page from the design which not always contains or fully
aware to the existing developed components
○ Trying to keep the components isolated but not making too much effort
for that (from the planning process)
○ Taking the components to a common folder or waiting for the need for
2-3 more like that component to move it. (and then, it can become too
late)
Dev Teams building components
○ Building a page from the design which not always contains or fully
aware to the existing developed components
○ Trying to keep the components isolated but not making too much effort
for that (from the planning process)
○ Taking the components to a common folder or waiting for the need for
2-3 more like that component to move it. (and then, it can become too
late)
The Happy Process
Product - Specs and Wireframes
Design - Figma/Sketch
Developer - Instructions & Feedback
Product & Design - Some Changes
Developer - Coding & Code Review
Product & Design - What about design
review??
Everyone - Feature Release
But..you forgot to test it..
oopsie...
And...there is another team worked with
this component
oopsie...
Yep...there are some failure points
● Do we have common and isolated components? If the answer is no,
more work to do for us to develop the new feature.
● How do we communicate faster with design and product through
one path?
● Bugs - what is the source? the components or the page?
● Do we have common and isolated components? If the answer is no,
more work to do for us to develop the new feature.
● How do we communicate faster with design and product through
one path?
● Bugs - what is the source? the components or the page?
● Do we have common and isolated components? If the answer is no,
more work to do for us to develop the new feature.
● How do we communicate faster with design and product through
one path?
● Bugs - what is the source? the components or the page?
Live Demo - Using Async Abilities
CDD - Background
● Being a front end developer became more complex
● Several apps with the same design language
● More business logic => code can become a spaghetti
● Components Driven Development is not a new idea generally but it is new
in the front end development ecosystem
CDD - Background
“...Components enable interchangeability by isolating
state from application business logic. That way, you can
decompose complex screens into simple components.
Each component has a well-defined API and fixed series
of states that are mocked. This allows components to be
taken apart and recomposed to build different UIs....”
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Small Components
Combined Components
Different Pages => Same Components
Different Products
How It Helps
● Efficient - collaboration and feedback loop
● Faster - reusing components which are isolated and easy to use
● Easy to find bugs/failure points - tested so I can find the issue without
wasting too much time
● Scalability - app grows or adding more products without any issue since we
have one source of truth
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Live Demo - Using Async Abilities
Design System
● Working with CDD is one step forward
● When things get more complex there is a need for clear and smooth
workflow
● The design system serves as a bridge between disciplines. It is also the
“source of truth” for an organization’s common components.
Live Demo - Using Async Abilities
Design System - Background
“...A design system consolidates common UI components
in a central well-maintained repository that gets
distributed via a package manager. Developers import
standardized UI components instead of pasting the same
UI code in multiple projects.....”
Design System - Background
“...Most design systems aren’t built from scratch. Instead,
they’re assembled from tried-and-true UI components
used across a company which are repackaged as a
design system......”
Live Demo - Using Async Abilities
Who Uses It?
Who Uses It - Examples
https://baseweb.design/- Uber
https://primer.style/css/components/avatars - Github
How can YOUR COMPANY get to this level?
Build
● Storybook environment
● Addons for faster development of automatic abilities : Controls, Actions,
Docs
Fun Fact
● The real story of how storybook was created and engined from a company
called Kadira that was shut down
Let's See Some Code
Let's See Some Code
Let's See Some Code
Storybook Addons
Storybook Addons - How do we add them?
Storybook Addons - Bonus
Chromatic - Review and Feedback
● Chromatic is a tool developed by Storybook maintainers
● It integrates with Github and your deployment process
● Code Review - But for the UI
Step 1 - Review UI Tests
Step 2 - Choose Changes To Review
Step 3 - Feedback
Test to prevent UI bugs
● Design systems are a single source of truth and a single point of failure.
Minor UI bugs in basic components can snowball into company-wide
incidents.
● Automate tests helps you mitigate the inevitable bugs to ship durable,
accessible UI components with confidence
Difficulties today
What to test?
● Visual
● Unit (functional)
● Accessibility
Testing strategy
● Coverage of enough cases
● Accuracy which means make sure we test the most important
functionalities
● Maintainability - we need to make sure it is easy to understand and
maintain our tests. In addition, to avoid creating and maintaining tests that
are not worth it
CSF - Component Story Format
CSF - Component Story Format
CSF - Component Story Format
● Stories and component metadata are defined as ES Modules
● Every component story file consists of a required default export and one or
more named exports
● Basically, by using CSF, we already think about all the states of the
components and preparing the data and relevant args
CSF - Component Story Format
CSF => Test
CSF - Component Story Format
● Portable
● Declarative
● Future Proof
● Can migrate from older way to the new format
CSF - Component Story Format
● Portable
● Declarative
● Future Proof
● Can migrate from older way to the new format
CSF - Component Story Format
● Portable
● Declarative
● Future Proof
● Can migrate from older way to the new format
CSF - Component Story Format
● Portable
● Declarative
● Future Proof
● Can migrate from older way to the new format
Visual
The appearance of the component
● Manual
● Automatic
Before change After change
Unit
● Unit tests helps us test a functionality of an isolated component we created
● If it is hard for us to test it , it might be a clue that it is not isolated enough
Accessibility
Is it responsive and fit accessibility needs?
What not to test?
● Snapshot tests (on complex components) - can cause many false-
positives when UI acts as expected but some data changes. It can be hard
to maintain
● E2E - Choose it carefully and avoid creating them as part of storybook
unless it really gives you some clear benefits
Document
Auto-generating minimum viable docs which can be further customized
Distribute easily to other teams
Who Uses Storybook?
● Harel (Part of the architecture team with Avihay Menahem) https://hrl-
internal.s3.eu-central-
1.amazonaws.com/storybook/index.html?path=/story/basic-components-
data-display--tooltip
● Wix https://www.wix.com/pages/wix-style-react/?path=/story/introduction-
getting-started--getting-started
● Lonely Planet http://lonelyplanet.github.io/backpack-ui/?path=/story/lists--
news-list-default
● AirBNB http://airbnb.io/react-dates/?path=/story/daterangepicker-drp--
default
Takeaways
Coverage,
Accurate and
Maintainable!
Takeaways
Adopted by
huge companies
Learn from their
resources!
Takeaways
Build it with
layers.
Start with small
success
Takeaways
Collaboration
process.
Not only for
developers!
Takeaways
Build it with
layers.
Start with small
success
Collaboration
process.
Not only for
developers!
Coverage,
Accurate and
Maintainable!
Adopted by
huge companies
Learn from their
resources!
Thank You!
We are hiring!
(PM me or https://www.gong.io/careers/)
@chenfeldmn
@chenosfeldman
www.ranlevi.com/software
https://github.com/ChenFeldman
https://www.linkedin.com/in/chen-feldman-2404682a/
Creditshttps://www.componentdriven.org/
https://blog.hichroma.com/component-driven-development-ce1109d56c8e
https://material-ui.com/
https://www.learnstorybook.com/
https://github.com/seek-oss/playroom
https://medium.com/storybookjs/the-storybook-story-dd3c1ab0d2ce
https://storybook.js.org/addons
https://www.chromatic.com/
https://blog.logrocket.com/top-storybook-addons-to-take-your-code-to-the-next-level/
https://blog.harrison.dev/storybook-addon-figma
https://storybook.js.org/docs/react/api/csf
https://storybook.js.org/docs/react/workflows/testing-with-storybook
https://blog.logrocket.com/comparing-react-testing-libraries/
https://reactjs.org/docs/testing-recipes.html
https://reactjs.org/docs/test-utils.html
https://github.com/alexpate/awesome-design-systems
https://reactjs.org/docs/testing.html
https://github.com/storybookjs/storybook/blob/master/lib/core/docs/storiesOf.md

More Related Content

What's hot

Trunk based development
Trunk based developmentTrunk based development
Trunk based development
go_oh
 
Teaching Kids Programming
Teaching Kids ProgrammingTeaching Kids Programming
Teaching Kids Programming
Lynn Langit
 
Automated Testing in Angular Slides
Automated Testing in Angular SlidesAutomated Testing in Angular Slides
Automated Testing in Angular Slides
Jim Lynch
 
Yet Another Continuous Integration Story
Yet Another Continuous Integration StoryYet Another Continuous Integration Story
Yet Another Continuous Integration Story
Anton Serdyuk
 
Nightwatch JS for End to End Tests
Nightwatch JS for End to End TestsNightwatch JS for End to End Tests
Nightwatch JS for End to End Tests
Sriram Angajala
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
Sargis Sargsyan
 
Lean Quality & Engineering
Lean Quality & EngineeringLean Quality & Engineering
Lean Quality & Engineering
Mek Srunyu Stittri
 
Android Studio vs Eclipse: What are the main differences?
Android Studio vs Eclipse: What are the main differences?Android Studio vs Eclipse: What are the main differences?
Android Studio vs Eclipse: What are the main differences?
avocarrot
 
HotelQuickly Product & Engineering
HotelQuickly Product & EngineeringHotelQuickly Product & Engineering
HotelQuickly Product & Engineering
Michal Juhas
 
Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)
Lars Thorup
 
Trunk-Based Development and Toggling
Trunk-Based Development and TogglingTrunk-Based Development and Toggling
Trunk-Based Development and Toggling
Bryan Liu
 
Automated perf optimization - html5 dev conf
Automated perf optimization - html5 dev confAutomated perf optimization - html5 dev conf
Automated perf optimization - html5 dev conf
Matthew Lancaster
 
Visual Automation Framework via Screenshot Comparison
Visual Automation Framework via Screenshot ComparisonVisual Automation Framework via Screenshot Comparison
Visual Automation Framework via Screenshot Comparison
Mek Srunyu Stittri
 
Introduction to android studio 2.0 and data binding library
Introduction to android studio 2.0 and data binding libraryIntroduction to android studio 2.0 and data binding library
Introduction to android studio 2.0 and data binding library
Kaushal Dhruw
 
DevOps 及 TDD 開發流程哲學
DevOps 及 TDD 開發流程哲學DevOps 及 TDD 開發流程哲學
DevOps 及 TDD 開發流程哲學
謝 宗穎
 
Configuration as Code in Bamboo
Configuration as Code in BambooConfiguration as Code in Bamboo
Configuration as Code in Bamboo
Atlassian
 
Automated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choiceAutomated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choice
toddbr
 
UX Prototyping: New Principles and Tools (HTP Grodno, 20.03.2018)
UX Prototyping: New Principles and Tools (HTP Grodno, 20.03.2018)UX Prototyping: New Principles and Tools (HTP Grodno, 20.03.2018)
UX Prototyping: New Principles and Tools (HTP Grodno, 20.03.2018)
Ilya Zakharau
 
Comparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End TestingComparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End Testing
Katie Chin
 
Better Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component PatternBetter Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component Pattern
Sargis Sargsyan
 

What's hot (20)

Trunk based development
Trunk based developmentTrunk based development
Trunk based development
 
Teaching Kids Programming
Teaching Kids ProgrammingTeaching Kids Programming
Teaching Kids Programming
 
Automated Testing in Angular Slides
Automated Testing in Angular SlidesAutomated Testing in Angular Slides
Automated Testing in Angular Slides
 
Yet Another Continuous Integration Story
Yet Another Continuous Integration StoryYet Another Continuous Integration Story
Yet Another Continuous Integration Story
 
Nightwatch JS for End to End Tests
Nightwatch JS for End to End TestsNightwatch JS for End to End Tests
Nightwatch JS for End to End Tests
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
 
Lean Quality & Engineering
Lean Quality & EngineeringLean Quality & Engineering
Lean Quality & Engineering
 
Android Studio vs Eclipse: What are the main differences?
Android Studio vs Eclipse: What are the main differences?Android Studio vs Eclipse: What are the main differences?
Android Studio vs Eclipse: What are the main differences?
 
HotelQuickly Product & Engineering
HotelQuickly Product & EngineeringHotelQuickly Product & Engineering
HotelQuickly Product & Engineering
 
Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)Test and Behaviour Driven Development (TDD/BDD)
Test and Behaviour Driven Development (TDD/BDD)
 
Trunk-Based Development and Toggling
Trunk-Based Development and TogglingTrunk-Based Development and Toggling
Trunk-Based Development and Toggling
 
Automated perf optimization - html5 dev conf
Automated perf optimization - html5 dev confAutomated perf optimization - html5 dev conf
Automated perf optimization - html5 dev conf
 
Visual Automation Framework via Screenshot Comparison
Visual Automation Framework via Screenshot ComparisonVisual Automation Framework via Screenshot Comparison
Visual Automation Framework via Screenshot Comparison
 
Introduction to android studio 2.0 and data binding library
Introduction to android studio 2.0 and data binding libraryIntroduction to android studio 2.0 and data binding library
Introduction to android studio 2.0 and data binding library
 
DevOps 及 TDD 開發流程哲學
DevOps 及 TDD 開發流程哲學DevOps 及 TDD 開發流程哲學
DevOps 及 TDD 開發流程哲學
 
Configuration as Code in Bamboo
Configuration as Code in BambooConfiguration as Code in Bamboo
Configuration as Code in Bamboo
 
Automated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choiceAutomated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choice
 
UX Prototyping: New Principles and Tools (HTP Grodno, 20.03.2018)
UX Prototyping: New Principles and Tools (HTP Grodno, 20.03.2018)UX Prototyping: New Principles and Tools (HTP Grodno, 20.03.2018)
UX Prototyping: New Principles and Tools (HTP Grodno, 20.03.2018)
 
Comparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End TestingComparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End Testing
 
Better Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component PatternBetter Page Object Handling with Loadable Component Pattern
Better Page Object Handling with Loadable Component Pattern
 

Similar to Bulletproof design systems using storybook

Ci tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsCi tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepins
Linards Liep
 
Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partner
Bill Scott
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software house
Paris Apostolopoulos
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-end
Jordi Anguela
 
North east user group tour
North east user group tourNorth east user group tour
North east user group tour
10n Software, LLC
 
Lessons Learned When Automating
Lessons Learned When AutomatingLessons Learned When Automating
Lessons Learned When Automating
Alan Richardson
 
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
Anna Russo
 
30 days or less: New Features to Production
30 days or less: New Features to Production30 days or less: New Features to Production
30 days or less: New Features to Production
Karthik Gaekwad
 
Agile
AgileAgile
Agile
Komal2525
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
Roberto Pérez Alcolea
 
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflowMay 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
Adam Doyle
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
Ambientia
 
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
Paul Jensen
 
Top 7 react developer tools to use in 2021
Top 7 react developer tools to use in 2021Top 7 react developer tools to use in 2021
Top 7 react developer tools to use in 2021
WrapPixel
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]
Dynatrace
 
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
Bill Scott
 
Continuous, continuous, continuous
Continuous, continuous, continuousContinuous, continuous, continuous
Continuous, continuous, continuous
Michele Orselli
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
Sunil Dalal
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated Testing
Lars Thorup
 
Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testing
BestBrains
 

Similar to Bulletproof design systems using storybook (20)

Ci tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsCi tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepins
 
Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partner
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software house
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-end
 
North east user group tour
North east user group tourNorth east user group tour
North east user group tour
 
Lessons Learned When Automating
Lessons Learned When AutomatingLessons Learned When Automating
Lessons Learned When Automating
 
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
 
30 days or less: New Features to Production
30 days or less: New Features to Production30 days or less: New Features to Production
30 days or less: New Features to Production
 
Agile
AgileAgile
Agile
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflowMay 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
End to end testing Single Page Apps & APIs with Cucumber.js and Puppeteer (Em...
 
Top 7 react developer tools to use in 2021
Top 7 react developer tools to use in 2021Top 7 react developer tools to use in 2021
Top 7 react developer tools to use in 2021
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]
 
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
 
Continuous, continuous, continuous
Continuous, continuous, continuousContinuous, continuous, continuous
Continuous, continuous, continuous
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated Testing
 
Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testing
 

Recently uploaded

Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
Hitesh Mohapatra
 
New techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdfNew techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdf
wisnuprabawa3
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
IJECEIAES
 
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEMTIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
HODECEDSIET
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
co23btech11018
 
132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
kandramariana6
 
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSA SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
IJNSA Journal
 
The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.
sachin chaurasia
 
Heat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation pptHeat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation ppt
mamunhossenbd75
 
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
VICTOR MAESTRE RAMIREZ
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
IJECEIAES
 
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptxML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
JamalHussainArman
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
gerogepatton
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
abbyasa1014
 
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
Yasser Mahgoub
 
Recycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part IIRecycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part II
Aditya Rajan Patra
 
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
ihlasbinance2003
 
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
171ticu
 
CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
rpskprasana
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
IJECEIAES
 

Recently uploaded (20)

Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
 
New techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdfNew techniques for characterising damage in rock slopes.pdf
New techniques for characterising damage in rock slopes.pdf
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
 
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEMTIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
 
132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
 
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMSA SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
A SYSTEMATIC RISK ASSESSMENT APPROACH FOR SECURING THE SMART IRRIGATION SYSTEMS
 
The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.
 
Heat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation pptHeat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation ppt
 
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
 
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptxML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
 
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
 
Recycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part IIRecycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part II
 
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
 
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
 
CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
 

Bulletproof design systems using storybook

Editor's Notes

  1. פעם שלישית תשתית
  2. פעם שלישית תשתית
  3. פעם שלישית תשתית
  4. In cases of Image processing Heavy calculations and logic that are done in the client side Running algorithms in the main js thread Or even any client operation that is done there and takes 500 milliseconds The user will still feel the legging.
  5. Developer Getting some brief from the above and planning the components or building the page directly. Depends on the way the company decided to work While working/planning sending some feedback or question to product/design
  6. Developer - finish building the feature Code review from another developer UI feedback? kind of a code review from product/design
  7. Many possible failure points in this process (every company build its own workflow) Do we have common and isolated components? If the answer is no, more work to do for us to develop the new feature. How many time do we ask the above Q and answering No? if it is too much it should make you think How do we communicate faster with design and product through one path? Figma comments? not working perfectly. Where do I document those comments as tasks? Product/Design have to wait until first release (even to staging env). We might have a faster way to do it and get feedback Bugs - what is the source? the components or the page? If the components were isolated and tested, it would be faster to find bugs since the is one point of failure Damn .. this component is almost generic..I think I will just write my own one It is not easy to create an isolated components specially when the need for more usage is in the far future (or maybe not?). I need to provide results to my company.
  8. Many possible failure points in this process (every company build its own workflow) Do we have common and isolated components? If the answer is no, more work to do for us to develop the new feature. How many time do we ask the above Q and answering No? if it is too much it should make you think How do we communicate faster with design and product through one path? Figma comments? not working perfectly. Where do I document those comments as tasks? Product/Design have to wait until first release (even to staging env). We might have a faster way to do it and get feedback Bugs - what is the source? the components or the page? If the components were isolated and tested, it would be faster to find bugs since the is one point of failure Damn .. this component is almost generic..I think I will just write my own one It is not easy to create an isolated components specially when the need for more usage is in the far future (or maybe not?). I need to provide results to my company.
  9. Many possible failure points in this process (every company build its own workflow) Do we have common and isolated components? If the answer is no, more work to do for us to develop the new feature. How many time do we ask the above Q and answering No? if it is too much it should make you think How do we communicate faster with design and product through one path? Figma comments? not working perfectly. Where do I document those comments as tasks? Product/Design have to wait until first release (even to staging env). We might have a faster way to do it and get feedback Bugs - what is the source? the components or the page? If the components were isolated and tested, it would be faster to find bugs since the is one point of failure Damn .. this component is almost generic..I think I will just write my own one It is not easy to create an isolated components specially when the need for more usage is in the far future (or maybe not?). I need to provide results to my company.
  10. Let’s see a live demo I made specially for you to better understand what pain do we have in js as a single-threaded language. We see here a race between frameworks which is controlled by the js main thread to move them forward While they race we have a code editor above the we can write anything we want Each keyup event our text is being analyzed and the results are shown below the text area The analyzed can take up to a second so I created a blocking code that demonstrate this heavy calculation that can be done on the text each time As you see, when we type something and the analysis runs, all the other actions in our program are stuck Cannot click button or hover. UI is blocked The animations are not moving since the code which is responsible for them is waiting for our analysis to finish executing
  11. Being a front end developer became more complex in the last years. App is build cross-platform and some companies builds several apps with the same design language It requires more business logic and when an app grows the code can become a spaggethi with many bugs and hard to navigate and control Components Driven Development is not a new idea generally but it is new in the front end development eco-system. React framework was one of the first to adopt it in it core. We can find kind of a similar concepts in other worlds : micro-services and containers which modularise our app services (but this is not part of our lecture)
  12. Small components: Button, Input, Checkbox... Combine components: Auto-Complete, Form, Popup... Build pages: Login page, Onboarding page... Build different products: Product website, Marketing website, Backoffice website...
  13. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  14. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  15. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  16. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  17. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  18. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  19. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  20. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  21. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  22. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  23. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  24. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  25. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  26. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  27. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  28. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  29. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  30. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  31. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  32. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  33. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  34. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  35. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth
  36. Efficient - collaboration and feedback loop Faster - re-using components which are isolated and easy to use Easy to find bugs/failure points - tested so I can find the issue without wasting too much time Scalability - app grows or adding more products without any issue since we have one source of truth