virt-v2v
why-did-you-render
virt-v2v | why-did-you-render | |
---|---|---|
4 | 47 | |
69 | 10,799 | |
- | 0.6% | |
8.7 | 7.1 | |
9 days ago | 6 days ago | |
OCaml | JavaScript | |
GNU General Public License v3.0 only | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
virt-v2v
-
Two Years of OCaml
In virt-v2v we eventually enforced that every module file also has a corresponding interface file: https://github.com/libguestfs/virt-v2v/blob/master/check-mli...
-
Why and How We Retired Elm at Culture Amp
You can look at the project yourself: https://github.com/libguestfs/virt-v2v I've been writing OCaml for 20+ years and C for 40 years.
-
Multicore OCaml: April 2021
I develop in OCaml from time to time, and it's pretty practical. Separate compilation, makes small-ish binaries that most people wouldn't know weren't written in C/C++, easily call out to C if you need to. We steer clear of the more complex language features like functors because they confuse most programmers.
Here's an example of one very widely used production application: https://github.com/libguestfs/virt-v2v/tree/master/v2v
-
Traversing nested data-structures in various languages
XPath is the real killer feature for XML. I don't think it's possible to use it in this particular example, but in the more generally useful cases where you want to pull (eg) all subnodes with key matching a particular string, XPath is great.
Here's it being used in real code (search for "xpath_"):
https://github.com/libguestfs/virt-v2v/blob/master/v2v/parse...
https://github.com/libguestfs/virt-v2v/blob/master/v2v/parse...
why-did-you-render
- Too many rerenders in react?
- Lag issues with RN
- After a year developing with react, I think I've been doing all wrong
- How can I stop a component from reloading all the time?.
-
How to speed up React Native screen when full of TextInput?
Check out why-did-you-render. It may tell you some more information.
-
Why and How We Retired Elm at Culture Amp
It's a combination of many things, but imo one of the worst is all the footguns regarding state and the rerenders they cause
https://emnudge.dev/blog/react-hostage
It's so easy, that we monkey patch react to debug it https://github.com/welldone-software/why-did-you-render
Plus the vdom... Isn't great, the bundle size puts react at an inherit disadvantage, and the community has a knack for over reliance on bloated packages
-
7 Proven Practices to Boost Development Speed and Project Quality
When we implemented the MVP of the fintech app, we had a quite complicated form. At that time, I was still young and inexperienced. And eventually, we realized that our project was slowing down. We had to spend additional hours figuring out the reason. We had many unnecessary re-renders because we ignored basic rules related to props in React. I wanted to do everything possible to avoid such situations in the future. So, I added to the project linters like this and an additional starting configuration to package.json to run why-did-you-render. In short, this plugin issues a warning if something is re-rendered unnecessarily and suggests how to avoid it. Also, we included running Lighthouse in headless mode. Some people say that premature optimizations are bad, but for me, it's a principle: do it right from the start.
- Free code review
-
Is there a way to detect unwanted mutations in a React component?
maybe somethin like https://github.com/welldone-software/why-did-you-render
-
React Dev Tools: much worse experience with functions/hooks
This might help you out a bit.
What are some alternatives?
eioio - Effects-based direct-style IO for multicore OCaml
craco - Create React App Configuration Override, an easy and comprehensible configuration layer for Create React App.
ocaml-multicore - Multicore OCaml
use-what-changed - A React hook and an easy to use babel-pugin to debug various React official hooks
nested-data-structure-traversal
nextjs-rewrite-test
specter - Clojure(Script)'s missing piece
react-render-tracker - React render tracker – a tool to discover performance issues related to unintentional re-renders and unmounts
loom - Concurrency permutation testing tool for Rust.
react-devtools - An extension that allows inspection of React component hierarchy in the Chrome and Firefox Developer Tools.
ocaml-aeio - Asynchronous effect based IO
razzle - ✨ Create server-rendered universal JavaScript applications with no configuration