During the talk, I've explained the difference between different approaches in contemporary JavaScript Front-End development as well as browser behavior itself. It causes different approaches of software development and makes JavaScript so "different" for newcomers. My presentation made to help back-end developers to understand what is
8. Why didn’t JS Evolve Earlier?
• Limited browser API’s
• Lack of protocols for client-server communication
• Slow and expensive internet connection
18 May 2017 8
10. User gets page
User performs action
(clicks link, submits
form, etc)
Browser sends
request to server
Server handles
request and
generates new page
Browser loads new
page
18 May 2017 10
SERVER-SIDE
RENDERING
11. User gets page
User performs action
(clicks link, submits
form, etc)
Browser sends
request to server
Server handles
request and
generates new page
Browser loads new
page
18 May 2017 11
SERVER-SIDE
RENDERING
15. Game Changer: 3G, Smartphones
• iOS
• Android
• Windows Phone
18 May 2017 15
16. Client-side Rendering
• One common way to interact with a server for different
platforms.
• Performance expenses moved to client’s device.
• Separated delivery process.
18 May 2017 16
18. Front-End Frameworks
• Huge amount of code which developers must support
• Spaghetti out of callbacks and events
• High coupling
• Awful encapsulation
18 May 2017 18
43. MVVM (Model View ViewModel)
View ViewModel Model
18 May 2017 43
Data Binding
Write
Read
44. Why MVVM?
• Fast interaction with representation layer
• Is suitable for events-oriented environment
• Close enough to classical MVC
18 May 2017 44
64. Shortly
• State tree instead of multiple states
• Pure function as reducers
• Time Travel
• Redux has no dispatcher entity, its store exposes API to
dispatch actions
• The most logical are in reducers
18 May 2017 64
65. What Does React Components Look
Like
18 May 2017 65
HTTPS://GITHUB.COM/Q
UANGBUULE/REDUX-
EXAMPLE
67. Immutability
• No function should change anything outside it.
• Every function should return a new value.
• Function shouldn’t modify it’s arguments.
18 May 2017 67