SlideShare une entreprise Scribd logo
1  sur  53
Télécharger pour lire hors ligne
ON SELECTING
JAVASCRIPT
FRAMEWORKS
I'm Zoe Landon.
(aka @hupfen)
I'VE DONE THIS A BIT BEFORE.
◇ I'm a web developer with a fair bit of
front-end experience.
◇ My last two jobs both involved some
degree of picking a JavaScript
framework.
◇ In fact, I've only had one job where it
didn't come up.
◇ Not to mention personal projects.
◇ It's getting kinda old, honestly.
So, if we're going to pick
a JavaScript framework,
we should look at our
options, right?
THERE'S A FEW.
BY THE WAY...
These were all active within the last two
weeks, when I made this presentation
(Oct. 7).
Some are hobbyists, some are big
companies, but all are active projects.
You could maybe double this with "slow"
projects (updates in the last 6 months).
LET'S CLEAN
THIS UP A BIT.
BETTER.
EXCEPT...
Those lines are blurry.
An MVC framework can use components
to drive its structure.
A component-driven architecture may or
may not be modular.
There's overlap. It's not clear-cut.
So, how do you pick the
right JavaScript
framework out of all that
ambiguity?
ANSWER:
Choosing a framework
shouldn't be the first
thing you do on a
project, but the last.
Before writing code, of course.
LET'S TALK ABOUT
CODE SCHOOLS.
CODE SCHOOLS
◇ Code schools, and many college CS
programs, advertise that they'll teach
you how to code.
◇ Broader PR language talks about how
everyone should learn to code.
◇ That's all true. And that's all useful.
◇ But coding is not making software.
Learning to write code,
but not learning to make
software, causes
problems.
CS VERSUS SE
Software is more than the code you write.
It's all of the context that goes into it.
Writing code is a vital step in
implementing software, but so is the
process of finding that context.
Too often, that process is skipped over by
programmers who just want to code.
CODING IS NOT
SOFTWARE
ENGINEERING
Selecting a JavaScript
framework is a software
engineering challenge,
not a coding challenge.
THE PROCESS
Sorry, but this is a software engineering
talk in disguise.
But if you ask the right questions, you'll
end up understanding the project and its
context so well that picking a framework
takes hardly any effort.
So let's ask those questions.
SOFTWARE
QUESTIONS
WHY?
WHY?
Why does the problem you're trying to
solve exist?
Was performance never considered?
Is the code poorly built?
Are you just goofing around and learning?
There's no wrong answer, besides having
no answer.
WHY?
Sometimes, you'll get requirements that
propose a solution to what they describe.
Asking "why?" offers a gut-check, to make
sure that solution really is the best one.
Also consider why a framework you're
evaluating exists. What problems are its
authors trying to solve? Do they know?
The context of the
problem matters more
than the problem itself.
WHAT?
WHAT?
Working out why the problem exists helps
to define what the problem really is.
That helps define the features and
capabilities that are going to be
necessary.
Those become your priority.
WHAT?
Some tools and frameworks do certain
features really well, and really easily. But
other features may take some work.
Don't discard a framework just because it
doesn't have exactly what you want. You
can build it. Or it may have something
different that achieves the goal instead.
Any feature is possible,
but with the wrong tools
some will be difficult.
WHO?
WHO?
You go to war with the army you have.
You, your customer, your users, your
teammates, your company… Everyone
brings perspectives. Expectations. Skills.
Experiences. Ideas.
Politics.
WHO?
If your boss says "we're using this
framework", and it's not the best one, you
either have to fight or concede.
If your team already knows a framework
that's not empirically the best, but is still
kinda close, that may be your wisest pick.
Merit rarely wins. Account for this.
The people on a project
ultimately determine
what's practical.
HOW?
HOW?
Every framework has a philosophy behind
it. Based on the context you've gathered,
you'll have a philosophy on how the
project should be done.
Now you're just looking for a match.
You'll make better code that way.
HOW?
Beyond a certain level of competence-
based best practices, it's not worth
worrying about how pundits write their
code.
If you don't like a popular approach, don't
use it. If you do like it, use it.
You're the one writing the code, after all.
Pick the tools that
encourage the kind of
code you can enjoy.
REPEAT
REPEAT
You'll hopefully only choose a framework
once, but you should be asking those
questions routinely.
Every quarter, or at the beginning of every
sprint, whatever pace helps keep you
confident you're on the right track and
making the right software.
REPEAT
But now, the hard work is done!
All you have to do is implement the ideas
you decided on. But since you did all that
work, the programming will be easier.
You've made the software, you just need
to write the code that powers it.
LAST THOUGHTS
LAST THOUGHTS
I always like to end
on some little
summarizing
thoughts.
Some oblique
strategies for
software
engineering, if you
will.
And I will.
Immediately why,
Eventually how
When faced with a
problem, ask why
the problem exists
before jumping to
solve it.
Pick the boring option
Practicality is a valid
argument. When
working with many
others, a less
interesting option
may be the best.
Software is human
Software has a
personality. It's
more than just
code, it's all the
decisions and
context that went
into it. Understand
those, understand
software.
Also:
Software has a life.
It will grow up.
It will grow old.
You can give it the
best chance of
success, but
ultimately, it's out
of your hands.
Accept this.
Embrace this.
TWEET AT ME: @HUPFEN
YELL AT ME: ZOE@HUPFEN.COM
Presentation template by SlidesCarnival
Photographs by Death to the Stock Photo

