Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Building your Webapp Muscles with Lift
Search
Matt Farmer
May 06, 2015
Programming
68
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
More Decks by Matt Farmer
See All by Matt Farmer
Testing at Stream Scale
farmdawgnation
0
260
The Case for the Cutting-Edge
farmdawgnation
0
230
Other Decks in Programming
See All in Programming
「人を評価する AI」の設計と実装
ryoyanara
0
200
What's New in Android 2026
veronikapj
0
260
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
190
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
580
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
290
AIを紡ぐPMのお話
swdtkuy
0
110
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
470
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
120
170k Jobs a Day on GKE: Scaling Mercari's CI Platform - and What's Next for AI-Native Development
junyaokabe
0
110
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
180
実装をデザインガイドラインに追従させるための取り組み / 260731-dip-mosh-design-system
dachi023
0
450
リアルな遅延を測る仕様
kota_yata
1
110
Featured
See All Featured
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
290
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
330
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
490
Into the Great Unknown - MozCon
thekraken
41
2.7k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
Writing Fast Ruby
sferik
630
63k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
240
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
470
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
230
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
570
Transcript
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