SlideShare a Scribd company logo
April 23th, 2016
R. Jardim Botânico 518 2º andar Rio de Janeiro/ 55 21 35540 3540 / hugeinc.com
Client-side
Development 2016
Huge Brazil
April 23th, 2016
1. Background
2. One sentence 3. Premises

4. Concepts 5.APIs 6. Frameworks

7. Conclusions
Agenda
Background.
Computers are there to satisfy

our needs and automate tasks.

The way we humans interact

with any system that automates
tasks (not just computers, think of
cars, for example) happens

through an interface.
Before the internet became how

we know it, this interface was
stablished by a software installed

on your operating system.

With the evolution of the web

and the practicality of it, many have
tried to bring all the power of
computer systems to the web,
through interfaces in the browser.
Client-side Development 2016
Client-side === SPA.
Or UniversalJS.
If you don’t need any

combination of:
AJAX, Binding, 

Interactivity and Input/Output.



You don’t need a SPA.
To not be a SPA is also Front-End,

with its own challenges such as

files/folders architecture, CSS
organization, smart templates, etc.
Going back to

Single Page Applications…
Technology x Tool.
Technology Tool
Javascript Angular
Node.JS Express
PHP Symphony
Python Flask
Client-side Development 2016
medium.com/@caiovaccaro
One sentence.
Client-side Development 2016
Client-side Development 2016
Client-side Development 2016
Client-side Development 2016
I want do develop applications
without worrying too much about
learning something beyond
technology,with reusable parts,
that is easy to maintain and

brings a good user experience.
Premises.
Not necessary to learn

something too complex or specific.
Reusable and modular parts.
Without too much

need of refactoring.
Brings a good user experience
(fast, transitions, feedback,
easy to use).
Premises.

1. Not necessary to learn something

too complex or specific.

2. Reusable and modular parts.

3. Without too much need of refactoring.

4. Brings a good user experience

(fast, transitions, feedback, easy to use).
Challenges of 2016*.
Premises.
Data synchronization between
server and client/cache.
Performance.
Easy to develop/maintain.
Concurrency and Parallelism.
Offline.
Challenges.

1. Synchronize data between client and
server/cache.

2. Performance.

3. Easy to develop/maintain.

4. Concurrency and Parallelism.

5. Offline.
Time.
Premises.
Time.

1. Short term.

2. Long term.
Not necessary to
learn something too
complex
Modular and
reusable parts
Without too much
need of refactoring
Good user
experience (fast,
transitions,
feedback, easy to
use)
Easy to develop/
maintain.
Easy to develop/
maintain.
Synchronize data
between client and
server/cache.
Offline.
Easy to develop/
maintain.
Concurrency and
Parallelism.
Performance.
Synchronize data
between client and
server/cache.
Short term Long term
Good user experience (fast,
transitions, feedback, easy to use).
Good user experience (fast,
transitions, feedback, easy to use).
Not necessary to learn something

too complex.
Without too much need of refactoring.
Modular and reusable parts.
I want do develop applications
without worrying too much about
learning something beyond
technology,with reusable parts,
that is easy to maintain and

brings a good user experience.
Client-side Development 2016
We have to choose between.

1. Programming concepts.

2. API formats.

3. Front-End Frameworks.
Concepts.
You have seen around.

1. State.

2. Stateless.

3. Imperative.

4. Functional.

5. Passive.

6. Reactive.
Imperative.

1. Stateful.

2. Passive.
Functional.

1. Stateless.

2. Reactive.
State.
Concepts.
You are happy now,
this is your state.



State is a memory snapshot

of a program’s part, at some

point in time.
Imperative.
Concepts.
This is the bossy style.



I know who you are, I want you

to do something for me. I change
your state and I know that.
Client-side Development 2016
Passive.
Concepts.
The same thing, but from the point
of view of who receive orders.

He is passive of receiving orders
and it is exposed to others.
Client-side Development 2016
Client-side Development 2016
Reactive.
Concepts.
The opposite of imperative and
passive, goes together

with functional.
He explicitly says that it will react
when something

happens on others.
No one gives him direct orders, he
owns and controls himself.
Client-side Development 2016
Client-side Development 2016
Functional.
Concepts.
The mathematic style.



