The document discusses client-side development concepts for 2016. It covers background on how user interfaces have evolved to the web. Key concepts discussed include state, imperative vs functional programming, and reactive programming. API styles like RPC, REST, and GraphQL are compared. Popular frontend frameworks like Angular, React, and Vue are also mentioned. The document concludes that choices should consider whether the project requires learning something new or not, reusability, and handling data synchronization and performance over the short and long term. It suggests that separating application code from framework code can help ensure independence.
5. 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.
6. 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.
22. 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.
27. Brings a good user experience
(fast, transitions, feedback,
easy to use).
28. 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).
35. Challenges.
1. Synchronize data between client and
server/cache.
2. Performance.
3. Easy to develop/maintain.
4. Concurrency and Parallelism.
5. Offline.
38. 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.
39. 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.
40. 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.
41.
42. We have to choose between.
1. Programming concepts.
2. API formats.
3. Front-End Frameworks.
57. 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.
61. 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).
129. 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.