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!
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!
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.
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!
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!
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).
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!
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!
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.
Thanks so much @Denakino! Really enjoyed putting it together. I agree, I should have come up with a catchier Title 😅
Great talk and superb presentation! Thank you, Jake!
This is so awesome! Everydayproblem solved with a simple solution. Thanks for that!❤
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!
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!
Super glad to hear that @stephenshead3636! Excited to hear how it goes.
Really it was one of the best top 3 talks in all laracons... Thank you so much
So kind of you to say that. Thanks!
I agree! along with Livewire 3
Brilliant talk and something I'll definitely be using! Thank you 🙌
This was an amazing talk . Just what I need right now
This is amazing!
Really great talk, thank you, Jake :)
this talk really solved my irritative problem. hope to see more from laravel team.
Awesome talk!
Appreciate that!
This is so insightful.
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).
Amazing talk dude, thanks for sharing
My pleasure.
Hey, can you share link to state machine package (no spatie, second one) you mentioned in talk please?
really good talk!
Thank you!
Brilliant ❤
Wow, Dude you are magician 😟
Haha, its true! Love me some good card magic!
@@JacobBennettsThank you so much for this awesome presentation.