RRU 079: State Machines and State Charts with Farzad Yousef Zadeh
React Round Up17 Sep 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.

Episoder(310)

Building a Chatbot or Voicebot with Dialogflow in React ft. Victory Nwani - RRU 275

Building a Chatbot or Voicebot with Dialogflow in React ft. Victory Nwani - RRU 275

Victory Dumebi Nwani joins the round up to discuss integrating the Dialogflow from Google Cloud into your application to manage voice and chat capabilities for your application.Victory dives into the stack he used to put together a functioning app using that offering from Google.LinksIntegrating A Dialogflow Agent Into A React ApplicationDialogflow DocumentationA brief introduction to Chatbots with DialogflowDialogflow pricingLinkedIn: Victory NwaniGitHub: Nwani Victory ( vickywane )Twitter: Iamnwani ( @iamnwani01 )PicksJack- Resident Evil VillagePaige- Mario KartTJ- Toto BidetVictory- AWS CodeDeployBecome a supporter of this podcast: https://www.spreaker.com/podcast/react-round-up--6102072/support.

20 Nov 202440min

Transitioning a React Codebase from JSX to TypeScript ft. Priscila Oliveira and Mark Story  - RRU 274

Transitioning a React Codebase from JSX to TypeScript ft. Priscila Oliveira and Mark Story - RRU 274

Priscila Oliveira and Mark Story join the panel to discuss the recent transition at Sentry from vanilla JavaScript to React and TypeScript.The show starts out with the panelists nerding out over Sentry and how they use it, then they dive into the code transition and the things that they learned from their conversion to TypeScript.LinksSlow and Steady: Converting Sentry’s Entire Frontend to TypeScriptTwitter: Sentry ( @getsentry )Twitter: Mark Story ( @mark_story )Twitter: Priscila Oliveira ( @priscilawebdev )PicksJack- Power of saying "No"Mark- GitHub | neovim/nvim-lspconfigMark- GitHub | glepnir/lspsaga.nvimPriscila - GitHub | clauderic/dnd-kitTJ- DivvyBecome a supporter of this podcast: https://www.spreaker.com/podcast/react-round-up--6102072/support.

14 Nov 202439min

Web Workers & Multi-threaded JavaScript with Majid Hajian - RRU 273

Web Workers & Multi-threaded JavaScript with Majid Hajian - RRU 273

Despite JavaScript being a single-threaded language, you can now leverage multi-threaded computing thanks to modern browser features such as web workers, workouts and service workers. In this show, Majid explains how these features work and what problems they solve. We also discuss the strategies you can use to introduce them to production codebases and give your users a much more enjoyable experience on your web app.LinksComlink makes WebWorkers enjoyableWorkboxFigmaThe AssemblyScript BookHoudini: Demystifying CSSPicksMajid - Follow Majid on Twitter > @mhadailyMajid - Deep Work - Cal NewportCarl - Off the Main Thread | The Web Platform PodcastCharles  - Natural Goat Milk Soaps for Healthy Skin — Goat Milk StuffCharles  - ‎Flip Timer & stopwatch on the App StoreCharles - Desktop tripodPaige - DJI Phantom 4 DronePaige - Ozark show on NetflixTJ - Goat-2-Meeting — Sweet FarmBecome a supporter of this podcast: https://www.spreaker.com/podcast/react-round-up--6102072/support.

6 Nov 20241h 1min

Creating Gatsby Source Plugins with Dillion Megida - RRU 272

Creating Gatsby Source Plugins with Dillion Megida - RRU 272

In today’s episode of React Round Up, Nigerian-based developer Dillion Megida explains how you can create source plugins for Gatsby, the static site generation tool. Gatsby can be used to create landing pages, blogs and e-commerce sites, among other things, and it contains a vast plugin ecosystem that helps developers avoid reinventing the wheel when creating their applications. Dillion also shares his experience blogging for websites such as LogRocket, FreeCodecamp and Dev.to and talks us through his workflow and how he comes up with new article ideas.LinksHow to Build a Gatsby Source Plugin, using Hashnode as an examplePaige NiedringhausGatsby Plugin LibraryTheWebFor5Web sharing APIA deep dive into queues in Node.jsgatsby-source-mediumHashnodeTwitter: Dillion Megida ( @iamdillion )Dillion Megida - Frontend Engineer and Technical WriterPicksCarl- BBQ tips Carl- JAMstacked newsletter Dillion- CypressPaige- Battery Chargers - OptiMateTJ- RemotionTJ- Remotion demoBecome a supporter of this podcast: https://www.spreaker.com/podcast/react-round-up--6102072/support.

