JSJ 337: Microstates.js – Composable State Primitives for JavaScript with Charles Lowell & Taras Mankovski
JavaScript Jabber30 Loka 2018

JSJ 337: Microstates.js – Composable State Primitives for JavaScript with Charles Lowell & Taras Mankovski

Panel:
  • Aimee Knight
  • Charles Max Wood
  • Joe Eames
  • AJ O’Neil
  • Chris Ferdinandi
Special Guests: Charles Lowell (New Mexico) & Taras Mankovski (Toronto)In this episode, the panel talks with two special guests Charles and Taras. Charles Lowell is a principle engineer at Frontside, and he loves to code. Taras works with Charles and joined Frontside, because of Charles’ love for coding. There are great personalities at Frontside, which are quite diverse. Check out this episode to hear about microstates, microstates with react, Redux, and much more!Show Topics:1:20 – Chuck: Let’s talk about microstates – what is that?1:32 – Guest: My mind is focused on the how and not the what. I will zoom my mind out and let’s talk about the purposes of microstates. It means a few things. 1.) It’s going to work no matter what framework you are using. 2.) You shouldn’t have to be constantly reinventing the wheel. React Roundup – I talked about it there at this conference. Finally, it really needs to feel JavaScript. We didn’t want you to feel like you weren’t using JavaScript. It uses computer properties off of those models. It doesn’t feel like there is anything special that you are doing. There are just a few simple rules. You can’t mutate the state in place. If you work with JavaScript you can use it very easily. Is that a high-level view?7:13 – Panel: There are a lot of pieces. If I spoke on a few specific things I would say that it enables programming with state machines.7:42 – Panel: We wanted it to fell like JavaScript – that’s what I heard.7:49 – Aimee: I heard that, too.7:59 – Guest.8:15 – Aimee: Redux feels like JavaScript to me.8:25 – Guest: It’s actually – a tool – that it feels natural so it’s not contrived. It’s all JavaScript.8:49 – Panel.9:28 – Guest: Idiomatic Ember for example. Idiomatic in the sense that it gives you object for you to work with, which are simple objects.10:12 – Guest: You have your reducers and your...we could do those things but ultimately it’s powerful – and not action names – we use method names; the name of the method.11:20 – Panel: I was digging through docs, and it feels like NORMAL JavaScript. It doesn’t seem like it’s tied to a certain framework or library platform?11:45 – Guest: Yes, we felt a lot of time designing the interfaces the API and the implementation. We wanted it to feel natural but a tool that people reach for.(Guest continues to talk about WHY they created microstates.)Guest: We wanted to scale very well what you need when your needs to change.13:39 – Chuck: I have a lot of friends who get into React and then they put in Redux then they realize they have to do a lot of work – and that makes sense to do less is more.14:17 – Guest: To define these microstates and build them up incrementally...building smaller microstates out of larger ones.Guest continued: Will we be able to people can distribute React components a sweet array of components ready for me to use – would I be able to do the same for a small piece of state? We call them state machines, but ultimately we have some state that is driving it. Would we be able to distribute and share?16:15 – Panel: I understand that this is tiny – but why wouldn’t I just use the native features in specific the immutability component to it?16:42 – Guest: I’m glad you asked that question. We wanted to answer the question...Guest: With microstates you can have strict control and it gives you the benefit of doing sophisticated things very easily.18:33 – Guest: You mentioned immutability that’s good that you did. It’s important to capture – and capturing the naturalness of JavaScript. It’s easy to build complex structures – and there is an appeal to that. We are building these graphs and these building up these trees. You brought up immutability – why through it away b/c it’s the essence of being a developer. If you have 3-4-5 levels of nesting you have to de-structure – get to the piece of data – change it – and in your state transition 80% of your code is navigating to the change and only 20% to actually make the change. You don’t have to make that tradeoff.21:25 – Aimee: The one thing I like about the immutability b/c of the way you test it.21:45 – Guest: There a few things you can test. 23:01 – Aimee: You did a good job of explaining it.23:15 – Guest: It makes the things usually hard  easy! With immutability you can loose control, and if that happens you can get so confused. You don’t have a way to have a way to navigate to clarity. That’s what this does is make it less confusing. It gives you order and structure. It gives you a very clear path to do things you need to do. If there is a property on your object, and if there is a way to change it...25:29 – Guest: The only constant is change no matter what framework you are working on.24:46 – Chuck: We are talking about the benefits and philosophy. What if I have an app – and I realize I need state management – how do I put microstates into my app? It’s using Angular or React – how do I get my data into microstates?26:35 – Guest: I can tell you what the integration looks like for any framework. You take a type and you passed that type and some value to the create function so what you get is a microstate.(The Guest continues diving into his answer.)28:18 – Guest: That story is very similar to Redux, basically an event emitter. The state changes on the store.Maybe this is a good time to talk about the stability benefits and the lazy benefits because microstates is both of those things.Stability – if I invoke a transition and the result is unchanged – same microstate – it doesn’t emit an event. It recognizes it internally. It will recognize that it’s the same item. Using that in Ember or Redux you’d have to be doing thousands of actions and doing all that computation, but stability at that level.Also, stability in the sense of a tree. If I change one object then that changes it won’t change an element that it doesn’t need to change.31:33 – Advertisement: Sentry.io32:29 – Guest: I want to go back to your question, Chuck. Did we answer it?32:40 – Chuck: Kind of.32:50 – Guest.32:59 – Guest: In Angular for example you can essentially turn a microstate...33:51 – Guest: You could implement a connect, too. Because the primitive is small – there is no limit.34:18 – Chuck summarizes their answers into his own words.34:42 – Guest: If you were using a vanilla React component – this dot – I will bind this. You bind all of these features and then you pass them into your template. You can take it as a property...those are those handlers. They will perform the transition, update and what needs to be updated will happen.35:55 – Chuck: Data and transitions are 2 separate things but you melded them together to feel like 1 thing. This way it keeps clean and fast.36:16 – Guest: Every framework helps you in each way.Microstates let’s you do a few things: the quality of your data all in one place and you can share.38:12 – Guest: He made and integrated Microstates with Redux tools.38:28 – Guest talks about paths, microstates to trees.39:22 – Chuck.39:25 – Panel: When I think about state machines I have been half listening / half going through the docs. When I think of state machines I think about discreet operations like a literal machine. Like a robot of many steps it can step through. We have been talking about frontend frameworks like React - is this applicable to the more traditional systems like mechanical control or is it geared towards Vue layered applications?40:23 – Guest: Absolutely. We have BIG TEST and it has a Vue component.41:15 – Guest: when you create a microstate from a type you are creating an object that you can work with.42:11 – Guest: Joe, I know you have experience with Angular I would love to get your insight.42:33 – Joe: I feel like I have less experience with RX.js. A lot of what we are talking about and I am a traditionalist, and I would like you to introduce you guys to this topic. From my perspective, where would someone start if they haven’t been doing Flux pattern and I hear this podcast. I think this is a great solution – where do I get started? The official documents? Or is it the right solution to that person?43:50 – Guest: Draw out the state machine that you want to represent in your Vue. These are the states that this can be in and this is the data that is required to get from one thing to the other. It’s a rope process. The arrow corresponds to the method, and...44:49 – Panel: It reminds me back in the day of rational rows.44:56 – Guest: My first job we were using rational rows.45:22 – Panelist: Think through the state transitions – interesting that you are saying that. What about that I am in the middle – do you stop and think through it or no?46:06 – Guest: I think it’s a Trojan horse in some ways. I think w

Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

