23
Single Page Web Applications with Scala and Spray

WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

Embed Size (px)

DESCRIPTION

Single Page Web Application with Scala/Spray Slava Schmidt В докладе речь пойдет о достоинствах и недостатках архитектуры Single Page Web Application; введении в Scala; введении в Actors/Akka; введении в Spray. Будет показан процесс разработки демонстрационного приложения.

Citation preview

Page 1: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

Single Page Web Applications

!

with !

Scala and Spray

Page 2: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

SPA HISTORY

Page 3: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

’95 – Applets

Page 4: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

’96 – Flash

Page 5: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

’96 – IFRAME ’99 – XML HTTP AXC ’05 – AJAX ’05 – SPA ’06 – GWT ’07 – SILVERLIGHT

Page 6: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

PROBLEMS

Page 7: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

NAVIGATION

#FRAGMENT ID

Page 8: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

• GOOGLE PROTOCOL ( _escaped_fragment_ )

• USER AGENTS DuckDuckBot/1.1 facebookexternalhit/1.1

SEO

Page 9: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

ANALYTICS

ERROR TRACKING

Page 10: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

BENEFITS

Page 11: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

PERFORMANCE

Page 12: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

SEPARATION OF ROLES

Page 13: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

MAIN CHANGE

Page 14: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

Routing Data Binding Templating Form Handling IoC / DI Async Modularisation Offline Testing MVC / MVVM

Page 15: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

views

servicesservices

databaselegacy

HTTPHTML JSON

controllers

model

domain

Page 16: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt
Page 17: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

A

E

F G H

I J

B

root

DC

/user/A/D/H

Page 18: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

MODULES• PERSISTENCE • CLUSTERING • HTTP • JAVA

Page 19: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt
Page 20: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

COMPONENTSSPRAY-ROUTING

high-level server-side

SPRAY-CLIENT high-level client-side

SPRAY-CAN low-level HTTP

server- and client-side

SPRAY-HTTP !

data model

Page 21: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

API LAYERREST API

Application Logic !!

SOAP APIaction

reply

action

reply

request

response

A

E

FG H

I

JB

/

D

C

K

request

response

Page 22: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

!http://typesafe.com/platform/getstarted

Typesafe Activator

Page 23: WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava Schmidt

@slavaschmidt

[email protected]