Sometimes it's good to take a look back, and recall what you have done. Today I would try to remember all the things I've created past year, almost like I just did for my performance review at the work, but related to open source this time. Only about the stuff you might be interested in.
Why today? Well, it's my birthday!
- period: 9 August 2018 -> 9 August 2019
- 26 articles, 4 are not technical - an article every two weeks
- 1618 commits - 4 commits per day!
- 92 PRs and 124 issues created
- ~20 new projects, 161 total
- replaced gaearon/react-side-effect by theKashey/react-clientside-effect to make my "singleton" components, like react-focus-lock more SSR-friendly, and more lightweight.
- team up-ed with react-powerplug. An awesome headless state containers, which were the hooks for be before the hooks. I saved so much time!
- created react-push-channel to solve "Helmet" rendering for async SSR. Basically that's a callbacks in a declarative form.
Article introducing partial hydration and progressive code splitting - react-imported-component and react-prerendered-component I've created a bit before.
Case study for react-remock and it's usage with shallow/mount testing. An easy way to handle render props and sugar.
My first 📷 blog post - one day of my life in beautiful Australia :)
My testament for Redux. You probably need it.
- jumped into React/Redux/Context optimisations. Take aways are with-known-usage - a simple object keys usage tracker and react-event-horizon - just a declarative event suspender.
- published plimited - a small promised based connection pool I've created to control Puppeteer for our needs. Haven't seen anything more usable since then. > "Connection Pool quiz" was a common question in our technical interviews. A saw a few dozen times how interviewees were trying to implement it in 10 minutes, and spent a few days to do the same.
What is immutability and why do you need it?
- created runtime-compress-loader to remove burden of babel(or ts) helpers inlined into the every file. Result is a smaller bundle size, and hotter (faster) code!
- created jsx-compress-loader to replace all calls to
$JSX$. Result is a smaller bundle size and a bit better runtime performance.
- created react-shallow-context shallow React.Context, which is a good solution to a few common Context related problems
Anton KorzunovReact has PureComponents and shouldComponentUpdate.
ContextAPI... also supports this stuff - via the seconds of React.createContext
Let me help you here - React-shallow-context will do the job for you.
Instead of memoization - just use createPureContext02:17 AM - 04 Oct 2018
- also created a very useful react-event-injector to passive (or aggressive) events. And never used since then.
- extracted aria-hidden code from reach-ui/smooth-ui to... aria-hidden.
- opened React RFC about controlled type comparison. All hot-reloading today is working literally on that principle.
A "mocking" way to do your SSR better. Or just possible. Everything I know about dependency, and module management.
- no new projects :)
react-remock to control your storybook. Because you can, not because you should.
and no new projects again
🙀 JOINED DEV TO 🙀
React-Hot-Loader 4.6 was a big step forward(as I thought these days).
Testing Finite React Components. My main approach for designing since then.
- created react-remove-scroll as a smaller version of react-scroll-locky. Created not for fun, but for
- created devolution - a babel for your bundle. A super easy (and very fast) way to ship modern and legacy bundles, as well as use es6 in node_modules.
- created used-styles, a tool to extract, well, used styled during SSR process. One more issue to solve and it would be awesome!
- created kashe, as weak map based memoization library.
- popularised multiple-entry-points-example pattern to ship :) multiple entry points.
Mocking is a powerful pattern, here is why:
Overview of all client side and server-side code splitting solutions.
CSS properly ordering could be hard, and there is a simple way, or let's call it a pattern, to fix it.
- tried to created useReselect - a
kashepowered version of
- with help of my friend Dai-Shi made proxyequal
Super fast synchronous client/server side cache for React components.
Modern memoization is a hard thing. A big case study about it.
Object key usage based memoization (like MobX) testimonial.
proxyquire are bad, and why
rewiremock is slightly better.
- published sidecar pattern
- open sourced my-sql-files - mysql-based small file storage
- and made rewiremock ESM compatible
The SideCar (Batman/Robin as I called it) code splitting pattern
react-remock to make snapshot testing more bearable
A single example how browser-driven "html state" could replace js-driven "component state".
- created use-callback-ref. Should be in react standards!
- fixed size-limit a bit
sidecarto make react-focus-lock and friends at least twice smaller.
useRef, too many refs, and all are different.
useCallbackRef this time.
📷 Report from React Sydney
📷 Report from SydJS
- no new (interesting) projects
A never-ending article about fighting complexity we created for ourselves.
There are no such things as unit and integration tests. It requirement and implementation tests.
📷 Report from React Sydney
📷 Report from React Sydney