Home

2018.12.24 - Google Tech Dev Guide

Pi

Ping Xia

March 21, 20226 min read

Title: 2018.12.24 - Google Tech Dev Guide

Deep Reading

V8 release v7.2 https://v8.dev/blog/v8-release-72 Embedded builtins are now supported and enabled by default on the ia32 architecture. Since v7.0 the parsing speed improved by roughly 30% on desktop. V8 v7.2 comes with a faster async/await implementation, enabled by default. V8 v7.2 adds support for public class fields.

React v16.7: No, This Is Not The One With Hooks https://reactjs.org/blog/2018/12/19/react-v-16-7.html Our latest release includes an important performance bugfix for React.lazy. Although there are no API changes, we’re releasing it as a minor instead of a patch.

React Developer Roadmap https://github.com/adam-golab/react-developer-roadmap The purpose of this roadmap is to give you an idea about the landscape. The road map will guide you if you are confused about what to learn next, rather than encouraging you to pick what is hip and trendy. You should grow some understanding of why one tool would be better suited for some cases than the other and remember hip and trendy does not always mean best suited for the job.

Stop Learning Frameworks https://sizovs.net/2018/12/17/stop-learning-frameworks/ We are developers. We need to stay up to date with technology. Every day, we learn programming languages, frameworks, and libraries. The more modern tools we know — the better. Keeping up to date with Angular, React, Vue, Riot, Ember, Knockout is fun. But we are wasting our time. Time is the most precious resource we have. Time is limited, nonrenewable and you cannot buy more of it. Technology, like fashion, is changing at the speed of light. To catch up, we need to run very fast. This race has no winners because it has no end. Appendix: Which JavaScript Frameworks Are the Fastest?.

Google Tech Dev Guide https://techdevguide.withgoogle.com/ Whether you’re a student or an educator, newer to computer science or a more experienced coder, or otherwise interested in software engineering, we hope there’s something for you here in Google’s Guide to Technical Development. We’ve carefully curated a collection of material from many sources, including Google, that you can use to supplement your classwork or direct your own learning.

Seamless Serverless Markup with HTM https://zeit.co/blog/seamless-serverless-markup-htm With server-side rendering in the mix, this equation often grows even more complex: we require special renderers that serialize these applications, usually described with JSX, into HTML strings or streams that browsers can then parse. The requirements of building and deploying web pages today often come with significant overhead, leading to slower Lambda (λ) boot times, larger file sizes, and ultimately, higher costs. One solution to this that we would like to highlight is HTM that aims to remedy this.

San 3.7.0 Release https://baidu.github.io/san/ San is a flexible JavaScript MVVM component framework. It is lightweight, highly compatible, and delivers excellent performance. It is widely used across Baidu’s product lines, and Baidu’s smart mini‑program framework Swan is also built on San. Version 3.7.0 adds core features such as loading components during rendering and asynchronous rendering.

Taro 1.2: Convert Existing WeChat Mini‑Programs to Multi‑Platform Apps https://aotu.io/notes/2018/12/17/taro-1-2/index.html Compared with Taro 1.1 and other mini‑program frameworks, Taro 1.2 introduces many first‑time features for mini‑program ecosystems, including but not limited to: converting WeChat mini‑programs to multi‑platform apps, support for ByteDance (Toutiao) mini‑programs, CSS Modules support, and MobX support.

WebGL Texture Deep Dive http://taobaofed.org/blog/2018/12/17/webgl-texture/ Buffers and Textures are the two main data sources for WebGL programs. Buffers can be created from an ArrayBuffer or more semantic TypedArray; textures are usually created from Image objects. When constructing and using textures, many options must be set, and these options interact in various ways—some depend on each other, some are mutually exclusive, some affect each other. To illustrate this, I built a demo (shown below). The demo’s top‑right corner contains a dat.GUI panel listing the options that affect textures. This article walks through each option’s purpose and how they relate to one another.

Meituan Open‑Source Graver Framework: “Carving” Efficient iOS UI Rendering https://tech.meituan.com/waimai_graver.html Graver is a high‑performance UI rendering framework that builds ultra‑smooth interfaces with minimal resource consumption. Graver uniquely adopts a draw‑based visual element decomposition approach, making the UI rendering pipeline simpler and more flexible. The framework is already used in most core business scenarios of Meituan’s food‑delivery app and its standalone delivery app, and has earned praise from Meituan’s internal tech teams. Since UI rendering performance is a universal challenge, the Meituan delivery iOS team open‑sourced Graver. The GitHub repository and documentation are at: https://github.com/Meituan-Dianping/Graver. We hope the framework finds use in many more business contexts.

Kuaishou’s Trillion‑Scale Real‑Time OLAP Platform: Design and Practice https://mp.weixin.qq.com/s/bKDtv892f4TJVV-JjW0vfQ Kuaishou’s app now has 150 million daily active users, generating petabyte‑scale user‑behavior data each day. Efficiently exploring this data is both challenging and valuable. This post shares the design of Kuaishou’s trillion‑scale OLAP platform and the key improvements made during its construction.

ECMAScript Modules in Node.js: The New Plan http://2ality.com/2018/12/nodejs-esm-phases.html In October, the Modules Team published the document “Plan for New Modules Implementation”. This blog post explains what it contains.

Taming Data with JavaScript https://alistapart.com/article/taming-data-with-javascript I love data. I also love JavaScript. Yet, data and client‑side JavaScript are often considered mutually exclusive. The industry typically sees data processing and aggregation as a back‑end function, while JavaScript is just for displaying the pre‑aggregated data. Bandwidth and processing time are seen as huge bottlenecks for dealing with data on the client side. And, for the most part, I agree. But there are situations where processing data in the browser makes perfect sense. In those use cases, how can we be successful?

JavaScript Getter‑Setter Pyramid https://staltz.com/javascript-getter-setter-pyramid.html The cornerstone of JavaScript is the function. It is a flexible abstraction that works as the basis for other abstractions, such as Promises, Iterables, Observables, and others. I have been teaching these concepts in conferences and workshops, and over time I have found an elegant summary of these abstractions, laid out in a pyramid. In this blog post I’ll provide a tour through these layers in the pyramid.

Handling Broken Images with the Service Worker https://bitsofco.de/handling-broken-images-with-service-worker/ A few years ago, I wrote about how we can use CSS to style broken images. The technique leveraged the fact that any styling applied to the ::before or ::after pseudo‑elements on the <img> element will only take effect if the image fails to load. So we could style those pseudo‑elements and they would appear only when the image is broken.

The Fragmented, But Evolving State of CSS‑in‑JS https://css-tricks.com/the-fragmented-but-evolving-state-of-css-in-js/ The CSS‑in‑JS community has converged on a consistent API.

New CSS Logical Properties! https://medium.com/@elad/new-css-logical-properties-bc6945311ce7 Until recently, the best way to support bidirectional sites (RTL/LTR) was with SASS and SASS variables. These new logical properties give us far more power to control our sites, regardless of language (English, Arabic, Japanese, etc.), with minimal style changes. Appendix: Researching a Property in the CSS Specifications

Here's How NPM Plans to Improve Security and Reliability in 2019 https://www.techrepublic.com/article/heres-how-npm-plans-to-improve-security-and-reliability-in-2019/ NPM is working to course‑correct after 20

(content truncated)


Originally written by Ping Xia (平侠) and published in Chinese on Web技术周刊 (Web Tech Weekly). Translated and adapted for DriftSeas with permission.

Keep reading

More related articles from DriftSeas.