I define predictable functions,

that just changes state from their
own scope and never cause side
effects (never change state out of
themselves).
Client-side Development 2016
Client-side Development 2016
Stateless.
Concepts.
Also goes with functional. 



Says that the best way to avoid
side effects is to not hold state,

only transform and return.
Client-side Development 2016
reactivex.io/learnrx
Imperative.

1. Stateful.

2. Passive.
Functional.

1. Stateless.

2. Reactive.
Comparisons.
Concepts.
Client-side Development 2016
Client-side Development 2016
Client-side Development 2016
APIs.
APIs.

1. RPC.

2. REST.

3. GRAPH.
RPC.
APIs.
example.com/list/?rowOffset=0&rowSize=5
Allows more than one

resource or entity per call.
RPC.

1. Bad for caching.

2. Coupled.

3. One call per view.
4. Small responses.
REST.
APIs.
example.com/list/1234
example.com/user/3
Each endpoint === one entity.
REST.

1. Good for cache.

2. Decoupled.

3. Lots of calls per view.
4. Big responses.
GRAPH.
APIs.
Client-side Development 2016
Client-side Development 2016
Client-side Development 2016
Client-side Development 2016
Dude.. just think

about a 360 degree’s JSON.
Take a look afterwards.

1. Netflix Falcor.

2. Facebook Relay/GraphQL.
Comparisons.
APIs.
Client-side Development 2016
Client-side Development 2016
Client-side Development 2016
What about REST?
Frameworks.
Client-side Development 2016
Client-side Development 2016
Client-side Development 2016
Client-side Development 2016
Frameworks.

1. MV* (Angular 1.x, Ember...).

2. Flux + Components (React,Vue.js…).

3. Web Components (Polymer...).

4. Functional/Reactive (Cycle, Bacon…).
medium.com/@caiovaccaro
Client-side Development 2016
Client-side Development 2016
Client-side Development 2016
Client-side Development 2016
Conclusions.
Client-side Development 2016
zhou-yi.herokuapp.com
Client-side Development 2016
Client-side Development 2016
Client-side Development 2016
Client-side Development 2016
github.com/caiovaccaro/zhou-yi
Easy to develop + Short term +
Not having to learn something too specific?
Imperative + RPC + Flux/Components.
Data synchronization + Performance +

Long term + Reusable parts?
Functional + GRAPH +

Flux/Components or Functional/Reactive.
Ok cool.. so I need to know how to
choose between all those stuff then.
Client-side Development 2016
Can our application be

framework independent?
Lunar.
Conclusions.
Client-side Development 2016
Separate framework-code
from application-code.
Leave your business logic
independent of tools.
github.com/hugeinc/lunar
We do need abstraction
layers, but we always need
to know where technology
is and the role of each tool.
You can help.
Conclusions.
You can help.

1. Parallelism solutions.

2. Propose ways of offline working.

3. How to change between frameworks.

4. Make client data model easier.

5. Find a better way to use APIs and SPAs.
Questions?
April 23th, 2016.
R. Jardim Botânico 518 2º andar Rio de Janeiro/ 55 21 35540 3540 / hugeinc.com

More Related Content

KEY
YOOX Launch & Learn - Javascript as a programming language
PDF
JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...
PDF
What is FED
KEY
jsDay - Javascript as a programming language
PDF
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
PDF
Letter to a Junior Developer: The Engineering Side of Programming
PDF
Why every startup built with Ruby on Rails has an upper hand over their compe...
PDF
Engineering culture
YOOX Launch & Learn - Javascript as a programming language
JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...
What is FED
jsDay - Javascript as a programming language
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
Letter to a Junior Developer: The Engineering Side of Programming
Why every startup built with Ruby on Rails has an upper hand over their compe...
Engineering culture

What's hot (20)