Contenu connexe

Tendances

JavaScript MV* Framework - Making the Right Choice
JavaScript MV* Framework - Making the Right ChoiceJavaScript MV* Framework - Making the Right Choice
JavaScript MV* Framework - Making the Right ChoiceDmitry Sheiko
 
Getting Started with Angular - Stormpath Webinar, January 2017
Getting Started with Angular - Stormpath Webinar, January 2017Getting Started with Angular - Stormpath Webinar, January 2017
Getting Started with Angular - Stormpath Webinar, January 2017Matt Raible
 
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Matt Raible
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015Matt Raible
 
Testing Angular Applications - Jfokus 2017
Testing Angular Applications - Jfokus 2017Testing Angular Applications - Jfokus 2017
Testing Angular Applications - Jfokus 2017Matt Raible
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynotedmethvin
 
Testing Angular 2 Applications - HTML5 Denver 2016
Testing Angular 2 Applications - HTML5 Denver 2016Testing Angular 2 Applications - HTML5 Denver 2016
Testing Angular 2 Applications - HTML5 Denver 2016Matt Raible
 
jQuery Conference San Diego 2014 - Web Performance
jQuery Conference San Diego 2014 - Web PerformancejQuery Conference San Diego 2014 - Web Performance
jQuery Conference San Diego 2014 - Web Performancedmethvin
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...Matt Raible
 
Get Hip with JHipster - Denver JUG 2015
Get Hip with JHipster - Denver JUG 2015Get Hip with JHipster - Denver JUG 2015
Get Hip with JHipster - Denver JUG 2015Matt Raible
 
AngularJS vs React JS vs Node JS: Which is Best For Web Development ?
AngularJS vs React JS vs Node JS: Which is Best For Web Development ?AngularJS vs React JS vs Node JS: Which is Best For Web Development ?
AngularJS vs React JS vs Node JS: Which is Best For Web Development ?MarkupBox
 
Learning from the Best jQuery Plugins
Learning from the Best jQuery PluginsLearning from the Best jQuery Plugins
Learning from the Best jQuery PluginsMarc Grabanski
 
jQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript TestingjQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript TestingVlad Filippov
 
