That is very useful and exactly what I needed. A project I'm working on right now is polluted with flags, and this is going to help so much.
@EloiTeaching4 жыл бұрын
Surprise of how small are the commentary count on this video. This video is amazing !
@csharp6093 жыл бұрын
The clearest explanation about the state machine, Thanks.
@derduskenga4 жыл бұрын
Genius! Stumbled on this when I was almost giving up
@AntonioDoesMetal3 ай бұрын
I've watched tons and tons of tech talks in the past few years and this one was one of the best I've seen. Thanks for sharing
@madsxcva Жыл бұрын
great talk
@user-uh2cr9so8l3 жыл бұрын
Highlighted the use case of state machine really well, I needed that. Shame the implementation used a library though
@spaceyfounder50405 жыл бұрын
Freaking useful!
@ashwinmathews9859 Жыл бұрын
Excellent video
@onlymecz2 жыл бұрын
Exactly what I needed!! Thank you so much!
@devtest80783 жыл бұрын
Excellent talk. State Machines very well explained. Well done Harrington Joseph.
@lycantropos Жыл бұрын
in the next iteration people using this pattern will understand that using separate classes to switch between states is a much better approach that can be checked by static type checkers like `mypy` in Python or a compiler in any of OO compiled languages
@lepidoptera9337 Жыл бұрын
You must be joking... did I miss the sarcasm? Why in the world would you ever smear a state machine over several classes???? That makes it almost impossible to follow your program logic. The very beauty of a state machine with e.g. a switch statement is that it's all in one place... so you (and the people who have to maintain your legacy code!) can see immediately where things are going wrong. This also makes extending the state machine is nearly trivial. You are a good example of what's wrong with the OOP crowd.
@aleksandrkubar62552 жыл бұрын
Great presentation, thanks!
@fringefringe72822 жыл бұрын
Marvelous.
@nikhilgoyal83403 жыл бұрын
Nice explanation and use case.
@eswarreddy62803 жыл бұрын
great one
@tienbui11063 жыл бұрын
It's pretty helpful, thanks
@vladimirgorea87144 жыл бұрын
Ok, this is useful. Thanks
@louaykhammar72683 жыл бұрын
Thanks
@willculpepper96372 жыл бұрын
1) Say what you're going to say. 2) Say it. 3) Say what you said. This is the way.
@paulchamberlain7942Ай бұрын
no rewinding if tape stopped? So unlike any tape machine ever made..
@openroomxyz3 жыл бұрын
Love it thanks a lot!
@alexanderkyei89473 жыл бұрын
Very great presentation👍🏿
@brookestephen Жыл бұрын
Perhaps it's easier to make unavailable functions unavailable in the user interface, rather than generate an error when the user selects an unavailable function.
@lepidoptera9337 Жыл бұрын
The better way is to give an explanation why the function is not available and what pre-requisites the user has to provide to make it available. Yes, there is the crowd that thinks that the user is a toddler who needs to be put into a tiny cage... that crowd tends to write highly unintuitive and frustrating software that leaves no room for growth, neither for the user nor the software designer. If you want to treat your user like an adult, tell him what the program needs to be able to do more for him. If you can't do that, then you don't understand either your user nor your own software.
@chikkai24322 жыл бұрын
👏
@geodome833 жыл бұрын
NFA is probably the easiest way to express a state machine, but there are other kind of automata which may be used to model the state machine.
@lepidoptera9337 Жыл бұрын
A state machine can be written easily with if-then-else or switch statements. No need to complicate things.
@enzotriches76574 жыл бұрын
amazing
@ahmednabil51193 жыл бұрын
But how does state machine library works? It checks the state (true or false) for every condition. He only abstract the code using an external library.
@rednafi3 жыл бұрын
Go read the source code of the pytransitions library. It's a 20 minutes talk. What do expect? I think the speaker did a fantastic job in explaining the problem and pointing the audience in the right direction.
@lapidations2 жыл бұрын
@@rednafi I agree. Even if I'm currently struggling to implement a state machine, I watched this to understand the use cases and design, not the implementation.
@yash11522 жыл бұрын
umh, yeah, but abstraction is good. It's reusable, it's maintainable, it's flexible. it's less error prone. so, even if it's abstracted, it still fits the aim of the talk. by the way, thanks for the comment (:
@lepidoptera9337 Жыл бұрын
@@yash1152 Abstraction for abstraction sake is a bad idea. Everybody who can touch your code understands if-then-else and switch... and almost nobody wants to read the documentation for your choice of state machine library. Moreover, you may be running into some serious performance problems with libraries that are too general for your particular use case.