30 Okt 202450min

Mastering Event Sourcing with Redux and Back-End Insights - RRU 271

Mastering Event Sourcing with Redux and Back-End Insights - RRU 271

In this episode, they dive deep into the world of event sourcing with special guest, Luis Galeas, CEO and founder of Ambar. Lucas Paganini, along with Chris and Peter explore the intricacies of event sourcing, comparing front-end implementations using Redux and back-end approaches, and highlighting the benefits, drawbacks, and practical applications.Luis shares his expertise on event sourcing, discussing how events act as the primary source of truth and the importance of understanding system boundaries for scalability. The conversation covers essential tools, frameworks, and strategies to effectively implement event sourcing in both your development processes and organizational strategies.Whether you're new to event sourcing or looking to deepen your understanding, this episode offers invaluable insights and practical advice to help you navigate this complex but rewarding architecture. Tune in to learn more about how event sourcing can transform your approach to managing application changes, ensuring scalability, auditability, and minimizing regressions. Don't miss out on this opportunity to hear from experts in the field and discover how to leverage event sourcing for your next big project!SocialsLinkedIn: Luis P Galeas Become a supporter of this podcast: https://www.spreaker.com/podcast/react-round-up--6102072/support.

24 Okt 202443min

Is Working at a Large or Small Company Better for Your Career? - RRU 270

Is Working at a Large or Small Company Better for Your Career? - RRU 270

This week the panelists dive into their work backgrounds and discuss the ins and outs of working at small and large companies. They aim specifically at whether one is better than the other for building a career.PicksJack- Virtual CoffeePaige- Raspberry Pi Beginner's Guide 4th EditionTJ- RocketBecome a supporter of this podcast: https://www.spreaker.com/podcast/react-round-up--6102072/support.

16 Okt 202447min

React Hook Form with Vijit Ail - RRU 269

React Hook Form with Vijit Ail - RRU 269

React Hook Form is a terrific way to manage state in, from, and through, your forms in React. Since React itself doesn't give you much to manage forms, React Hook Form steps into the gap to help you manage your forms and provide features and functionality to your forms.Our guest, Vijit Ail worked through several of the options out there for managing states and walks the panel through his decision to use React Hook Form.LinksReact Hook FormRedux FormFormikBundlePhobiaTypeORMNestJSPicksJack- Nx: Smart, Extensible Build FrameworkTJ- Super Mario 3D WorldVijit- Microservices with Node JS and React | UdemyBecome a supporter of this podcast: https://www.spreaker.com/podcast/react-round-up--6102072/support.

9 Okt 202432min

Clean Code with Tyler Hawkins - RRU 268

Clean Code with Tyler Hawkins - RRU 268

In today’s show, frontend engineer Tyler Hawkins shares his tips on how you can write clean, maintainable and readable code. Using the examples from his article on the same subject, he explains the importance of using clean code principles to make it easier for different developers to collaborate on a codebase. Tyler also discusses how you can better structure your tests and have more confidence in how they are written.LinksReact Clean CodeUse ternaries rather than && in JSXGitHub | getify/You-Dont-Know-JSClean Code With Unit TestsTyler Hawkins - Web PortfolioTyler Hawkins - MediumGitHub: Tyler Hawkins ( thawkin3 )LinkedIn: Tyler HawkinsTwitter: Tyler Hawkins ( @thawkin3 )PicksCarl- Time away from the screensJack- GitHub | pmndrs/jotaiTyler- Being Wrong: Adventures in the Margin of Error by Kathryn SchulzBecome a supporter of this podcast: https://www.spreaker.com/podcast/react-round-up--6102072/support.

2 Okt 202452min

Populært innen Business og økonomi

stopp-verden
lydartikler-fra-aftenposten
dine-penger-pengeradet
e24-podden
rss-penger-polser-og-politikk
rss-borsmorgen-okonominyhetene
kommentarer-fra-aftenposten
pengepodden-2
finansredaksjonen
utbytte
pengesnakk
tid-er-penger-en-podcast-med-peter-warren
morgenkaffen-med-finansavisen
rss-markedspuls-2
stormkast-med-valebrokk-stordalen
livet-pa-veien-med-jan-erik-larssen
rss-investering-gjort-enkelt
rss-fri-kontantstrom
okonomiamatorene
paretopodden