What's This React Native Thing I Keep Hearing About?
What's This React Native Thing I Keep Hearing About?What's This React Native Thing I Keep Hearing About?
What's This React Native Thing I Keep Hearing About?Evan Stone
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016Matt Raible
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015Matt Raible
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016Matt Raible
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX DesignersAshlimarie
 
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016Matt Raible
 

Tendances (20)

JavaScript MV* Framework - Making the Right Choice
JavaScript MV* Framework - Making the Right ChoiceJavaScript MV* Framework - Making the Right Choice
JavaScript MV* Framework - Making the Right Choice
 
Getting Started with Angular - Stormpath Webinar, January 2017
Getting Started with Angular - Stormpath Webinar, January 2017Getting Started with Angular - Stormpath Webinar, January 2017
Getting Started with Angular - Stormpath Webinar, January 2017
 
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
 
Testing Angular Applications - Jfokus 2017
Testing Angular Applications - Jfokus 2017Testing Angular Applications - Jfokus 2017
Testing Angular Applications - Jfokus 2017
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynote
 
Testing Angular 2 Applications - HTML5 Denver 2016
Testing Angular 2 Applications - HTML5 Denver 2016Testing Angular 2 Applications - HTML5 Denver 2016
Testing Angular 2 Applications - HTML5 Denver 2016
 
jQuery Conference San Diego 2014 - Web Performance
jQuery Conference San Diego 2014 - Web PerformancejQuery Conference San Diego 2014 - Web Performance
jQuery Conference San Diego 2014 - Web Performance
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
 
Get Hip with JHipster - Denver JUG 2015
Get Hip with JHipster - Denver JUG 2015Get Hip with JHipster - Denver JUG 2015
Get Hip with JHipster - Denver JUG 2015
 
AngularJS vs React JS vs Node JS: Which is Best For Web Development ?
AngularJS vs React JS vs Node JS: Which is Best For Web Development ?AngularJS vs React JS vs Node JS: Which is Best For Web Development ?
AngularJS vs React JS vs Node JS: Which is Best For Web Development ?
 
Learning from the Best jQuery Plugins
Learning from the Best jQuery PluginsLearning from the Best jQuery Plugins
Learning from the Best jQuery Plugins
 
jQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript TestingjQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript Testing
 
What's This React Native Thing I Keep Hearing About?
What's This React Native Thing I Keep Hearing About?What's This React Native Thing I Keep Hearing About?
What's This React Native Thing I Keep Hearing About?
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015
 
The Onion
The OnionThe Onion
The Onion
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX Designers
 
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
 

En vedette

JS Framework Comparison - An infographic
JS Framework Comparison - An infographicJS Framework Comparison - An infographic
JS Framework Comparison - An infographicInApp
 
Careers_Trainee
Careers_TraineeCareers_Trainee
Careers_TraineeChris Ball
 
Presentation2015solvex
Presentation2015solvexPresentation2015solvex
Presentation2015solvexvsterev
 
Newolo virtual coach_Amsterdam_09022015
Newolo virtual coach_Amsterdam_09022015Newolo virtual coach_Amsterdam_09022015
Newolo virtual coach_Amsterdam_09022015Philippe Santraine
 
Adil zabroug resume
Adil zabroug resumeAdil zabroug resume
Adil zabroug resumeAdil Edyata
 
Bradycakes
BradycakesBradycakes
BradycakesTrue.ink
 
TWO EXTRAORDINARY TIME KEEPERS
TWO EXTRAORDINARY TIME KEEPERSTWO EXTRAORDINARY TIME KEEPERS
TWO EXTRAORDINARY TIME KEEPERSCheeco11
 

En vedette (10)

JS Framework Comparison - An infographic
JS Framework Comparison - An infographicJS Framework Comparison - An infographic
JS Framework Comparison - An infographic
 
Careers_Trainee
Careers_TraineeCareers_Trainee
Careers_Trainee
 
Mat 10 u1
Mat 10 u1Mat 10 u1
Mat 10 u1
 
