RRU 079: State Machines and State Charts with Farzad Yousef Zadeh
React Round Up17 Syys 2019

RRU 079: State Machines and State Charts with Farzad Yousef Zadeh

Episode Summary Today’s guest is Farzad Yousef Zadeh, a developer from Iran with a unique path into computer programming. He started by studying astrophysics and aerospace engineering in college, then dropped out in his last semester because it wasn’t the right path. He then taught himself to code, working mostly in web programming and frontend development. Despite his change in course, Farzad remains passionate about observing the night sky. Farzad is here today to talk about the ideas in his talk Explicitness and Consistency in UI, where he talks about the difficulties of developing a user interface and how the experience can be improved by using state machines and state charts. He talks about his inspiration for the talk and how he has implemented state machines and state charts into his work. The panel backtracks and talks about the definition of state machines and state charts. A state machine, from an academic background, is a model for computing something. It's for managing and controlling, taking over branching and managing a finite amount of state declaratively. State machines are not so much about sharing or reusing, but about how your communicate a certain behavior. Despite the fact that event driven programming permeates the programming consciousness, thinking about state charts and state machines is actually more natural than it first appears. The panel explains how it’s the same principle as whiteboarding to solve a problem. Lucas asks how state charts are different from pure React. Farzad talks about how it’s important not to just treat your static states as first class, but also the transitions between them. Otherwise, you would end up with something that looks like a map with cities and towns, but no roads. Using statecharts and state machines makes testing an application much easier, and in some ways you let the machine test itself. The machine will know what to do with your states because you define the path, and the machine will take the path for you. They again talk about the difference between state machines and state charts. A state machine defines a finite set of states and defining the events that the machine can take and respond to when transitioning from state A to B. If you use only this, you will encounter a snag called ‘state explosion’ because not non-concrete things cannot be modeled. So, state charts were invented to compensate for this. A state chart brings the idea of an extended state, or the context and data you need to hold and reason from. Farzad talks about other types of machines and supports that exist for branching, entry actions, and exit actions. This is similar to the use effect hook in React. He gives examples of where you would use this logic and how it would be worked into frameworks. Farzad talks about how your machine is just a definition, a declarative model of how something is supposed to behave, and how having that separation between the definition of the logic and behavior vs the implementation of API has given us so much more freedom and portability The panel talks about how using state machines and charts is an investment in the long term maintainability of your code. They agree that using state machines and charts makes it easier to communicate with other developers, new team members, and even non developers. They talk about Cerebral.js and its contributions and model. As with everything in programming, state machines are not a silver bullet and don’t work in every situation. Farzad talks about situations where state machines can be unhelpful. It is still valuable to consider state machines and charts because it forces you to dedicate time thinking and organizing your thoughts so that you can build something maintainable that won’t just be thrown away. The panel discusses how thinking things out before starting to code can be beneficial. They finish by talking about how React Hooks has started them on the path to implement state machines and charts into their code. Panelists
  • David Ceddia
  • Lucas Reis
  • Leslie Cohn-Wein
  • Thomas Aylott
With special guest: Farzad Yousef Zadeh Sponsors Links Follow DevChatTV on Facebook and Twitter Picks David Ceddia: Thomas Aylott: Lucas Reis: Leslie Cohn-Wein: Farzad Yousef Zadeh: Special Guest: Farzad Yousef Zadeh.

Advertising Inquiries: https://redcircle.com/brands

Privacy & Opt-Out: https://redcircle.com/privacy

Become a supporter of this podcast: https://www.spreaker.com/podcast/react-round-up--6102072/support.

Jaksot(310)

RRU 038: Azure Pipelines with Ed Thomson LIVE at Microsoft Ignite

RRU 038: Azure Pipelines with Ed Thomson LIVE at Microsoft Ignite

Panel: Charles Max Wood Special Guests: Ed Thomson In this episode, the React Round Up Charles speaks with Ed Thomson who is a Program Manager at Azure through Microsoft, Developer, and Open Sourc...

20 Marras 201849min

RRU 037: Make Backend Devs Jealous of Your Test Suite with Carly Litchfield

RRU 037: Make Backend Devs Jealous of Your Test Suite with Carly Litchfield

Panel: Nader DabitLucas ReisJustin Bennett Special Guests: Carly Litchfield In this episode, the panelists talk with Carly Litchfield who is a Full-stack engineer of React and React Native. The pa...

13 Marras 201855min

RRU 036: Signal R with Brady Gaster LIVE at Microsoft Ignite

RRU 036: Signal R with Brady Gaster LIVE at Microsoft Ignite

Panel: Charles Max Wood Special Guest: Brady Gaster In this episode, Chuck talks with https://twitter.com/bradygaster about https://www.asp.net/signalr that is offered through Microsoft. Brady Gas...

6 Marras 201847min

RRU 035: Optimizing React Virtual DOM Explained Article with Alexey Ivanov and Andy Barnov

RRU 035: Optimizing React Virtual DOM Explained Article with Alexey Ivanov and Andy Barnov

Panel: - https://github.com/lucasmreis- https://github.com/zephraph Special Guests: Alexey Ivanov and Andy Barnov In this episode, the panelists talk with https://twitter.com/savetherbtz?lang=en a...

30 Loka 201851min

RRU 034: “Progressive Web Apps” with Aaron Gustafson / Live at Microsoft Ignite

RRU 034: “Progressive Web Apps” with Aaron Gustafson / Live at Microsoft Ignite

Panel: - https://twitter.com/cmaxw?lang=en Special Guests: https://github.com/adtm In this episode, the Chuck talks with https://www.aaron-gustafson.com who is a web standards and accessibility ad...

23 Loka 201855min

RRU 033: "Finding Your Dream Job" with Panelists

RRU 033: "Finding Your Dream Job" with Panelists

Panel: - https://twitter.com/cmaxw?lang=en- https://twitter.com/dabit3?ref_src=twsrc%255Egoogle%257Ctwcamp%255Eserp%257Ctwgr%255Eauthor- https://github.com/zephraph- https://github.com/lucasmreis I...

16 Loka 201844min

RRU 032: "The most important lessons I've learned after a year of working with React" with Tomas Eglinskas

RRU 032: "The most important lessons I've learned after a year of working with React" with Tomas Eglinskas

Panel: Charles Max Wood (DevChat T.V.)Nader Dabit (Poland) Special Guests: Tomas Eglinskas In this episode, the panel talks with guest speaker, Tomas Eglinskas, and the panel talks to him about a...

9 Loka 201846min

RRU 031: "Real-time Editable Datagrid In React" with Peter Mbanugo

RRU 031: "Real-time Editable Datagrid In React" with Peter Mbanugo

Panel: Charles Max WoodLucas ReisJustin Bennett Special Guests: Peter Mbanugo In this episode, the panel talks with guest speaker, Peter Mbanugo. Peter is a computer software specialist who works ...

2 Loka 201851min

Suosittua kategoriassa Liike-elämä ja talous

sijotuskasti
mimmit-sijoittaa
psykopodiaa-podcast
rss-rahapodi
rss-rahamania
herrasmieshakkerit
ostan-asuntoja-podcast
rss-lahtijat
rss-sami-miettinen-neuvottelija
rahapuhetta
rss-sisalto-kuntoon
inderespodi
leadcast
rss-laakispodi
rss-seuraava-potilas
timanttia-hiomassa
rss-juurisyy-johtamisesta-kilpailuetua
rss-vaikuttavan-opettajan-vierella
rss-porssipodi
rss-johtoajatuksia