Guide
July 12, 2019
As your organization grows, your development teams building new features and applications may increasingly struggle with code duplication. Duplication can be combated with components-based engineering, a common practice that encourages the DRY (Do not Repeat Yourself) principle. Building a complex application using components as building blocks allows each unit to be used in different contexts. This approach is in contrast to older methodologies of building user interfaces with inheritance, which can be brittle when misused.
Using components can help your organization achieve several feats:
Well-designed and tested components can be incorporated into any project that uses the same (or compatible) framework without failure.
Components can be leveraged to prototype and develop new applications rapidly. Changes made to an individual component can immediately propagate to every application that consumes it.
The development lifecycle of components is standardized. Components are designed, developed, and tested in isolation. In addition, your users have a consistent experience across each application.
A component library is a package from which any application can pull components. The library can be published and imported as a unit, or components can be published and versioned independently.
Choose the target platform or framework
Develop and stick to conventions.
Choose which tools your team will use to build the component library
Organize your components based on complexity
Organize your components based on context
Use your own building blocks
Make components independently configurable
Make components globally configurable. Your component library should ship with a method for global configuration that adds support for global theming, timeout configuration, etc.
Create a publishing strategy
Testing
Every component in your library won’t be built from scratch. You might have existing code in an application that could be isolated and pulled into a component library. Here are a few guidelines to help with that process.
Start at the “leaves” of your application.
Move to the more complex components.
Thanks to Levvelers John Mitchell and Brenda Jiminez for contributing to this content.
Levvel helps clients transform their business with strategic consulting and technical execution services. We work with your IT organization, product groups, and innovation teams to design and deliver on your technical priorities.
Our Engineering team is made up of technology agnostic enthusiasts with a wide array of knowledge in popular modern and legacy languages such as Java, .NET, Ruby on Rails, Node.js & JavaScript, Python, and PHP.
We firmly believe that mentoring can be integrated with delivery. Our main focus is on saving our partners as much as possible on the lifetime-total-cost of ownership and maintainability of their systems. For more information, contact us at hello@levvel.io.
Authored By
Eric McDaniel
Engineering Manager
Mariel Van Norman
Engineering Consultant
Meet our Experts
Engineering Manager
Eric is a technical decision-maker. He has six years of experience engineering software in publishing and logistics spaces. He helps customers build performant and ergonomic user experiences through application of modern techniques and best practices.
Engineering Consultant
Mariel Van Norman is an Engineering Consultant who specializes in front-end implementation. Previously, she taught a full stack programming bootcamp course at Tech Talent South in Charlotte, NC. In her free time, she enjoys sewing and spending time with her two cats.
Let's chat.
You're doing big things, and big things come with big challenges. We're here to help.