Healthy Travel
Healthy TravelHealthy Travel
Healthy Travel
 
Ucaya power point1
Ucaya power point1Ucaya power point1
Ucaya power point1
 
Presentation2015solvex
Presentation2015solvexPresentation2015solvex
Presentation2015solvex
 
Newolo virtual coach_Amsterdam_09022015
Newolo virtual coach_Amsterdam_09022015Newolo virtual coach_Amsterdam_09022015
Newolo virtual coach_Amsterdam_09022015
 
Adil zabroug resume
Adil zabroug resumeAdil zabroug resume
Adil zabroug resume
 
Bradycakes
BradycakesBradycakes
Bradycakes
 
TWO EXTRAORDINARY TIME KEEPERS
TWO EXTRAORDINARY TIME KEEPERSTWO EXTRAORDINARY TIME KEEPERS
TWO EXTRAORDINARY TIME KEEPERS
 

Similaire à On Selecting JavaScript Frameworks (Women Who Code 10/15)

Recipe of a rockstar developer
Recipe of a rockstar developerRecipe of a rockstar developer
Recipe of a rockstar developerTopu Newaj
 
Software Development Life CyclesPresented byBrenda Reynold.docx
Software Development Life CyclesPresented byBrenda Reynold.docxSoftware Development Life CyclesPresented byBrenda Reynold.docx
Software Development Life CyclesPresented byBrenda Reynold.docxrosemariebrayshaw
 
Upwork time log and difficulty 20160523
Upwork time log and difficulty 20160523Upwork time log and difficulty 20160523
Upwork time log and difficulty 20160523Sharon Liu
 
Planning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teamsPlanning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teamsChristian Heilmann
 
Cinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patternsCinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patternsSteven Smith
 
Why Design Patterns Are Important In Software Engineering
Why Design Patterns Are Important In Software EngineeringWhy Design Patterns Are Important In Software Engineering
Why Design Patterns Are Important In Software EngineeringProtelo, Inc.
 
Industry stories on agile, scrum and kanban
Industry stories on agile, scrum and kanbanIndustry stories on agile, scrum and kanban
Industry stories on agile, scrum and kanbanBusiness901
 
Untangling spring week8
Untangling spring week8Untangling spring week8
Untangling spring week8Derek Jacoby
 
On Readability of Code
On Readability of CodeOn Readability of Code
On Readability of CodeArun Saha
 
Rhok 101 for change makers - with an agile flavour
Rhok 101 for change makers - with an agile flavourRhok 101 for change makers - with an agile flavour
Rhok 101 for change makers - with an agile flavourCaoilte Dunne
 
Design Process | Tool 02: Scenario - Tool 03: Wireframe
Design Process | Tool 02: Scenario - Tool 03: WireframeDesign Process | Tool 02: Scenario - Tool 03: Wireframe
Design Process | Tool 02: Scenario - Tool 03: WireframeGessica Puri
 
Documentation for developers
Documentation for developersDocumentation for developers
Documentation for developersMichael Marotta
 
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...Abdelkrim Boujraf
 
Designing with content-first
Designing with content-firstDesigning with content-first
Designing with content-firstAndy Parker
 
Session on mockups
Session on mockupsSession on mockups
Session on mockupsAbdul Dibosh
 
7 crazy tips that will help you
7 crazy tips that will help you7 crazy tips that will help you
7 crazy tips that will help youJessica Wilson
 
UX Fluency for a better Front End
UX Fluency for a better Front End  UX Fluency for a better Front End
UX Fluency for a better Front End Monika Piotrowicz
 
Working together
Working togetherWorking together
Working togetherhimaye
 
Most valuable software design principles
Most valuable software design principlesMost valuable software design principles
Most valuable software design principlesJeroen Hildering
 

Similaire à On Selecting JavaScript Frameworks (Women Who Code 10/15) (20)