PDF
React native sharing
PDF
Managing and evolving JavaScript Code
PDF
Spring Boot Interview Questions | Edureka
PDF
Why do you say BDD if it is Cucumber?
PDF
Introduction to Web Development with Ruby on Rails
PDF
Best coding practices
PDF
Mobile applications development - why should you start learning it right now?
DOCX
Java articles
PDF
Solving Cross-Cutting Concerns in PHP - DutchPHP Conference 2016
PPTX
Integration of automation framework with ci tools
PDF
Irresponsible Disclosure: Short Handbook of an Ethical Developer
PPTX
Three Developer Behaviors to Eliminate 85 Percent of Accessibility Defects
PDF
Javascript Clean Code
PDF
JBoss Forge - Breaking new ground in developer productivity
PPTX
Resful Trinity Code One - San Francisco
PDF
Jr devsurvivalguide
PDF
React native - What, Why, How?
PPSX
Getting Started with PhoneGap Windows Phone 7
PDF
Developer Productivity with Forge, Java EE 6 and Arquillian
PPTX
Writing code samples for API/SDK documentation
React native sharing
Managing and evolving JavaScript Code
Spring Boot Interview Questions | Edureka
Why do you say BDD if it is Cucumber?
Introduction to Web Development with Ruby on Rails
Best coding practices
Mobile applications development - why should you start learning it right now?
Java articles
Solving Cross-Cutting Concerns in PHP - DutchPHP Conference 2016
Integration of automation framework with ci tools
Irresponsible Disclosure: Short Handbook of an Ethical Developer
Three Developer Behaviors to Eliminate 85 Percent of Accessibility Defects
Javascript Clean Code
JBoss Forge - Breaking new ground in developer productivity
Resful Trinity Code One - San Francisco
Jr devsurvivalguide
React native - What, Why, How?
Getting Started with PhoneGap Windows Phone 7
Developer Productivity with Forge, Java EE 6 and Arquillian
Writing code samples for API/SDK documentation
Ad

Viewers also liked (19)

PDF
With Users Like These Who Needs Enemies?
PDF
What Digital Orgs Can Learn from Software Design
PDF
Forget channels: Context is King (IA Summit)
PDF
Content Strategy in a Changing World
PDF
Percolate: Content Marketing 360: From Planning to Performance
PDF
The Augmented Future: Entertainment & Utility
PDF
Desenvolvimento Client-Side 2016
PDF
Desenvolvimento Orientado a Qualidade
PDF
Intro to the LA Design Community Resources
PPTX
Huge Inc.
PDF
Thanks.
PDF
RobotUX: A Framework for Human-Robot Interactions
PDF
Desenvolvimento Client-Side 2016 (BrazilJS)
PPTX
HUGE and Digital Strategy
PDF
Digital Strategy with Huge's Eduardo Torres
PDF
How Corporate Personhood Might Just Save the World
PDF
A importância da UX para o consumo de conteúdo digital
PDF
Intro to the SF Design Community Resources
PPTX
Social e conteúdo preditivo: como antever reações de usuários e diminuir risc...
With Users Like These Who Needs Enemies?
What Digital Orgs Can Learn from Software Design
Forget channels: Context is King (IA Summit)
Content Strategy in a Changing World
Percolate: Content Marketing 360: From Planning to Performance
The Augmented Future: Entertainment & Utility
Desenvolvimento Client-Side 2016
Desenvolvimento Orientado a Qualidade
Intro to the LA Design Community Resources
Huge Inc.
Thanks.
RobotUX: A Framework for Human-Robot Interactions
Desenvolvimento Client-Side 2016 (BrazilJS)
HUGE and Digital Strategy
Digital Strategy with Huge's Eduardo Torres
How Corporate Personhood Might Just Save the World
A importância da UX para o consumo de conteúdo digital
Intro to the SF Design Community Resources
Social e conteúdo preditivo: como antever reações de usuários e diminuir risc...
Ad

Similar to Client-side Development 2016 (20)

