Choosing your PEARL in JOCEAN

16
Choosing your PEARL in JOCEAN Prakash J http ://devmanagement.wordpress.com

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 of Choosing your PEARL in JOCEAN

Page 1: Choosing your PEARL in JOCEAN

Choosing your PEARL in JOCEAN

Prakash Jhttp://devmanagement.wordpress.com

Page 2: Choosing your PEARL in JOCEAN

StoryLegal Case Management Application

Page 3: Choosing your PEARL in JOCEAN

Choose Technology Stack

Show Case a working app

Get Approvals and Move forward

Page 4: Choosing your PEARL in JOCEAN

Choosing Technology FrameworkTech Stack

Frameworks

Full Stack

Monoliths

MeteorFlatIron

Modular

DOJO

Non Full Stack Frameworks

Macro

Monoliths

JQuery

Modular

Micro

Page 5: Choosing your PEARL in JOCEAN

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

Page 6: Choosing your PEARL in JOCEAN

Structure the Code

Templates to Render

Views

Routing & History

Bind Data

Bare Minimum Required Categories

Communicate with the Server to fetch and update data

Page 7: Choosing your PEARL in JOCEAN

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

Page 8: Choosing your PEARL in JOCEAN

Sepa

ratio

n of

Co

ncer

ns MVC

Backbone, Spine, Angular, Ember

MVVMKnockout Unit Tests

Structuring Code – Separation of Concerns

Page 9: Choosing your PEARL in JOCEAN

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?

Page 10: Choosing your PEARL in JOCEAN

Data BindingClient

Type of Application

Input Intensive

Mostly Read

1 way or 2 way Binding

Developer Skills

Server

RESTful

DDP

Page 11: Choosing your PEARL in JOCEAN

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

Page 12: Choosing your PEARL in JOCEAN

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?

Page 13: Choosing your PEARL in JOCEAN

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?

Page 14: Choosing your PEARL in JOCEAN

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?

Page 15: Choosing your PEARL in JOCEAN

Summary