Recipe of a rockstar developer
Recipe of a rockstar developerRecipe of a rockstar developer
Recipe of a rockstar developer
 
Frame or not to Frame
Frame or not to FrameFrame or not to Frame
Frame or not to Frame
 
Software Development Life CyclesPresented byBrenda Reynold.docx
Software Development Life CyclesPresented byBrenda Reynold.docxSoftware Development Life CyclesPresented byBrenda Reynold.docx
Software Development Life CyclesPresented byBrenda Reynold.docx
 
Upwork time log and difficulty 20160523
Upwork time log and difficulty 20160523Upwork time log and difficulty 20160523
Upwork time log and difficulty 20160523
 
Planning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teamsPlanning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teams
 
Cinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patternsCinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patterns
 
Why Design Patterns Are Important In Software Engineering
Why Design Patterns Are Important In Software EngineeringWhy Design Patterns Are Important In Software Engineering
Why Design Patterns Are Important In Software Engineering
 
Industry stories on agile, scrum and kanban
Industry stories on agile, scrum and kanbanIndustry stories on agile, scrum and kanban
Industry stories on agile, scrum and kanban
 
Untangling spring week8
Untangling spring week8Untangling spring week8
Untangling spring week8
 
On Readability of Code
On Readability of CodeOn Readability of Code
On Readability of Code
 
Rhok 101 for change makers - with an agile flavour
Rhok 101 for change makers - with an agile flavourRhok 101 for change makers - with an agile flavour
Rhok 101 for change makers - with an agile flavour
 
Design Process | Tool 02: Scenario - Tool 03: Wireframe
Design Process | Tool 02: Scenario - Tool 03: WireframeDesign Process | Tool 02: Scenario - Tool 03: Wireframe
Design Process | Tool 02: Scenario - Tool 03: Wireframe
 
Documentation for developers
Documentation for developersDocumentation for developers
Documentation for developers
 
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
 
Designing with content-first
Designing with content-firstDesigning with content-first
Designing with content-first
 
Session on mockups
Session on mockupsSession on mockups
Session on mockups
 
7 crazy tips that will help you
7 crazy tips that will help you7 crazy tips that will help you
7 crazy tips that will help you
 
UX Fluency for a better Front End
UX Fluency for a better Front End  UX Fluency for a better Front End
UX Fluency for a better Front End
 
Working together
Working togetherWorking together
Working together
 
Most valuable software design principles
Most valuable software design principlesMost valuable software design principles
Most valuable software design principles
 

Dernier

Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).pptssuser5c9d4b1
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performancesivaprakash250
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)Suman Mia
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduitsrknatarajan
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingrknatarajan
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college projectTonystark477637
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 

Dernier (20)

Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 

