2018.02.05
Ping Xia
Title: 2018.02.05
Deep Reading
ECMAScript 2018: the final feature set http://2ality.com/2017/02/ecmascript-2018.html The feature set of ECMAScript 2018 was finalized during the latest TC39 meeting (23‑25 January 2018). This blog post describes it. Also attached: Optimizing hash tables: hiding the hash code
V8 release v6.5 https://v8project.blogspot.co.uk/2018/02/v8-release-65.html Improves WebAssembly and array‑iteration performance
React's new Context API https://tinyletter.com/kentcdodds/letters/react-s-new-context-api The first result of that search is showing “Why Not To Use Context”. Doesn’t inspire a whole lot of confidence in the context API. To make things even more concerning, that section says: If you want your application to be stable, don’t use context. It is an experimental API and it is likely to break in future releases of React. Also attached: react‑contextual – Tiny helper around React’s new context API
Xi: an editor for the next 20 years https://www.recurse.com/events/localhost-raph-levien Xi is a project to build a modern text editor with uncompromising performance. Its thoroughly async, loosely coupled design promises speed and rich extensibility, but creates interesting engineering challenges, requiring advanced algorithms and data structures. In addition to pushing the state of computer science for text handling, the project also seeks to build an open‑source community for teaching and learning, and working together to create a joyful editing experience.
A Comprehensive Guide To Product Design https://www.smashingmagazine.com/2018/01/comprehensive-guide-product-design/ In this article, I’ll focus on the main principles and approaches that will help you design great products. I’ll start with the big picture (what product design is all about) and work down to the individual phases of product design (research, ideation, testing, and validation).
Sketching in the Browser https://medium.com/seek-blog/sketching-in-the-browser-33a7b7aa0526 For companies working with design systems, it seems our industry is stuck with design tools that are essentially built for the wrong medium—completely unable to feed our development work back into the next round of design. Luckily, this is all about to change.
ES6 Class Extends Performance Analysis https://zhuanlan.zhihu.com/p/33538431 Recently I was optimizing the performance of Hessian serialization and accidentally discovered that the ES6 class inheritance syntax isn’t very fast. I originally tried to override some methods of hessian.EncoderV2 for optimization, but the performance actually dropped. Then I commented out all the overriding code, leaving only the inheritance structure, and the slowdown persisted, so I blamed the ES6 class and extends syntax.
Deep‑copying in JavaScript https://dassur.ma/things/deep-copy/ Which method has the best performance?
The Dramatic Journey of Front‑End Characters https://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651227724&idx=1&sn=0de640c1a8cae680b1dc599b56029ecb When people think of text, they usually picture neatly arranged characters. But the world is full of oddities—there are over 6,800 writing systems, and some truly bizarre symbols appear. The so‑called “Universal Code” Unicode also encounters some quirky cases when encoding and rendering characters.
A Casual Talk on Distributed Systems, the Byzantine Generals Problem, and Blockchain https://mp.weixin.qq.com/s/tngWdvoev8SQiyKt1gy5vw Blockchain has been a hot topic lately. Some want to use it to change the world; others want to exploit it. Today we’ll focus purely on the technology. From a technical standpoint, blockchain is a technology related to distributed systems. How does it connect with various distributed‑system concepts? In this article we’ll discuss core distributed‑system issues and concepts, and then follow a logically consistent line of thought to examine blockchain technology.
Tencent Social Network Image Bandwidth Optimization Evolution https://mp.weixin.qq.com/s?__biz=MTEwNTM0ODI0MQ==&mid=2653435164&idx=1&sn=70f563a0717b6377d19644264111e6f1 To further reduce operational bandwidth costs, lower user traffic, and speed up page loads, the social‑network CDN team has kept pace with industry image‑optimization trends, introducing WebP, SharpP, adaptive resolution, Guetzli, and other compression techniques into production. After more than three years of cross‑department collaboration, a comprehensive image‑compression operation system covering all image types (JPEG, JPG, PNG, WebP, GIF) and multiple scenarios has been formed, suitable for all device types and saving several hundred gigabytes of external bandwidth each year.
Classic Distributed‑System Architecture Resources https://mp.weixin.qq.com/s?__biz=MzIwMzg1ODcwMw==&mid=2247487398&idx=1&sn=c769d6cf1fbc0758dfcdf7ea54bd597b A list of foundational distributed‑system theory, books, and materials recommended by “Mouse Brother”. Also attached: Microservice Architecture Technology Stack Selection Guide
Visual Explanation of How Compression Algorithms Work http://blog.jobbole.com/113505/ Whether you’ve used compression software for years or never thought about it, this article tries to explain what actually happens to data when you compress a file or transmit a video. We’ll explore the answers to these important questions and, in the process, may raise some new ones.
The Increasing Nature of Frontend Complexity https://blog.logrocket.com/the-increasing-nature-of-frontend-complexity-b73c784c09ae This is a hard time to be a frontend developer. The technology is moving so fast it’s hard to keep up, the ecosystem is fragmented, and there is tremendous pressure for even individuals to meet and exceed the user‑experience standards set by massive billion‑dollar companies. Also attached: Challenges for web developers
Stimulus 1.0: A modest JavaScript framework for the HTML you already have https://m.signalvnoise.com/stimulus-1-0-a-modest-javascript-framework-for-the-html-you-already-have-f04307009130 We write a lot of JavaScript at Basecamp, but we don’t use it to create “JavaScript applications” in the contemporary sense. All our applications have server‑side rendered HTML at their core, then add sprinkles of JavaScript to make them sparkle.
10 Things I Love About Vue https://medium.com/@dalaidunc/10-things-i-love-about-vue-505886ddaff2 In this blog post, I aim to explore why Vue is the framework for me. I choose it above any other that I have tried. Perhaps you will agree with some of my points, but at the very least I hope to give you some insight into what it is like to develop modern JavaScript applications with Vue.
Efficiently Loading Inlined JSON Data https://ofs.quip.com/blog/quip-efficiently-loading-inlined-json-data By giving the JSON data a non‑standard type in the <script> tag, the browser won’t try to parse it as JavaScript (it’ll be treated as an “inert” data block). We can then get the raw text and parse it more efficiently using JSON.parse. For my Quip account loading a large document (the HTML response is 550 KB) this takes the end‑to‑end (navigation‑to‑render) time from 1,830 ms to 1,758 ms based on simple benchmarking. Also attached: Fast JSON API serialization with Ruby on Rails
Sharing Code Between Web & Electron Apps https://slack.engineering/interops-labyrinth-sharing-code-between-web-electron-apps-f9474d62eccc In maintaining one of the first Electron apps, we’ve navigated this labyrinth in the quest for a more performant, maintainable, and secure hybrid desktop app, and we’d like to help you avoid some of the pitfalls we’ve found along the way.
Debugging JavaScript With A Real Debugger You Did Not Know You Already Have https://www.smashingmagazine.com/2018/02/javascript-firefox-debugger/ console.log can tell you a lot about your app, but it can’t truly debug your code. For that, you need a full‑fledged JavaScript debugger.
(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]http://2ality.com/2017/02/ecmascript-2018.html
- [2]Optimizing hash tables: hiding the hash code
- [3]https://v8project.blogspot.co.uk/2018/02/v8-release-65.html
- [4]https://tinyletter.com/kentcdodds/letters/react-s-new-context-api
- [5]react‑contextual – Tiny helper around React’s new context API
- [6]https://www.recurse.com/events/localhost-raph-levien
- [7]https://www.smashingmagazine.com/2018/01/comprehensive-guide-product-design/
- [8]https://medium.com/seek-blog/sketching-in-the-browser-33a7b7aa0526
- [9]https://zhuanlan.zhihu.com/p/33538431
- [10]https://dassur.ma/things/deep-copy/
- [11]https://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651227724&idx=1&sn=0de640c1a8cae680b1dc599b56029ecb
- [12]https://mp.weixin.qq.com/s/tngWdvoev8SQiyKt1gy5vw