choosing your pearl in jocean
DESCRIPTION
Today we have a plethora of JavaScript frameworks to choose from. Each framework comes with its own advantages and disadvantages. For sure the concept “one size fits all” doesn’t work in this context. Traditionally scripting languages are notorious when it comes to writing modular maintainable applications and end up in a big ball of mud. If the chosen framework doesn’t match the business requirement, the problem of rewriting applications will be on the cards for sure. In this Session, I want to take an example scenario, Look at the various options available and choose the framework which will fit a business Requirement. We will take a look at 1. Full Stack Vs Non Full Stack Frameworks 2. Frameworks Vs Libraries 3. What are the bare minimum categories of these libraries/frameworks required to do a simple application? 4. Take a look at each category and select a framework which supports the business requirement. As always, Technology Selection is always based on the Business context/requirement.TRANSCRIPT
Choosing your PEARL in JOCEAN
Prakash Jhttp://devmanagement.wordpress.com
StoryLegal Case Management Application
Choose Technology Stack
Show Case a working app
Get Approvals and Move forward
Choosing Technology FrameworkTech Stack
Frameworks
Full Stack
Monoliths
MeteorFlatIron
Modular
DOJO
Non Full Stack Frameworks
Macro
Monoliths
JQuery
Modular
Micro
Framework vs. LibraryFramework vs. Library
Framework
Ember, Angular, Meteor, Batman
Enforce Structure and Architecture
New Application
Development
Library
Backbone, Knockout,
Spine, CanJS
Fits inside your Existing Architecture
Introducing Features in a
Phased Manner
Structure the Code
Templates to Render
Views
Routing & History
Bind Data
Bare Minimum Required Categories
Communicate with the Server to fetch and update data
Structuring Code - Modularity
• Divide and Conquer• Goals– Do not pollute the global namespace • To avoid namespace conflicts
– Load modules fast (even out of order)– Execute modules in the right order
• Examples: REQUIREJS, CURLJS
Sepa
ratio
n of
Co
ncer
ns MVC
Backbone, Spine, Angular, Ember
MVVMKnockout Unit Tests
Structuring Code – Separation of Concerns
Template Engine
Templates
DOM Based
Knockout
Declarative Polyfills
String Based
Handlebars, Mustache,
Dust.JS
Logic Less Templates
Supports SEO
Execute in both Server and Client
What happens to my UI Designer?
Data BindingClient
Type of Application
Input Intensive
Mostly Read
1 way or 2 way Binding
Developer Skills
Server
RESTful
DDP
Client Side Architecture Diagram
View
Template EngineTemplat
esTemplat
esTemplat
esTemplates
Templates
Templates
TemplatesRendered
Views
Routing EngineRoute DefinitionsRoute DefinitionsRoute DefinitionsRoute Definitions
Route DefinitionsRoute DefinitionsURLs / User Actions
View Model
Model
Uni
t Te
stsEn
d to
end
Tes
ts
Data-binding
Mod
ule
Libr
ary
Server API
JSON
Knockout
Knockout
Knockout
Sammy
REQUIREJS
JSON over REST
Parameters
• Is it an Enterprise Application or an External Facing application?
• Am I developing something from scratch or trying to use it in an existing application?
• Do I need SEO Support? • Do I have Accessibility requirements?• Do I need to Support Older Browsers?
Parameters
• Is Readability and Maintainability a key aspect?
• Am I going to use JavaScript in the Backend?• What are my requirements on Performance?• Do I need near real time updates in my
Application?
• Do I need an UI Designer to work on my project?
• What are my current developers skillset?
Parameters
•How long is it in the Market?•Documentation and Samples •Is there any Editor support available?
•Can I Debug? •Do I have Community Support?•What are the dependencies?
•How much time does it take to learn?•Will this improve my application performance?•Can I write automated unit tests?
Summary
Useful Pointers Rich JavaScript Applications – the Seven Framewo
rks
Choosing a JavaScript Framework
The Pros And Cons Of JavaScript Micro-Framewor
ks
Large-scale JavaScript Application Architecture
The Top 10 JavaScript MVC Frameworks Reviewed