2018.09.17 - Next Generation Package Management
Ping Xia
Title: 2018.09.17 - Next Generation Package Management
Deep Reading
Next Generation Package Management https://blog.npmjs.org/post/178027064160/next-generation-package-management
What if installs were so fast they could happen in the background, just by using Node? What if every file in your dependencies could be guaranteed to be bit‑by‑bit identical to what’s on the registry? What if working on a new project was as simple as clone and run? What if your build tools got out of your way? Introducing tink, a proof‑of‑concept implementation of an install‑less installer. 另附:Yarn Plug'n'Play: Getting rid of node_modules
Introducing the React Profiler https://reactjs.org/blog/2018/09/10/introducing-the-react-profiler.html
React 16.5 adds support for a new DevTools profiler plugin. This plugin uses React’s experimental Profiler API to collect timing information about each component that’s rendered in order to identify performance bottlenecks in React applications. It will be fully compatible with our upcoming time‑slicing and suspense features. 另附:The Rise of Immer in React
Celebrating 10 years of V8 https://v8project.blogspot.com/2018/09/10-years.html
This month marks the 10‑year anniversary of shipping not just Google Chrome, but also the V8 project. This post gives an overview of major milestones for the V8 project in the past 10 years as well as the years before, when the project was still secret. 另附:10 years of Speed in Chrome、How we designed Chrome 10 years ago
Breaking the Deadlock Between User Experience and Developer Experience https://alistapart.com/article/breaking-the-deadlock-between-user-experience-and-developer-experience
It’s tempting to frame UX and DX as opposing forces in a zero‑sum game: for one to get better, the other needs to get worse. And in many apps, that certainly appears to be the case. DX at the expense of UX is a design problem. If software is designed to make developers’ lives easier without considering the user, it’s no wonder that problems arise later on.
ARKit: Applying Augmented‑Reality Tech to Meituan’s Food‑Delivery Business https://tech.meituan.com/def_ar.html
This article combines Meituan’s food‑delivery scenario with a location‑based (LBS) AR application. By using AR to show a merchant’s position relative to the user, it delivers an immersive, “being‑there” experience.
Experience‑Driven Refactoring Optimizations https://zhuanlan.zhihu.com/p/44203056
Front‑end refactoring engineers are a rare breed who care about code and user experience. Code optimization is hard, but there are plenty of performance‑testing tools to prove the gains. Experience, however, is harder to quantify. In this post I’ll use the “webnovel” PC site as a case study to show how to refactor from an experience perspective and how to use data to prove that your optimizations actually work.
How to Reduce Software Complexity http://www.ruanyifeng.com/blog/2018/09/complexity.html
John Ousterhout, a professor at Stanford’s Computer Science department and creator of the Tcl language, argues that the primary goal of software design is to reduce complexity. Complexity is anything that makes software hard to understand and modify. It mainly stems from two sources: ambiguous code meaning and inter‑dependencies.
What I Learned Creating Guitar Dashboard: SVG, TypeScript and Music Theory http://mikehadlow.blogspot.com/2018/09/what-i-learned-creating-guitar.html
Guitar Dashboard is a side project I’ve been working on intermittently over the past two years. It’s an open‑source web application intended as an interactive music‑theory explorer for guitarists that graphically links concepts such as scales, modes, and chords to the fretboard. This post outlines what I’ve learned, both technically and musically, while building Guitar Dashboard. Some parts will interest developers, others musicians, but there’s a sizable group—people like me—who sit at the intersection and will find it useful. 另附:Hacklily – sheet music editor
You‑Dont‑Need‑Momentjs https://github.com/you-dont-need/You-Dont-Need-Momentjs
A list of date‑fns or native functions you can use to replace moment.js, plus an ESLint plugin.
The 12 Things You Need to Consider When Evaluating Any New JavaScript Library https://medium.freecodecamp.org/the-12-things-you-need-to-consider-when-evaluating-any-new-javascript-library-3908c4ed3f49
How do you know if a new technology is worth investing time into? For this year’s State of JavaScript survey I wanted to dig deeper, not just which tools people use but why they use them. I turned personal preferences into hard data and created a 12‑point checklist covering the main aspects of picking and working with any technology.
Evolving Mobile Architecture at Reddit https://redditblog.com/2018/09/12/evolving-mobile-architecture-at-reddit/
This is the first in a series about the architectural work we’ve been doing on the Reddit iOS app. This part focuses on UI‑level changes, particularly our shift to a Model‑View‑Presenter (MVP) architecture.
What Makes ReasonML So Great? https://blog.logrocket.com/what-makes-reasonml-so-great-c2c2fc215ccb
ReasonML is a syntax extension for the OCaml language created by Facebook. Rather than inventing an entirely new language, Reason’s creators built on top of OCaml, a battle‑tested functional systems language that has been around since the late 1990s. 另附:Reason vs JavaScript.
Speedy Introduction to Web Workers https://auth0.com/blog/speedy-introduction-to-web-workers/
Learn how to use Web Workers in JavaScript to achieve parallel programming and perform multiple operations simultaneously instead of interleaving them. 另附 Auth0 practice: Our Engineering Experience with React and Storybook.
How Discord Handles Two and a Half Million Concurrent Voice Users Using WebRTC https://blog.discordapp.com/how-discord-handles-two-and-half-million-concurrent-voice-users-using-webrtc-ce01c3187429
From day one, we made deliberate engineering and product decisions to keep Discord well‑suited for voice chat while gaming with friends. Those choices let us scale massively with a small team and limited resources. This post gives a brief overview of the technologies Discord uses to make audio/video communication seamless.
Debugging Node.js Applications Using ndb https://nitayneeman.com/posts/debugging-nodejs-application-in-chrome-devtools-using-ndb/
Google Chrome Labs have improved our debugging experience by releasing a new debugger for Node.js. In this post we’ll cover the capabilities of ndb as a debugging tool.
Defining Role‑Based Security ACLs and Supporting Multitenancy in the Node.js StrongLoop LoopBack
(content truncated)
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.npmjs.org/post/178027064160/next-generation-package-management
- [2]Yarn Plug'n'Play: Getting rid of node_modules
- [3]https://reactjs.org/blog/2018/09/10/introducing-the-react-profiler.html
- [4]The Rise of Immer in React
- [5]https://v8project.blogspot.com/2018/09/10-years.html
- [6]10 years of Speed in Chrome
- [7]How we designed Chrome 10 years ago
- [8]https://alistapart.com/article/breaking-the-deadlock-between-user-experience-and-developer-experience
- [9]https://tech.meituan.com/def_ar.html
- [10]https://zhuanlan.zhihu.com/p/44203056
- [11]http://www.ruanyifeng.com/blog/2018/09/complexity.html
- [12]http://mikehadlow.blogspot.com/2018/09/what-i-learned-creating-guitar.html