client-side development 2016
TRANSCRIPT
Computers are there to satisfyour needs and automate tasks.The way we humans interactwith any system that automates tasks (not just computers, think of cars, for example) happensthrough an interface.
Before the internet became howwe know it, this interface was stablished by a software installedon your operating system.With the evolution of the weband the practicality of it, many have tried to bring all the power of computer systems to the web, through interfaces in the browser.
If you don’t need anycombination 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 asfiles/folders architecture, CSS
organization, smart templates, etc.
I want do develop applications without worrying too much about learning something beyond technology, with reusable parts, that is easy to maintain andbrings a good user experience.
Premises.1. Not necessary to learn somethingtoo 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. 1. Synchronize data between client and
server/cache.2. Performance.3. Easy to develop/maintain.4. Concurrency and Parallelism.5. Offline.
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 somethingtoo 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 andbrings a good user experience.
You are happy now, this is your state.
State is a memory snapshotof a program’s part, at some
point in time.
This is the bossy style.
I know who you are, I want youto do something for me. I change
your state and I know that.
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.
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.
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).
Also goes with functional.
Says that the best way to avoid side effects is to not hold state,
only transform and return.
Frameworks. 1. MV* (Angular 1.x, Ember...).2. Flux + Components (React, Vue.js…).3. Web Components (Polymer...).4. Functional/Reactive (Cycle, Bacon…).
We do need abstraction layers, but we always need to know where technology is and the role of each tool.
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.