Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Building your Webapp Muscles with Lift
Search
Matt Farmer
May 06, 2015
Programming
76
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Building your Webapp Muscles with Lift
Matt Farmer
May 06, 2015
Transcript
52 slides
Building your Web Application Muscles with Lift Matt Farmer May
6th, 2015
Sorry, I was sick.
Tonight’s Demonstration • A site for submitting and voting on
puns. • URL: http://punerator.frmr.me • Source: https://github.com/farmdawgnation/punerator
Lift is a bit different.
The Seven Things 1. Lazy Loading 2. Parallel Page Rendering
3. Comet and AJAX 4. Wiring 5. Designer-friendly Templates 6. Wizard 7. Security
The Seven Things 1. Lazy Loading 2. Parallel Page Rendering
3. Comet and AJAX 4. Wiring 5. Designer-friendly Templates 6. Wizard 7. Security
Designer-friendly Templates
None
Lift is not an MVC framework.
Lift is not an MVC framework. No, I’m not insane.
Lift is not an MVC framework. No, I’m not insane.
Well, maybe a little but not completely.
View First
MVC vs. View First
MVC vs. View First Typical MVC Framework User Framework Controller
View
MVC vs. View First Typical MVC Framework User Framework Controller
View Lift User Framework View Snippet Snippet Snippet
View First Snippet (NodeSeq) => NodeSeq
View First Snippet (NodeSeq) => NodeSeq CSS Transforms
View First Snippet (NodeSeq) => NodeSeq CSS Transforms
View First Snippet (NodeSeq) => NodeSeq CSS Transforms
View First Snippet (NodeSeq) => NodeSeq CSS Transforms Magic
View First Snippet (NodeSeq) => NodeSeq CSS Transforms Magic DSL
(Domain Specific Language)
View First Snippet (NodeSeq) => NodeSeq CSS Transforms Magic DSL
(Domain Specific Language) “.date *” #> invoice.date
View First Snippet (NodeSeq) => NodeSeq CSS Transforms Magic DSL
(Domain Specific Language) “.date *” #> invoice.date CSS Selector
View First Snippet (NodeSeq) => NodeSeq CSS Transforms Magic DSL
(Domain Specific Language) “.date *” #> invoice.date CSS Selector Content
View first
View first • Lift templates are just HTML.
View first • Lift templates are just HTML. • Lift
finds things to change using CSS selectors.
View first • Lift templates are just HTML. • Lift
finds things to change using CSS selectors. • Any designer who understands HTML and CSS can make changes relatively safely.
Let’s see some code.
None
Push to the Browser
COMETS!
Why not WebSockets? https://groups.google.com/d/msg/liftweb/ 1fa3rolbnvI/enV5CFm2Rd4J
Push to the Browser
Push to the Browser • What if we could represent
the page a user’s browser is viewing as an actor?
Push to the Browser • What if we could represent
the page a user’s browser is viewing as an actor? CometActor
Actors, but for pages Browser CometActor
Actors, but for pages Browser CometActor
Actors, but for pages Browser CometActor Render HTML.
Actors, but for pages Browser CometActor Render HTML. Push JavaScript.
Actors, but for pages Browser CometActor Render HTML. Push JavaScript.
Session
Actors, but for pages Browser CometActor Render HTML. Push JavaScript.
Session SessionVar
Actors, but for pages Browser CometActor Render HTML. Push JavaScript.
Session SessionVar LiftActor Snippets
Lift handles the magic
Lift handles the magic • Loading the relevant client side
bits.
Lift handles the magic • Loading the relevant client side
bits. • Detecting when a CometActor isn’t needed.
Lift handles the magic • Loading the relevant client side
bits. • Detecting when a CometActor isn’t needed. • Handling connectivity issues.
Let’s see some code.
None
Further reading • The Lift Website http://liftweb.net • Lift Template
Projects https://github.com/lift/lift_26_sbt • The mailing list http://groups.google.com/group/liftweb • The Seven Things: http://seventhings.liftweb.net • The Lift Cookbook: http://cookbook.liftweb.net
Thank you. @farmdawgnation / farmdawgnation.com
[email protected]
Creative Commons Attributions • “Big Weight” https://www.flickr.com/photos/ennuidesign/ 2715836520 • “Are
your eyeballs running?” https://flic.kr/p/4HbQj2 • “Comet Panstarrs March 2nd 2013” https://flic.kr/p/ dZdD7k
More Decks by Matt Farmer
See All by Matt Farmer
Testing at Stream Scale
farmdawgnation
0
280
The Case for the Cutting-Edge
farmdawgnation
0
240
Other Decks in Programming
See All in Programming
動画プレイヤーはなぜカクつくのか 〜Flutterのレンダリングとネイティブの境界を解剖する〜
naruogram
0
340
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
2.1k
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
320
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.9k
Secure Your Coding Agent Like It’s Malware (v1.5) 🇬🇧 @Code.talks 2026
richargh
0
150
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
350
疎結合とは何か?ソフトウェア設計における結合バランスについて考える #phpcon_niigata
kajitack
0
160
Kawaiicon: Kubernetes, it's no longer cool, but let's secure it anyway!
barnbarn
0
130
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
2.3k
GraphQL の onError と Nullability のこれから
quramy
0
220
protojson における文字化けの扱い
kazuki1023
0
430
AI時代のIaC入門 〜なぜインフラをコードで管理したいのか?〜 / Introduction to IaC in the AI Era
akihisaikeda
6
1.5k
Featured
See All Featured
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
48k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
680
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
620
The Mindset for Success: Future Career Progression
greggifford
PRO
0
560
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.7k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
450
A Tale of Four Properties
chriscoyier
163
24k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
520
The Art of Programming - Codeland 2020
erikaheidi
57
14k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
380