Jaksot(735)

Everything Remult with Noam Honig and Yoni Rapoport - JSJ 579

Everything Remult with Noam Honig and Yoni Rapoport - JSJ 579

Noam Honig is the Founder & CEO of Firefly Migration. Yoni Rapoport is a CTO at Firefly Migration. They join the show to talk about "Remult". It builds Full-stack, End-to-end Type-safe CRUD Apps without the Boilerplate. They dive into how it functions in your apps and its useful features. SponsorsChuck's Resume Template Developer Book ClubBecome a Top 1% Dev with a Top End Devs MembershipLinksRemultremultShort demo videoIntro blog postJS meetup talkTwitter: @RemultJsRemult | YouTubeSocialsLinkedIn: Yoni RapoportTwitter: @YoniRapoportLinkedIn: Noam HonigTwitter: @noamhonigPicksDan - The SolidJS April 1st tweetNoam - Thunder ClientYoni - Vite Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

25 Huhti 20231h 20min

Jason Weimann - Learn Video Game Development with Chuck - BONUS

Jason Weimann - Learn Video Game Development with Chuck - BONUS

Jason Weimann is a Developer and Instructor. He returns to the show with Chuck to talk about video game creation. He shares his experiences as a developer and dives into his courses wherein he gives beginners and aspiring developers a walk-through of the world of creating games. LinksGame development courses & tutorialsProgrammer Course – game.coursesSocialsTwitter: @jweimannSupport this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

