How Phoenix LiveView Optimizes Real-Time Web Apps with Streams • Sophie DeBenedetto • GOTO 2023
About this talk
This presentation was recorded at GOTO Copenhagen 2023. #GOTOcon #GOTOcph https://gotocph.com Sophie DeBenedetto - Staff Software Engineer at GitHub @sophiedebenedetto8568 ORIGINAL TALK TITLE LiveView Handles the Hard Parts: How LiveView Optimizes Real-Time Web Apps with Streams RESOURCES http://sophiedebenedetto.nyc https://twitter.com/sm_debenedetto https://linkedin.com/in/sophiedebenedetto https://github.com/SophieDeBenedetto ABSTRACT LiveView is a declarative framework for real-time web development. In this talk, you’ll learn how the LiveView streams API makes for highly optimized client-server communication and develop an appreciation for LiveView’s approach to handling the tedious and difficult details of the real-time web, freeing you up to focus on the fun stuff. You’ll get a taste for LiveView programming that will leave you ready to dive deeper on your own. LiveView is the web development framework of choice for BEAM users because it leverages the power of The BEAM to allow developers to build lightning fast, real-time web apps quickly and with ease. This is because LiveView handles the difficult and tedious details of WebSocket-based client/server communication, of OTP process management, and even of JavaScript integration and execution, leaving you to focus on building the unique logic and functionality of your web page. Like any true declarative framework, you never have to tell LiveView how to do something. You only need to tell it what to do. One of the best examples of this approach is LiveView’s stream functionality, which allows you to manage large datasets on the client-side–without writing any client-side code yourself. In this talk, I’ll show you how to use the LiveView streams API, a server-side API, to build highly efficient single-page web apps. We’ll take a look under the hood to understand how LiveView handles the “hard parts” of this kind of optimization. When we’re done, you’ll have an appreciation for the LiveView framework’s declarative approach to web development, and you’ll be prepared to continue to get your hands dirty with LiveView web development. [...] TIMECODES 00:00 Intro 01:36 Agenda 02:24 What is LiveView? 04:05 The LiveView life-cycle 07:57 The problem 10:23 The solution 11:07 How to work with streams 14:53 How streams work under the hood 22:40 Streams & DOM IDs 24:31 Recap 30:39 One more thing... 34:00 Wrap-up 34:56 Outro Download slides and read the full abstract here: https://gotocph.com/2023/sessions/2855 RECOMMENDED BOOKS Sophie DeBenedetto & Bruce Tate • Programming Phoenix LiveView • https://pragprog.com/titles/liveview/programming-phoenix-liveview Sean Moriarity • Genetic Algorithms in Elixir • https://amzn.to/3PdlmZu Sean Moriarity • Machine Learning in Elixir • https://pragprog.com/titles/smelixir Bruce Tate • Programmer Passport: Elixir • https://amzn.to/48cTxJg Bruce Tate • Programmer Passport: Prolog • https://amzn.to/3PD6dCc Bruce Tate, Ian Dees, Frederic Daoud & Jack Moffitt • Seven More Languages in Seven Weeks • https://amzn.to/48bzuuV Bruce Tate • Seven Languages in Seven Weeks • https://amzn.to/3Lkto1v Svilen Gospodinov • Concurrent Data Processing in Elixir • https://amzn.to/3t0MQtM https://twitter.com/GOTOcon https://www.linkedin.com/company/goto- https://www.instagram.com/goto_con https://www.facebook.com/GOTOConferences #PhoenixLiveView #LiveView #BEAM #Elixir #Erlang #WebSockets #Streams #Frontend #WebDevelopment #FunctionalProgramming #PhoenixWebFramework #StateRecovery #SophieDeBenedetto CHANNEL MEMBERSHIP BONUS Join this channel to get early access to videos & other perks: https://www.youtube.com/channel/UCs_tLP3AiwYKwdUHpltJPuA/join Looking for a unique learning experience? Attend the next GOTO conference near you! Get your ticket at https://gotopia.tech Sign up for updates and specials at https://gotopia.tech/newsletter SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily. https://www.youtube.com/user/GotoConferences/?sub_confirmation=1
Stay Updated
Get notified about new features and conference additions.