2024.06.03 - How we used esbuild to reduce our browser extension build times by 90%
Ping Xia
Title: 2024.06.03 – How We Used esbuild to Cut Our Browser Extension Build Times by 90%
GraphQL & DRY & Apple Design Award & 养心 (nurturing the heart) & 活在当下 (living in the moment) & 造化自游 (embracing natural spontaneity)
This Week’s Highlights
How we used esbuild to reduce our browser extension build times by 90% https://blog.1password.com/new-extension-build-system/
The system we use internally to build the code behind our browser extension was put together over half a decade ago. While we were able to iteratively grow it over time to meet our needs, it became slower and slower in the process. Let’s give it a much‑needed upgrade!
Why, after 6 years, I’m over GraphQL https://bessey.dev/blog/2024/05/24/why-im-over-graphql/
However, as the years have gone on and I have had the opportunity to deploy to environments where non‑functional requirements like security, performance, and maintainability were more of a concern, my perspective has changed. In this article I would like to take you through why today, I would not recommend GraphQL to most people, and what I think are better alternatives. Related: Want Out of React Complexity? Try Vue’s Progressive Framework.
Don’t DRY Your Code Prematurely https://testing.googleblog.com/2024/05/dont-dry-your-code-prematurely.html
Many of us have been told the virtues of “Don’t Repeat Yourself” or DRY. Pause and consider: Is the duplication truly redundant or will the functionality need to evolve independently over time? Applying DRY principles too rigidly leads to premature abstractions that make future changes more complex than necessary. Consider carefully if code is truly redundant or just superficially similar.
Introducing the 2024 Apple Design Award finalists https://developer.apple.com/news/?id=ji7uibs2
Every year, the Apple Design Awards recognize innovation, ingenuity, and technical achievement in app and game design.
Developers get by with a little help from AI: Stack Overflow knows code‑assistant pulse survey results https://stackoverflow.blog/2024/05/29/developers-get-by-with-a-little-help-from-ai-stack-overflow-knows-code-assistant-pulse-survey-results/
While GenAI has been dominating the tech news cycles for a while, does all the AI hype translate into usage for professional developers? We tapped the Stack Overflow community for answers (I hear they like answering questions). Over 1,700 people told us what code‑assistant tools they are using, how they feel about them, and whether they feel more productive as a result. Related:
- 浏览器插件是 Agents 类产品的最佳入口形式之一
- Llama 3‑V: Matching GPT‑4‑V with a 100× smaller model and $500
- What We Learned from a Year of Building with LLMs
Deep Reads
Data Fetching Patterns in Single‑Page Applications https://martinfowler.com/articles/data-fetch-spa.html
When a single‑page application needs to fetch data from a remote source, it must stay responsive and give feedback during often‑slow queries. Five patterns help with this: Asynchronous State Handler (wraps queries with meta‑queries for state), Parallel Data Fetching (minimizes wait time), Fallback Markup (specifies fallback displays in markup), Code Splitting (loads only needed code), and Prefetching (gathers data before it’s needed to reduce latency).
Old Dogs, New CSS Tricks https://mxb.dev/blog/old-dogs-new-css-tricks/
A lot of new CSS features have shipped in recent years, but actual usage is still low. While there are many reasons for the slow adoption, I think one of the biggest barriers is our own brains.
The Gap https://ishadeed.com/article/the-gap/
An exploration of the pain points that CSS gap solves.
Engineering for Slow Internet https://brr.fyi/posts/engineering-for-slow-internet
How to minimize user frustration in Antarctica.
Unexpected Anti‑Patterns for Engineering Leaders — Lessons From Stripe, Uber & Carta https://review.firstround.com/unexpected-anti-patterns-for-engineering-leaders-lessons-from-stripe-uber-carta/
Will Larson, a veteran engineering leader and CTO at Carta, shines a light on three conventional engineering‑management “anti‑patterns” for closer inspection.
User Research Is Storytelling https://alistapart.com/article/user-research-is-storytelling/
Now, I realize that there’s an element of theater to UX—I hadn’t really considered it before, but user research is storytelling. To get the most out of user research, you need to tell a good story that brings stakeholders—the product team and decision‑makers—along and gets them interested in learning more.
What Happens to Old Software? https://www.simplethread.com/what-happens-to-old-software/
Old software needs love and guidance. Sometimes that means careful, vigilant protection, with layers of abstraction and modernization accreted around a highly conserved core. More commonly, it means shepherding it as the community migrates to greener pastures and newer features. It can get lonely and dangerous if you’re left behind, but catching up isn’t impossible; a well‑caulked wagon and a solid test suite can help you traverse major version bumps and get up to date quickly.
We’re Watching Facebook Die https://www.wheresyoured.at/were-watching-facebook-die/
Meta has become a company that shows utter contempt for its users, turning products like Facebook and Instagram into algorithmic nightmares that undermine their core purpose—connecting people—while intentionally allowing malignant actors like anti‑vaxxers and spammers to thrive so that the numbers behind these arbitrary metrics go up.
Fresh Finds
Here’s What We Learned From the First State of HTML Survey All the Flutter news from a busy Google I/O 2024 Deno 1.44: Private npm registries, improved Node.js compatibility, and performance boosts Milo: A new HTTP parser for Node.js
aem1k: JavaScript Hacks and Creative Coding ShareDB 5.0: Real‑time database backend based on Operational Transformation Drizzle: Headless ORM for Node.js, TypeScript, and JavaScript Crawlee: A web‑scraping and browser‑automation library for Node.js to build reliable crawlers react‑force‑graph: React component for 2D, 3D, VR, and AR force‑directed graphs
Originally written by Ping Xia (平侠) and published in Chinese on Web技术周刊 (Web Tech Weekly). Translated and adapted for DriftSeas with permission.
Sources & References
- [1]https://blog.1password.com/new-extension-build-system/
- [2]https://bessey.dev/blog/2024/05/24/why-im-over-graphql/
- [3]Want Out of React Complexity? Try Vue’s Progressive Framework
- [4]https://testing.googleblog.com/2024/05/dont-dry-your-code-prematurely.html
- [5]https://developer.apple.com/news/?id=ji7uibs2
- [6]https://stackoverflow.blog/2024/05/29/developers-get-by-with-a-little-help-from-ai-stack-overflow-knows-code-assistant-pulse-survey-results/
- [7]浏览器插件是 Agents 类产品的最佳入口形式之一
- [8]Llama 3‑V: Matching GPT‑4‑V with a 100× smaller model and $500
- [9]What We Learned from a Year of Building with LLMs
- [10]https://martinfowler.com/articles/data-fetch-spa.html
- [11]https://mxb.dev/blog/old-dogs-new-css-tricks/
- [12]https://ishadeed.com/article/the-gap/