Jake Bennett "State Machines" - Laracon US 2023 Nashville

Поділитися
Вставка
  • Опубліковано 19 вер 2024

КОМЕНТАРІ • 32

  • @tmanley1985
    @tmanley1985 4 місяці тому +4

    I love state machines but something I've found to be difficult is a few things:
    - You're often not just trying to update a single field (e.g., status), sometimes you need to update more than a few things and so you have to parameterize these transition functions to take some context object
    - Side effects in a transition function are simple and nice but they can be hairy. There are situations where you may be transitioning to a state but it may be the case that you don't want any side effects (e.g., not sending an email for some special reason). When this happens, you find yourself once again either accepting booleans or some context object. Or you can revert control of side effects to the user by accepting a function to run once the state has transitioned
    - Bulk Actions often need their own state machine
    This is not a rally against this pattern, I love it, especially in UI with sequential flows, but there's a few considerations here. :) Great talk!

  • @TrondHus
    @TrondHus 11 місяців тому +4

    This talk is great on two levels. First it shows how modern PHP has become and how clean code you can make using patterns. Second it teaches those who watches this video about the State Pattern and the "State Machine" thing.
    I hope this video will recruit more PHP-developer and more Laravel-users.
    Well done Jake Bennett! Well done!

  • @Denakino
    @Denakino Рік тому +13

    This left a much deeper impression on me than the title of the talk would suggest. Very well done, my favorite technical talk (not announcements/general mindset) from this year's Laracon.

    • @JacobBennetts
      @JacobBennetts Рік тому +2

      Thanks so much @Denakino! Really enjoyed putting it together. I agree, I should have come up with a catchier Title 😅

  • @FarazSamapoor
    @FarazSamapoor Рік тому +10

    Great talk and superb presentation! Thank you, Jake!

  • @stephenshead3636
    @stephenshead3636 Рік тому +6

    Got 6 minutes into listening to your latest Laravel News podcast and realised, “Oh, this is exactly what I need for that bit of the codebase that has been smelling slightly off.” Awesome presentation!

    • @JacobBennetts
      @JacobBennetts Рік тому

      Super glad to hear that @stephenshead3636! Excited to hear how it goes.

  • @tomaserlebach9760
    @tomaserlebach9760 Рік тому +3

    This is so awesome! Everydayproblem solved with a simple solution. Thanks for that!❤

  • @amirpouresterabadi3052
    @amirpouresterabadi3052 Рік тому +4

    Really it was one of the best top 3 talks in all laracons... Thank you so much

  • @kalvinniam7185
    @kalvinniam7185 7 місяців тому +2

    This is amazing!

  • @pindab0ter
    @pindab0ter Рік тому +2

    This is an amazing talk! I implemented a state machine using XState in Typescript before. This much simpler and still does everything a state machine should do! Will definitely look at using this once the need arises!

  • @chrispage558
    @chrispage558 Рік тому +2

    Brilliant talk and something I'll definitely be using! Thank you 🙌

  • @AbderrahmanFodili
    @AbderrahmanFodili Рік тому +3

    This was an amazing talk . Just what I need right now

  • @kaibe5241
    @kaibe5241 Рік тому +2

    Really great talk, thank you, Jake :)

  • @RobinDesBles
    @RobinDesBles Рік тому +2

    Awesome talk!

  • @kpomeru
    @kpomeru Рік тому +2

    This is so insightful.

  • @freesgen
    @freesgen Рік тому +2

    Amazing talk dude, thanks for sharing

  • @SusantPaudelfab
    @SusantPaudelfab 9 місяців тому +1

    this talk really solved my irritative problem. hope to see more from laravel team.

  • @thurstonlevi
    @thurstonlevi Рік тому +3

    Brilliant talk Jake, first thing i did was to implement this in an evolving job admin app. Did raise a few questions like do I add this to a query using a with so i can show the current state in a table? might be nicer to have named the initial Invoice class as say InvoiceState but did that with a HasOne but I had to be careful in implementing this with similar named classes (App/Models/Invoice and App/StateMachine/Invoice).

  • @whchi9252
    @whchi9252 Рік тому +2

    really good talk!

  • @7924a
    @7924a Рік тому +1

    Hey, can you share link to state machine package (no spatie, second one) you mentioned in talk please?

  • @hermanceaser
    @hermanceaser Рік тому +2

    Wow, Dude you are magician 😟

    • @JacobBennetts
      @JacobBennetts Рік тому +1

      Haha, its true! Love me some good card magic!

    • @exikoz
      @exikoz 3 місяці тому

      ​@@JacobBennettsThank you so much for this awesome presentation.

  • @shafqatalinawaz3868
    @shafqatalinawaz3868 Рік тому

    Brilliant ❤