20 Huhti 202350min

TanStack Router with Tanner Linsley -  JSJ 578

TanStack Router with Tanner Linsley - JSJ 578

Tanner Linsley is the Co-Founder & VP of UI / UX at Nozzle. He joins the show to talk about TanStack Router. TanStack is an Open-source software for building better UI and UX. They talk about the vital role that a "router" plays in the architecture of a web application. Moreover, Tanner shares why he developed his own router and explains the Type safe routing. SponsorsChuck's Resume Template Raygun - Application Monitoring For Web & Mobile AppsBecome a Top 1% Dev with a Top End Devs MembershipLinksTanStack Router (beta)SocialstannerlinsleyLinkedIn: Tanner LinsleyTwitter: @tannerlinsleyPicksAJ - PowerEdge R720 rack server detailsCharles - Between Two Castles of Mad King LudwigDan - The Bastard Operator From Hell Dan - Demonstrating democracy in Israel Dan - Ongoing war in UkraineSteve - How John Glenn’s $40 Camera Forced NASA to Rethink Space MissionsTanner - TonalTanner - Metroid Prime™ Remastered for Nintendo SwitchSupport this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

18 Huhti 20231h 18min

Reverse Engineering with Joyce Lin - JSJ 577

Reverse Engineering with Joyce Lin - JSJ 577

Joyce Lin is the Head of Developer Relations at Postman. She returns to the show to discuss Reverse Engineering. They talk about APIs, API security, proxy tools and explain its relevance in your applications. They dive into the process, purpose, and significance of Reverse Engineering. Additionally, they talk about API hacking.Sponsors Chuck's Resume Template Developer Book ClubBecome a Top 1% Dev with a Top End Devs MembershipLinksPostman | YouTubeSocialsmeowsergirl.comGitHub: loopDeliciousLinkedIn: Joyce LinTwitter: @PetuniaGrayPicksAJ - Phone Strap Grip Holder FingerCharles - The CrewCharles - Battlestar Galactica Charles - Study: 'Dad jokes' help kids develop into healthy adultsDan - War in UkraineDan - Daylight savings Steve - Adult Blond Chick Magnet WigSupport this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

11 Huhti 20231h 16min

How Do You Stop Hating Your Job? - BONUS

How Do You Stop Hating Your Job? - BONUS

Are you dissatisfied with your job? Sam Feeney helps organizations improve employee engagement, increase retention, and reinvent hiring while helping individuals (re)discover career satisfaction in their current roles. He joins the show alongside Chuck Wood to tackle altering the way you perceive your job and talk about Career satisfaction.On YouTubeHow Do You Stop Hating Your Job? - BONUSSocialsLinkedIn: Sam FeeneySupport this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

11 Huhti 202344min

Signals: What You Should Know with Tejas Kumar - JSJ 576

