The
Progressive Framework
Evan You
Twitter @youyuxi
GitHub @yyx990803
Oh Front End JavaScript...
Every other day on Quora/Stackoverflow/Reddit:
"Which JavaScript Framework Should I learn?"
Every other month on Medium:
But seriously,
which framework should I learn?
"It depends"
To answer that question, we need to ask more questions:
- How experienced are you?
- How big is your team?
- What type of project are you building?
- What timeframe do you have for the project?
- What are you trying to achieve with this project? Are you building the next Facebook?
Two Schools of Thought
Full-featured Frameworks
Composing Micro-libs
VS.
Two Schools of Thought
Buy into opinionated decisions
Make every decision yourself
VS.
It's more like a spectrum though
Micro libs
Full
Framework
Composing Micro Libs
-
Utmost flexibility
-
A lot of research, decisions and plumbing required
-
May not always end up maintainable
-
Only suitable for experts & tinkerers with strong experience and opinions
Full Frameworks
- Out of the box productivity
- Strong conventions, great for teams that do not want to argue over design decisions
But Full Frameworks are not for everyone...
- High barrier of entry / learning curve
- Inflexible when you disagree with the framework's decisions
- Overkill in many scenarios
The Middleground:
View-layer Centric Libs
- Ready to use when only declarative rendering is needed
- Retains flexibility for higher-level architecture
- Relies on accompanying ecosystem of tooling / support libs to get feature parity with full frameworks
The Middleground:
View-layer Centric Libs
- Ready to use when only declarative rendering is needed
- Retains flexibility for higher-level architecture
- Relies on accompanying ecosystem of tooling / support libs to get feature parity with full frameworks
Innovation is great, but
high churn rate in ecosystem
leads to decision fatigue
Progressive Framework
Framework complexity
vs.
project's inherent complexity.
A progressive framework
adapts to a project's inherent complexity.
Instead of...
"A framework that you can opt-out parts of it"
How about...
"A framework that you can progressively opt-in to"
Progressive Framework
- Lean core that works well alone
- Declarative view rendering
- Official support libraries that solve common needs
- SPA routing
- Data fetching
- State management
- Opinionated but optional build toolchain
- Scaffolding, bundling, linting, testing, hot-reloading, devtools...
The Progressive Framework
By Evan You
The Progressive Framework
- 14,936