PDF
Reactive All the Way Down the Stack
PDF
WebCamp: Developer Day: Архитектура Web-приложений: обзор современных решений...
PDF
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
PDF
Be My API How to Implement an API Strategy Everyone will Love
PDF
Web architecture - overview of techniques.
PDF
Reactive Java Robotics and IoT 2016
PDF
Embrace the front-end revolution - Sánchez-Mariscal
PDF
Embrace the frontend revolution
PDF
Intro to Reactive Programming
PDF
Hpc lunch and learn
PDF
Intro To Reactive Programming
PDF
Architecturing the software stack at a small business
PDF
Past, Present and Future of APIs of Mobile and Web Apps
PPT
APITalkMeetupSharable
PPT
Introduction to JavaScript Full Stack
PDF
Donald Ferguson - Old Programmers Can Learn New Tricks
KEY
How to do Scalable UI-Heavy Development at a Breakneck Pace
PDF
IRJET- Rest API for E-Commerce Site
PPTX
Magento Developer Talk. Microservice Architecture and Actor Model
PDF
Spring Boot
Reactive All the Way Down the Stack
WebCamp: Developer Day: Архитектура Web-приложений: обзор современных решений...
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Be My API How to Implement an API Strategy Everyone will Love
Web architecture - overview of techniques.
Reactive Java Robotics and IoT 2016
Embrace the front-end revolution - Sánchez-Mariscal
Embrace the frontend revolution
Intro to Reactive Programming
Hpc lunch and learn
Intro To Reactive Programming
Architecturing the software stack at a small business
Past, Present and Future of APIs of Mobile and Web Apps
APITalkMeetupSharable
Introduction to JavaScript Full Stack
Donald Ferguson - Old Programmers Can Learn New Tricks
How to do Scalable UI-Heavy Development at a Breakneck Pace
IRJET- Rest API for E-Commerce Site
Magento Developer Talk. Microservice Architecture and Actor Model
Spring Boot

More from Huge (18)

PDF
The Practitioner's Guide to Digital Transformation
PDF
Humans: The Next Interface
PDF
What is new on ES6
PDF
All You Need Is TDD (Português)
PDF
Javascript State of the Union 2015 - English
PDF
Javascript State of the Union 2015
PDF
What is Digital Life Worth?
PDF
The New Creative Partners: Brand Planning Meets UX
PDF
Intro to the LA Design Community Resources
PDF
Intro to the LA Design Community
PPTX
DataWeek: Oh no, I'm running a data-driven cult!
PDF
What Matters Now: Education
PDF
Brands as Publishers.
PPTX
Smart Cities: How Smart is Too Smart?
PDF
What Matters Now: Retail
PDF
Future-Proofing the Web: Choosing the Optimal Mobile Design Strategy
PDF
UX Portfolio Tips
PDF
The Pitfalls of Process
The Practitioner's Guide to Digital Transformation
Humans: The Next Interface
What is new on ES6
All You Need Is TDD (Português)
Javascript State of the Union 2015 - English
Javascript State of the Union 2015
What is Digital Life Worth?
The New Creative Partners: Brand Planning Meets UX
Intro to the LA Design Community Resources
Intro to the LA Design Community
DataWeek: Oh no, I'm running a data-driven cult!
What Matters Now: Education
Brands as Publishers.
Smart Cities: How Smart is Too Smart?
What Matters Now: Retail
Future-Proofing the Web: Choosing the Optimal Mobile Design Strategy
UX Portfolio Tips
The Pitfalls of Process

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPT
Teaching material agriculture food technology
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Mushroom cultivation and it's methods.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Spectroscopy.pptx food analysis technology
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
Getting Started with Data Integration: FME Form 101
PDF
August Patch Tuesday
PPTX
cloud_computing_Infrastucture_as_cloud_p
Per capita expenditure prediction using model stacking based on satellite ima...
Advanced methodologies resolving dimensionality complications for autism neur...
Diabetes mellitus diagnosis method based random forest with bat algorithm
Teaching material agriculture food technology
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Mushroom cultivation and it's methods.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Spectral efficient network and resource selection model in 5G networks
Reach Out and Touch Someone: Haptics and Empathic Computing
Encapsulation_ Review paper, used for researhc scholars
MIND Revenue Release Quarter 2 2025 Press Release
NewMind AI Weekly Chronicles - August'25-Week II
Empathic Computing: Creating Shared Understanding
Spectroscopy.pptx food analysis technology
Heart disease approach using modified random forest and particle swarm optimi...
Getting Started with Data Integration: FME Form 101
August Patch Tuesday
cloud_computing_Infrastucture_as_cloud_p

Client-side Development 2016