Signals: What You Should Know with Tejas Kumar - JSJ 576

Tejas Kumar is a Chief Developer Advocate. He joins the show alongside AJ and Chuck to talk about Signals. He begins by explaining what "Signals" is. He delves into its advantages, benefits, features, and what it may provide for the applications. He shares his experience in using it. Moreover, they share their perspective on Signals and React Framework. SponsorsChuck's Resume Template Raygun - Application Monitoring For Web & Mobile AppsBecome a Top 1% Dev with a Top End Devs MembershipSocialsTwitter: @TejasKumar_YouTube: Tejas KumarPicksAJ - GitHub - callbag/callbag: 👜 A standard for JS callbacks that enablesAJ - GitHub - staltz/callbag-basics: 👜 Tiny and fast reactive/iterable programmingAJ - Talkbacks: A Callback-based Event Spec w/ Travis Barney - Jan 19, 2023AJ - The Legend of Zelda: Breath of the Wild | Deku DealsAJ - Amazon.com: The Ballad of Songbirds and Snakes: A Hunger Games NovelChuck - The Crew: The Quest for Planet NineChuck - Star Trek: Picard (Official Site) Watch on Paramount PlusChuck - Circle: The all-in-one community platform for creators and brandsChuck - Zapier | Automation that moves you forwardTejas - Flightcontrol — AWS Without PainTejas - WorkerConf 2022Tejas - The Last of Us (TV Series 2023Support this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

5 Huhti 20231h 23min

The Best of JavaScript and Ruby in 2023 - JSJ 575

The Best of JavaScript and Ruby in 2023 - JSJ 575

Hosts of the Ruby Rogues Podcast, Dave Kimura and Valentino Stoll join JavaScript Jabber Panel on this week's crossover episode. They talk about both of the framework's useful features and how the JavaScript framework may be applied when creating Ruby applications. Additionally, they tackle each of their advantages and disadvantages.On YouTubeThe Best of JavaScript and Ruby in 2023 - JSJ 575Sponsors Chuck's Resume Template Developer Book ClubBecome a Top 1% Dev with a Top End Devs MembershipSocialsTwitter: @thecodenamevTwitter: @kobaltzSupport this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

28 Maalis 20231h 13min

Functional Programming with Ian Schwartz - JSJ 574

Functional Programming with Ian Schwartz - JSJ 574

Ian Schwartz is a professional software developer. He joins the show to talk about Functional Programming. He begins by defining functional programming as well as some of the key terms they use. Additionally, they dive into the different Algebraic Data Types and React.Sponsors Chuck's Resume Template Developer Book ClubBecome a Top 1% Dev with a Top End Devs MembershipLinksFunctional Wrappers for State ManagementSchwartz.World!GitHub: ianschwartzPicksAJ - Callbags w/ Travis BarneyAJ - No one can explain MonadsAJ - The Lost Metal (Mistborn Era 2)AJ - The Knife of Never Letting Go (Chaos Walking)AJ - The Ballad of Songbirds and Snakes (Hunger Games)Chuck - The Quacks of Quedlinburg: MegaBoxChuck - The Pragmatic ProgrammerChuck - PipelinePRODan - My appearance as a guest on the JavaScript Jam Twitter spaceDan - The ongoing war in UkraineIan - LambdaCast on Apple PodcastsSupport this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

21 Maalis 20231h 21min

Suosittua kategoriassa Liike-elämä ja talous

sijotuskasti
psykopodiaa-podcast
mimmit-sijoittaa
rss-rahapodi
ostan-asuntoja-podcast
rss-lahtijat
taloudellinen-mielenrauha
io-techin-tekniikkapodcast
oppimisen-psykologia
pomojen-suusta
hyva-paha-johtaminen
rahapuhetta
rss-rahamania
inderespodi
sijoituspodi
rss-h-asselmoilanen
rss-markkinointiradio
kasvun-kipuja
rss-startup-ministerio
rss-yritys-ja-erehdys