feature-u
feature-u is a utility library that facilitates Feature-Driven
Development in your react
project. It provides
tangible assistance in promoting features that are truly
plug-and-play.
You can quickly "come up to speed" with feature-u by viewing
the Playful Features Video
, that builds concepts, and
demonstrates them in a real world app (eatery-nod-w
).
Introduction
Feature-Driven Development (FDD) has become more prevalent in today's landscape, and for good reason! This is a lightweight Agile technique, manifest in a project structure where your code is organized by what it accomplishes (i.e. features), rather than lumping all modules of like types into separate blobs of components, routes, logic, actions, etc. This technique greatly improves your code comprehension because there is a direct correlation between the problem space (the requirements) and the implementation (the code)!
Most developers would agree that organizing your project by feature is much preferred over type-based patterns. Because application domains grow in the real world, project organization by type simply doesn't scale, it just becomes unmanageable!
However, FDD involves more than just organizing your project's directory structure into features. You want to encapsulate your features into isolated and self-sufficient modules, and yet they must also be able to collaborate with other features.
Truly isolated FDD is something that is incredibly powerful! You can improve the modularity of your system by loosely coupling your features, making your app easier to understand, develop, test, and refactor. If done right, your features actually become "miniature applications" that simply plug-and-play (where the mere existence of a feature dynamically exudes the characteristics it implements)!
As it turns out there are a number of hurdles to overcome in order to accomplish this. Rather than being left to fend for yourself, feature-u has already tackled these hurdles.
feature-u promotes a new and unique approach to code organization and app orchestration.
With feature-u ...
your features can be encapsulated and isolated
they can collaborate with other features in an extendable way
your components can employ cross-feature composition (even injecting their content autonomously)
your features can initialize themselves
they can be activated or deactivated at run-time
and as a bonus, your frameworks will even auto-configure with only the active features (via a plugin architecture)
feature-u opens new doors into the exciting world of FDD. It frees you up to focus your attention on the "business end" of your features!
At a Glance
Getting Started
... installation and accessBasic Concepts
... a full introduction to feature-u concepts and terminology (a must read)Playful Features Video
... a feature-u presentation to get you started (a must see)Benefits
... understand the benefits of feature-uUsage
... what is feature-u's fundamental usage patternA Closer Look
... delve deeper into feature-u conceptsApplication Life Cycle Hook
... learn how features can initialize themselvesCross Feature Communication
... promote truly Plug-and-Play features through a well-defined Public FaceUI Composition
... facilitate seamless cross-feature component composition
Feature Based Routes
... learn how navigation and routing can be integrated into your featuresFeature Enablement
... dynamically enable/disable your featuresBest Practices
... what are some feature-based best practices and single-source-of-truth principlesCore API
... the detailed reference APIExtending ...
Extending feature-u
... learn how to extend feature-uExtension API
... the detailed Extension API reference
Misc ...
Distribution
... where to find feature-uWhy feature-u?
... why was feature-u created?Revision History
... peruse the various revisions of feature-uMIT License
... legal stuff