In the last few days, I've been working hard on learning ReasonReact by creating a small project. I've learned a lot, but it has been quite frustrating, too. At the moment, I'm trying to set up form validation logic. ReasonReact is giving me the stink eye. I recently bought the book Learn Type-Driven Development by Yawar Amin. He is a helpful member of the community and seems to know his stuff.
I'm currently working on three different toy apps/learning projects: a Meetup clone in Svelte.js, an online store in React (with Redux, GraphlQL, etc.), and a simple todo with ReasonReact. It's interesting to see how different framework tackle state management, UI rendering and the complexity of front-end development. So far, I've found Svelte the easiest to grasp. React has the best documentation and the best ecosystem. ReasonReact is functional (OCaml with React bindings under the hood) and typed.
I'm trying to wrap my head around React‘s render props and Svelte‘s slots. Not much to write here, I still try to understand how it works. State Management in SPAs is quite complicated. There are a lot of solutions: passing props down, the Context API, the new useContext hook, state management libraries like Redux or MobX, state machines, etc. But you can also use component composition by rendering the children props.
Here are some things I've found useful this week or that I enjoyed: A web scraping guide for beginners, part 1 and part 2 A weird experiment: The Boost Your Coding Fu With VSCode and Vim Auditory Experience! An Audiobook? A Podcast?! Just Enough Erlang Truly reactive programming with Svelte 3.0 - this post shows what's exciting about Svelte.js 4 Rules for Intuitive UX - the minimum to get you started - a must read!
Today I listened to the Localhost.fm Podcast. The most recent episode with guest Chris Ferdinandi inspired me to take a look at Svelte.js again (as an alternative to React.js). So I played around a bit today and got stuck on my tool chain. Oops. I updated my blog posts about Prettier and ESLint for Svelte.js and Vim and Svelte.js. There were still some errors with ESLint thanks to missing parser options.
Here are some things I've found useful this week or that I enjoyed: The Architecture of Open Source Applications - some free books on architecture! Use Svelte with SASS/SCSS in VSCode - add SASS to your Svelte project An Introduction to Domain-Driven Design - DDD w/ TypeScript - provides a good overview on DDD How to make your NodeJS application or API secure - some beginner-friendly advice on how to tackle security Mastering Phoenix Framework - free online version of a guide to Phoenix with TDD Building a JSON API in Elixir with Phoenix 1.