On Selecting JavaScript Frameworks (Women Who Code 10/15)

  • 3. I'VE DONE THIS A BIT BEFORE. ◇ I'm a web developer with a fair bit of front-end experience. ◇ My last two jobs both involved some degree of picking a JavaScript framework. ◇ In fact, I've only had one job where it didn't come up. ◇ Not to mention personal projects. ◇ It's getting kinda old, honestly.
  • 4. So, if we're going to pick a JavaScript framework, we should look at our options, right?
  • 5.
  • 7. BY THE WAY... These were all active within the last two weeks, when I made this presentation (Oct. 7). Some are hobbyists, some are big companies, but all are active projects. You could maybe double this with "slow" projects (updates in the last 6 months).
  • 9.
  • 11. EXCEPT... Those lines are blurry. An MVC framework can use components to drive its structure. A component-driven architecture may or may not be modular. There's overlap. It's not clear-cut.
  • 12. So, how do you pick the right JavaScript framework out of all that ambiguity?
  • 14.
  • 15.
  • 16. Choosing a framework shouldn't be the first thing you do on a project, but the last. Before writing code, of course.
  • 18. CODE SCHOOLS ◇ Code schools, and many college CS programs, advertise that they'll teach you how to code. ◇ Broader PR language talks about how everyone should learn to code. ◇ That's all true. And that's all useful. ◇ But coding is not making software.
  • 19. Learning to write code, but not learning to make software, causes problems.
  • 20. CS VERSUS SE Software is more than the code you write. It's all of the context that goes into it. Writing code is a vital step in implementing software, but so is the process of finding that context. Too often, that process is skipped over by programmers who just want to code.
  • 22. Selecting a JavaScript framework is a software engineering challenge, not a coding challenge.
  • 23. THE PROCESS Sorry, but this is a software engineering talk in disguise. But if you ask the right questions, you'll end up understanding the project and its context so well that picking a framework takes hardly any effort. So let's ask those questions.
  • 25. WHY?
  • 26. WHY? Why does the problem you're trying to solve exist? Was performance never considered? Is the code poorly built? Are you just goofing around and learning? There's no wrong answer, besides having no answer.
  • 27. WHY? Sometimes, you'll get requirements that propose a solution to what they describe. Asking "why?" offers a gut-check, to make sure that solution really is the best one. Also consider why a framework you're evaluating exists. What problems are its authors trying to solve? Do they know?
  • 28. The context of the problem matters more than the problem itself.
  • 29. WHAT?
  • 30. WHAT? Working out why the problem exists helps to define what the problem really is. That helps define the features and capabilities that are going to be necessary. Those become your priority.
  • 31. WHAT? Some tools and frameworks do certain features really well, and really easily. But other features may take some work. Don't discard a framework just because it doesn't have exactly what you want. You can build it. Or it may have something different that achieves the goal instead.
  • 32. Any feature is possible, but with the wrong tools some will be difficult.
  • 33. WHO?
  • 34. WHO? You go to war with the army you have. You, your customer, your users, your teammates, your company… Everyone brings perspectives. Expectations. Skills. Experiences. Ideas. Politics.
  • 35. WHO? If your boss says "we're using this framework", and it's not the best one, you either have to fight or concede. If your team already knows a framework that's not empirically the best, but is still kinda close, that may be your wisest pick. Merit rarely wins. Account for this.
  • 36. The people on a project ultimately determine what's practical.
  • 37. HOW?
  • 38. HOW? Every framework has a philosophy behind it. Based on the context you've gathered, you'll have a philosophy on how the project should be done. Now you're just looking for a match. You'll make better code that way.
  • 39. HOW? Beyond a certain level of competence- based best practices, it's not worth worrying about how pundits write their code. If you don't like a popular approach, don't use it. If you do like it, use it. You're the one writing the code, after all.
  • 40. Pick the tools that encourage the kind of code you can enjoy.
  • 42. REPEAT You'll hopefully only choose a framework once, but you should be asking those questions routinely. Every quarter, or at the beginning of every sprint, whatever pace helps keep you confident you're on the right track and making the right software.
  • 43. REPEAT But now, the hard work is done! All you have to do is implement the ideas you decided on. But since you did all that work, the programming will be easier. You've made the software, you just need to write the code that powers it.
  • 45. LAST THOUGHTS I always like to end on some little summarizing thoughts. Some oblique strategies for software engineering, if you will. And I will.
  • 47. When faced with a problem, ask why the problem exists before jumping to solve it.
  • 48. Pick the boring option
  • 49. Practicality is a valid argument. When working with many others, a less interesting option may be the best.
  • 51. Software has a personality. It's more than just code, it's all the decisions and context that went into it. Understand those, understand software.
  • 52. Also: Software has a life. It will grow up. It will grow old. You can give it the best chance of success, but ultimately, it's out of your hands. Accept this. Embrace this.
  • 53. TWEET AT ME: @HUPFEN YELL AT ME: ZOE@HUPFEN.COM Presentation template by SlidesCarnival Photographs by Death to the Stock Photo