Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2018-10-17 - React-IL Meet @ Facebook - Share these components

2018-10-17 - React-IL Meet @ Facebook - Share these components

React encourages us to compose our application's UI from smaller reusable components.
Every button, slider or card is a component while larger elements can be composed out of smaller components to create new applications.
But, what happens when we want to share and reuse these components?

In this talk, we'll dive into this question and learn how different architectures, from multi-repo to monorepo, affect our team's ability to share and reuse components. We'll explore how different tools in the ecosystem play a role in this use case, and learn how Bit can help us isolate and share large numbers of components, making them available to discover, use and develop anywhere in a distributed workflow. The session will include a live coding demo session and Q&A.

Gilad Shoham leads Bit's core open source team. He previously led a Javascript team at Sisense and is a lifelong contributor and speaker in the dev community.

Gilad Shoham

October 17, 2018
Tweet

Other Decks in Programming

Transcript

  1. Infra Physical machine VMS Container (docker) Repos Monorepo Multi repo

    Backend Monolith Micro Services Serverless functions Front end Full pages Anguler directives Components (React / Vue / Angular / Web) API Rest API GraphQL
  2. Development / Collaboration Main challenges Modification overhead - Modify components

    and sync changes Isolation overhead - From my project to using in other projects
  3. Discoverability Main challenges Search - Finding components in context Experience

    - See, test and play with “live” components Choose - Tests, docs, context, usage, performance, author...
  4. There’s more Main challenges Dependency management - Define and manage

    component dependencies Version management - Using different component versions Permissions - Who can use / edit a component?
  5. Development Discoverability Consumption The Component Ecosystem Shared libs Monorepos Multi-repos

    Google Docs sites “StoryBooks” Sandboxes Package managers Copy-Pasting
  6. Monolith and monorepo (Lerna, Workspaces…) One-time setup Component creation Easy

    Modifications Dependency management Good Discovery - only FS structure based Scale problems (tools, cloning) Coupling (instead of composition) Permission management Branch management Versioning - only latest code Bad
  7. Multi-repo Scalable Decoupling and encapsulation Import only what you need

    Good Bad Creation overhead Modification - Requires fork and reproduce in clean env Permissions - Requires someone else to approve
  8. Shared libraries One time setup One time install Standardization Good

    All or nothing (no partial import) Modification - Requires fork and reproduce in a clean env Permission - Requires someone else to approve Versions for all at once (no partial versioning) Bad