Phoenix LiveView for web developers who don't know Elixir.

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 พ.ย. 2024

ความคิดเห็น • 162

  • @neilclay5835
    @neilclay5835 ปีที่แล้ว +36

    You had me at "avoiding all the front end technologies"

  • @zed9zed
    @zed9zed 2 ปีที่แล้ว +36

    You have a rare talent for teaching. This is by far one of the best tech/how-to videos I've seen... and I've watched very, very many across multiple languages and frameworks. The only very tiny suggestion I would make is to change your expression "key" and "key in" to "type" and "type in". "key in" is a rather antiquated expression. Also, since so much development involves key/value pairs, it's probably good not to use the word "key" in places like this where there is a better option :).

  • @metric152
    @metric152 4 ปีที่แล้ว +8

    You clearly know your audience when you opened the network tab and showed the traffic coming back to the browser. Good job man.

  • @ivovicente9811
    @ivovicente9811 5 ปีที่แล้ว +54

    This introduction was really nice and get me hooked from the beginning, thanks for sharing.

  • @PreRenderedRealities
    @PreRenderedRealities 4 ปีที่แล้ว +7

    People should hire you to develop compelling presentations if they don't already. You perfectly buried the lead to whet our appetites and then delivered a satisfying answer. That's damn rare on TH-cam. Thanks for the education!

  • @selgesel
    @selgesel 4 ปีที่แล้ว +32

    This is probably the most spot-on introduction video I've ever watched. You caught on almost every argument or question I came up with, even when I thought of spinning up a project and inspecting the network and the DOM.
    I'm getting more and more excited about Phoenix and Elixir in general, so I'll definitely give this a go. I'm still concerned about the organization of the HTML templates, I feel as if they would quickly turn into a nightmare, but that might not just be the case. Only one way to find that out: make stuff.

  • @PreRenderedRealities
    @PreRenderedRealities 4 ปีที่แล้ว +10

    Since my last comment on this video, I purchased and have watched about half of James' course on Elixir and Phoenix. It is one of the best courses I've taken. Super thorough, well-paced, and explained in a manner/order that you rarely get from online courses. If you are looking to learn this "stack," I highly recommend purchasing the course. It's worth the money and then some.

  • @adamthekiwione
    @adamthekiwione 4 ปีที่แล้ว +26

    I've been pondering starting a YT channel to produce engineering content; wow, this was the best piece of developer-centric content I've ever viewed. :clap:

  • @hypernarutouzumaki
    @hypernarutouzumaki 4 ปีที่แล้ว +11

    How is server-side rendering better than client-side rendering? If only a part of the view needs to change, it can be easily done in SPAs without network latency. Why are you assuming that most people on the internet are on high speed network? And even if they are on a high speed network, network latency is always going to be the biggest factor in the time taken to update a page!
    Phoenix LiveViews doesn't seem like a valid choice to make in most web development use-cases where data is being updated mostly on client-side rather than server-side.
    But anyway, great video! I was confused as to whether it would be worth learning Phoenix or not and it seems like you have given me the perfect answer!

  • @RsZ789
    @RsZ789 4 ปีที่แล้ว +8

    Your teaching style is so clear and concise I'm tempted to spend the money for your course, haha

  • @Bob-xy6gt
    @Bob-xy6gt 2 หลายเดือนก่อน

    like all the other comments I was really blown away by how remarkably effective and clear your video was - thank you for a great resource! I’m excited to go through your channel!

  • @lifelover69
    @lifelover69 2 ปีที่แล้ว +2

    Despite having very basic understanding of web development, I could understand everything in this video clearly. Thank you!

  • @planszulting4680
    @planszulting4680 2 ปีที่แล้ว +1

    One of the best videos about programming I’ve seen. Hats off.

  • @alessandroscimone5463
    @alessandroscimone5463 2 ปีที่แล้ว

    Stupefacente! 2 anni dopo ma ho avuto l'illuminazione! Grazie! Amazing! 2 years later but I got the enlightenment! Thank you

  • @samiullahsheikh5015
    @samiullahsheikh5015 2 ปีที่แล้ว +1

    Amazingly explained the complex concepts in a much much simpler way

  • @nesocode
    @nesocode 8 หลายเดือนก่อน

    Thank you, I am learning Elixir right now and this is first video on LiveView that maked sense for me.

  • @orebelo
    @orebelo 5 หลายเดือนก่อน

    Great video! I'm devops and I was looking to see Elixir in action and best of all with Phoenix together in the same package without knowing Elixir... Wonderful!! Thanks

  • @lafatmee
    @lafatmee 5 ปีที่แล้ว +10

    Fabulous video, as a web dev who prefers Elixir, this was the perfect intro to LiveView

  • @fazex4185
    @fazex4185 ปีที่แล้ว

    I really enjoy your teaching style. Getting into Phoenix and having trouble finding good tutorials but this hit the spot

  • @user-wc1sm8cj8s
    @user-wc1sm8cj8s 2 ปีที่แล้ว +2

    Very well explained, thanks for this. I'm actually thinking of getting into elixir/phoenix, and now I'm convinced.

  • @texaslinux
    @texaslinux 2 ปีที่แล้ว +1

    This presentation was glorious. Thank you!

  • @samulevy
    @samulevy 5 ปีที่แล้ว +3

    Congrats for the best intro to LiveView on youtube until now!

  • @billtate1684
    @billtate1684 4 ปีที่แล้ว +2

    Excellent. Your training course on Elixir and Phoenix is fantastic as well.

  • @deepvakharia3119
    @deepvakharia3119 6 หลายเดือนก่อน

    Very well explained with simple example

  • @albertoginelsalvador2172
    @albertoginelsalvador2172 4 หลายเดือนก่อน

    So well explained! thanks!

  • @joakimeskils335
    @joakimeskils335 4 ปีที่แล้ว +2

    This is amazing. Extremely good explanations and nice use of illustrations. Subscribed!

  • @chengzhiyang8176
    @chengzhiyang8176 4 ปีที่แล้ว +1

    Wow, Thank you! you solved my long time question about choosing from single app vs multi-page app vs frame

  • @hariyadimaramis6226
    @hariyadimaramis6226 3 ปีที่แล้ว

    very undestandable and easy to munch video with detailed and great explanation....good work

  • @silverdr
    @silverdr 4 ปีที่แล้ว

    I agree with previous comments that this is a very well done introduction to the subject. The only thing I am missing is exactly how the dataset changes would be reflected in user's browser when the change is triggered elsewhere. Something you lightly scratched close to the end of the clip.

  • @Metruzanca
    @Metruzanca ปีที่แล้ว

    This is an amazingly well made intro to liveview (& elixir)

  • @lufenmartofilia5804
    @lufenmartofilia5804 28 วันที่ผ่านมา

    God tier explanation

  • @kurshadqaya1684
    @kurshadqaya1684 3 ปีที่แล้ว

    Thank you very much. This is one of the best overview I have watched.

  • @ninjarobotpirate
    @ninjarobotpirate 2 ปีที่แล้ว +1

    In case anyone is following along in 2022, mount now takes three arguments: params, session, and socket

    • @jamievaughn9845
      @jamievaughn9845 2 ปีที่แล้ว +2

      Thank you, saved me so much time trying to debug!!

    • @jasonpaden8641
      @jasonpaden8641 ปีที่แล้ว

      Thank you!!

    • @rapidsnailshellzz
      @rapidsnailshellzz ปีที่แล้ว

      God BLESS you the key error I was getting in no way implied that there was somerthing wrong with how I was parametising the mount function

  • @yasam9311
    @yasam9311 3 ปีที่แล้ว

    Good lean instructions, thank you !

  • @nomadtrails
    @nomadtrails 2 ปีที่แล้ว +1

    I love this presentation, and I love Pheonix LiveView, but it is not the only alternative to the "server rendered multipage application" "single page app" duality. Next.js is server-rendered and client "hydrated", all written in js/jsx, for example. Or how bout a simple SPA with Svelte using something like Firebase Realtime DB as the back end. Once again, single language, single paradigm, low complexity, extremely high ceiling for UX, with all the same or more low-latency realtime capabilities... I think this is a much more fair comparison, and may get the edge over Pheonix live view in terms of UX vs Complexity, in all honesty. I see Pheonix LiveView more like a vast improvement over websockets in rails.

  • @kim15742
    @kim15742 4 ปีที่แล้ว

    "This is crazy", well you've perfectly captured my thoughts, but I am always open to new ideas. Great video!

  • @segwaydave
    @segwaydave 5 ปีที่แล้ว +3

    Thank you for putting this together! Well done!

  • @cruzfarfan1284
    @cruzfarfan1284 3 ปีที่แล้ว

    Bravo. Best explanation I’ve seen on the subject

  • @j.r.4718
    @j.r.4718 3 ปีที่แล้ว

    Thank you for sharing this! Super helpful. You almost sound just like Guy Raz on How I Built this.

  • @CripplingDuality
    @CripplingDuality 4 ปีที่แล้ว +1

    This is simply fantastic. Very well-explained, and no cruft!

  • @lhd7105
    @lhd7105 2 ปีที่แล้ว

    Wow, very very very very nice explainer, thank you for doing all the hard work to make things simple for us newbies.

  • @NoahNobody
    @NoahNobody 4 ปีที่แล้ว +4

    Good job. As someone browsing this technology, you have me interested to learn more.

  • @kif11
    @kif11 2 ปีที่แล้ว

    High quality content. Thank you!

  • @sumanth3036
    @sumanth3036 3 ปีที่แล้ว

    Awesome presentation. Thanks

  • @kkonline1980
    @kkonline1980 ปีที่แล้ว

    Dude you are awesome, the explanation and demo really drives the point home without me cracking my head. You have a talent of presenting a seemingly difficult concept with easy such that a 5th grader can understand :) keep giving back to the community.

  • @hooshawn
    @hooshawn 4 ปีที่แล้ว

    Very well explained, comment for the algorithm

  • @aibookclub-g2r
    @aibookclub-g2r 4 ปีที่แล้ว +1

    nicely explained ...

  • @MrAverageViewer
    @MrAverageViewer 4 ปีที่แล้ว

    Fantastic!! Your animations make it much easier to understand!!

  • @도둘리-i7k
    @도둘리-i7k ปีที่แล้ว

    All the best!! 🎉🎉🎉

  • @Yahyazini
    @Yahyazini 4 ปีที่แล้ว

    What an awesome introduction to such an awesome stack

  • @tylersustare
    @tylersustare 3 ปีที่แล้ว

    This was super awesome for getting the "how" in a really nice, digestible way. Successfully subscribed 🔔

  • @mohammedsalman3397
    @mohammedsalman3397 4 ปีที่แล้ว +1

    Great video, but what if you wanted to build a mobile app?

  • @heygema
    @heygema ปีที่แล้ว

    Thank you this is awesome

  • @lpsoldier357
    @lpsoldier357 3 ปีที่แล้ว

    Amazing video. Thanks

  • @madhuthota375
    @madhuthota375 4 ปีที่แล้ว

    Really very nice intro on the technology

  • @aniltheblogger
    @aniltheblogger 4 ปีที่แล้ว

    Really good intro for liveview, thanks.

  • @desireco
    @desireco 4 ปีที่แล้ว

    I really enjoyed this video, thank you!

  • @TN-ec6ec
    @TN-ec6ec 4 ปีที่แล้ว

    Great video! This is super cool; thank you for the introduction.

  • @siyaram2855
    @siyaram2855 3 ปีที่แล้ว

    Great video!
    What software do you use to make the animations?
    Keynote?

  • @kevinkamau
    @kevinkamau 4 ปีที่แล้ว +1

    Awesome presentation. Does Phoenix Live View automagically fallback to polling when web sockets are not feasible?

    • @knowthen
      @knowthen  4 ปีที่แล้ว +1

      It can be configured to fallback to do this.

  • @ranska2506
    @ranska2506 4 ปีที่แล้ว

    I really add the arrows you put to point some text it really help.
    the rhythm is good to.
    Very well job :thumb_up: :)

  • @TheAcadianIsHere
    @TheAcadianIsHere 4 ปีที่แล้ว

    Brilliantly explained!

  • @romenigld
    @romenigld 4 ปีที่แล้ว

    Explains very nice, congratulations!

  • @karanmadhukar8849
    @karanmadhukar8849 2 ปีที่แล้ว

    Excellent intro

  • @miguelqueiroga2737
    @miguelqueiroga2737 4 หลายเดือนก่อน

    If I misunderstood what was said in the video, please feel free to correct me.
    But what was mentioned at the 21:19 minute mark in the video discusses how Phoenix's front-end works and inefficiency in SPAs. However, this is not necessary true, LiveView works differently from other frameworks like Django. If you make a state change in a web application, the entire page won't be reset; only the necessary part will be updated. When updating the state of a page in Phoenix LiveView, the server does not send the entire HTML or anything like that to the client to refresh the page, but rather only the necessary values via WebSocket.
    If anyone is interested in this topic, you can check this video th-cam.com/video/U_Pe8Ru06fM/w-d-xo.html , at the 20:18 minute mark to see how the server sends information to the client, and at the 21:26 minute mark to see specifically how only one HTML element is updated.

  • @friendlyantz
    @friendlyantz ปีที่แล้ว

    IF you have and issue with missing @count:
    mount needs to do pattern matching on 3 args, not 2. first being 'params'. This will fix it:
    def mount(_params, _session, socket) do
    ....

  • @tvanantwerp
    @tvanantwerp 4 ปีที่แล้ว

    This is a really well-done introduction. Thanks!

  • @respise
    @respise 3 ปีที่แล้ว

    And for more complex applications - how does modules interact with each others? Thru the common state?

  • @lagiator
    @lagiator 4 ปีที่แล้ว

    really nice explanation, thanks!

  • @gerhardsteenkamp562
    @gerhardsteenkamp562 3 ปีที่แล้ว

    Excellent!!

  • @Nellak2011
    @Nellak2011 ปีที่แล้ว

    A few comments.
    1. How does this framework differ frim Next.Js? It looks like both do SSR.
    2. The phoenix pattern looks like a re-coloring of React Class Based Components. Does Phoenix have a functional analog with hooks?

  • @LoweHenry
    @LoweHenry 4 ปีที่แล้ว

    wow! just wow, thanks for this mind-opening intro

  • @jonask.2059
    @jonask.2059 5 ปีที่แล้ว

    Excellent video and intro to LiveView! :)

  • @animehero8648
    @animehero8648 3 ปีที่แล้ว +3

    I find multipage is more complex than a single page when you said using a framework (React/Vue) that bar should decrease and not increase because they make the process easier and not complex

  • @teijiw
    @teijiw 3 ปีที่แล้ว

    What's your editor font?
    Great video!

    • @knowthen
      @knowthen  3 ปีที่แล้ว

      Source Code Pro

  • @KEMBL
    @KEMBL ปีที่แล้ว

    very nice, is it possible to write a stand alone Android application using Elixir/Fenix?

  • @Jan-yn4tl
    @Jan-yn4tl 3 ปีที่แล้ว

    Single page app is sick with with all its dependences which breaks over time with every needed update, simple mistake in frontend that might break the whole app, The technology overhead.. speed problems, SEO problems,.. super expensive.
    This is awesome. Simple, less code exposed, less code to ship, less code to maintain.
    Now I need to lear how ;)

  • @joselodev
    @joselodev 4 ปีที่แล้ว

    Thanks for share it, btw your course includes LiveView features??

  • @ruchirahasaranga8076
    @ruchirahasaranga8076 3 ปีที่แล้ว +1

    ** (ArgumentError) assign @count not available in eex template.

  • @ChetanBhasin
    @ChetanBhasin ปีที่แล้ว

    Just getting into Phoenix here. What happens if it's an app with multiple instances for load balancing and one of them goes out and comes back up or if the user is disconnected?

  • @ThierryPabloSchmidt
    @ThierryPabloSchmidt 4 หลายเดือนก่อน

    Really good content, thanks. Does someone know, how it compare with livewire from laravel?

  • @kim15742
    @kim15742 4 ปีที่แล้ว

    What about the latency between firing an event and it being handled on the server? Unfortunately for my current project LiveView is not an option, because it relies on the synchronicity with the DOM render, but I'll consider LiveView in the future

  • @solvm1652
    @solvm1652 5 ปีที่แล้ว +2

    Hell yeah!!! Is this LiveView practice in the course as well?

    • @knowthen
      @knowthen  5 ปีที่แล้ว

      LiveView is still a bit young, and it's being actively developed... so I didn't include it in the course... When LiveView hit's version 1.0, I'm strongly considering adding more videos to include it.

    • @solvm1652
      @solvm1652 5 ปีที่แล้ว

      @@knowthen - Gotcha. So, it would be possible to make the voter app in the course using LiveView instead of React, right?

    • @knowthen
      @knowthen  5 ปีที่แล้ว

      @@solvm1652 Yes totally doable, and it would be a much much simpler solution.

    • @solvm1652
      @solvm1652 5 ปีที่แล้ว +2

      @@knowthen Would you be down to include a LiveView Voting app addition to the course anyway? I understand your reservations about it's youth, but these issues didn't stop React and Vue from blowing up. I feel like the entire JS development chain has pulled us through their infancy, API changes, stylistic changes, bugs, collisions and death even. So, I say go for it. Youth and active development is what we digest daily in this JS world. Much Respect! Thanks for all these exceptional resources you're created.

  • @wassamness
    @wassamness 5 ปีที่แล้ว

    Very good introduction.

  • @rowolta
    @rowolta ปีที่แล้ว

    Is there any example that you can look/inspect? That is "online" on the Internet?

  • @siyaram2855
    @siyaram2855 2 ปีที่แล้ว

    What's your thoughts on Hotwire?
    With AnyCable?

  • @camstuart
    @camstuart 4 ปีที่แล้ว

    Really well produced video! I'm thinking about doing your elixir/phoenix course. does it also cover liveview?

    • @knowthen
      @knowthen  4 ปีที่แล้ว +1

      Thanks for the kind words! It doesn't include liveview at this point, mostly because liveview is still very young and I suspect there will be quite a few breaking changes to it before it reaches v 1.0

    • @SamOween
      @SamOween 5 หลายเดือนก่อน

      We made it to 1.0

  • @petrtcoi9398
    @petrtcoi9398 3 ปีที่แล้ว

    Hi. Thank you for the video. It’s great. But one thing is not clear for me:
    Can you help with socket=assign in handle_event function. Does it breaks the immutability rule?

  • @ankk98
    @ankk98 11 หลายเดือนก่อน

    Million websocket ability is surprising.

  • @kez99
    @kez99 4 ปีที่แล้ว +1

    this feels like its next level server side rendering lol

  • @buttonsplaymusic4896
    @buttonsplaymusic4896 3 ปีที่แล้ว

    Just installed on Windows, but when Erland opens and I try to 'mix phx.new' I get the error:
    '(CompileError) iex:22 undefined function mix/1'

  • @Alex1611AD
    @Alex1611AD 2 หลายเดือนก่อน

    For you Elixir veterans out there, I'm finding the Elixir syntax to be quite daunting and unintuitive. Is this a normal feeling for a beginner? Will it get better over time?
    Also, things seem very verbose. At least in this example.

  • @electronicdementia9050
    @electronicdementia9050 2 หลายเดือนก่อน

    Hey, know then website isn't working bro. Anyway you can help?

  • @JoonhwanLee
    @JoonhwanLee 7 หลายเดือนก่อน

    I am from future, this video will help a lot even in 4 years later 😅

  • @lyudmilivanov270
    @lyudmilivanov270 5 ปีที่แล้ว

    Great content!

  • @farhad9801
    @farhad9801 4 ปีที่แล้ว

    If it sends the new html on each state change how does it update only the specific part of the dom?

  • @DogoOrtodoxo
    @DogoOrtodoxo 4 ปีที่แล้ว

    Pretty cool

  • @ruhtam8971
    @ruhtam8971 4 ปีที่แล้ว

    Hey, I'm unable to get the CounterLive page, I followed the same steps as you did.
    I'm getting this
    assign @count not available in eex template.

    • @hkrazy8
      @hkrazy8 4 ปีที่แล้ว

      elixirforum.com/t/liveview-argumenterror-assign-count-not-available-in-eex-template/30580/2

  • @skewlines4152
    @skewlines4152 4 ปีที่แล้ว

    How does this compare to C# Server-side Blazor?

  • @Suragato
    @Suragato 8 หลายเดือนก่อน

    I would like to point out that the complexity for the SPAs is a bit exaggerated.