FEX 技术周刊 - 2018/12/24
V8 release v7.2
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
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
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
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.
Google Tech Dev Guide
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
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.
Taro 1.2 比起 Taro 1.1 和其它的小程序开发框架，增加了许多首次在小程序框架上实现的功能，这些功能包括但不限于：微信小程序转多端应用，字节跳动（头条）小程序支持，CSS Modules 支持，MobX 支持。
Buffer（数据缓冲区）与 Texture（纹理）是 WebGL 程序的两大数据来源。Buffer 可以通过 ArrayBuffer 或更语义化的 TypedArray 来构造；而 Texture 在大多数情况下，是通过 Image 对象来构造的。在构造和使用 Texture 的过程中，需要确定很多选项来以不同的方式构造 Texture；这些选项之间有着各种各样的关系，或互相依赖，或互相排斥，或互相影响。为此，我专门编写了一个 Demo，如下所示。Demo 页的右上角有一个使用 dat.GUI 生成的控件，其中列举了影响纹理的一些选项。这篇文章将逐个讨论这些选项的作用和相互关系。
Graver 是一款高效的 UI 渲染框架，它以更低的资源消耗来构建十分流畅的 UI 界面。Graver 独创性的采用了基于绘制的视觉元素分解方式来构建界面，得益于此，该框架能让 UI 渲染过程变得更加简单、灵活。目前，该框架已经在美团 App 的外卖频道、独立外卖 App 核心业务场景的大多数业务中进行了应用，同时也得到美团外卖内部技术团队的认可和肯定。App 渲染性能优化是一个普遍存在的问题，为了惠及更多的前端开发同学，美团外卖 iOS 开发团队将其进行开源，Github 项目地址与使用文档详见：https://github.com/Meituan-Dianping/Graver 。我们希望该框架能够应用到更广阔的业务场景。
快手 App 目前日活 1.5 亿，每天会产生数万亿规模的用户行为数据，对这些数据的高效探索是一件很有挑战同时也很有价值的工作。今天重点分享快手建设万亿级数据规模 OLAP 平台的设计方案以及主要改进过程。
ECMAScript modules in Node.js: the new plan
In October, the Modules Team published the document “Plan for New Modules Implementation”. This blog post explains what it contains.
Handling broken images with the service worker
A few years ago, I wrote about how we can use css to style broken images. The technique leveraged on the fact that any styling to the ::before or ::after pseudo-elements on the
<img> element will only be applied if the image doesn’t load. So, we could style those elements and they would only display if the image was broken.
The Fragmented, But Evolving State of CSS-in-JS
The CSS-in-JS community has converged on a consistent API.
New CSS Logical Properties!
Until recently, the best way to support multiple direction websites like RTL/LTR Websites was with SASS and SASS variables. These new logical properties give us a lot more power to control our websites, no matter what type of language we use (English, Arabic, Japanese, etc.), with minimal style changes.
另附：Researching a Property in the CSS Specifications
Here’s how NPM plans to improve security and reliability in 2019
NPM is working to course-correct after 2018 brought a handful of major incidents that caused usability and security headaches for system administrators.
另附：npm package permissions — an idea
Introducing Pipelines to Airbnb’s Deployment Process
Joining the last line of defense against “bad code”, via developing a method of enforcing our deployment procedures, and lessons learned about how theory and practice differ in real-world software development.
Envoy Proxy at Reddit
Reddit’s engineering team and product complexity has seen significant growth over the last three years. Facilitating that growth has taken a lot of behind-the-scenes evolution of Reddit’s backend infrastructure. One major component has been adopting a service-oriented architecture, and a significant facet of that has been evolving service-to-service discovery and communication.
另附：Reddit’s Serverless & Compute Infrastructure at Scale.
Cape Technical Deep Dive
In this post, we’ll take a deep dive into the design of the Cape framework. First, we’ll discuss Cape’s architecture. Then we’ll look at the core scheduling component of the system. Throughout, we’ll focus the discussion on a few key design decisions.
How Dashboards are Changing Human Behavior in DevOps
What is a dashboard? Something readily visible to everyone that needs it that shows how something is functioning or progressing. When used right — whether on a car, aircraft or DevOps team — a dashboard is simple to read at a glance and a very powerful way to know you’re heading in the right direction.
SQL is Dead, Hail to Flux
Flux : a lightweight, blazing fast scripting language that makes it super easy to work with data.
The 9 Most Common Database Design Errors
Reading this article might save you many hours spent fixing design and code problems, so let’s dive in. I’ve split the list of errors into two main groups: those that are non-technical in nature and those that are strictly technical. Both these groups are an important part of database design.
另附：How the SQLite Database Works、Bye bye Mongo, Hello Postgres.
FP vs. OO List Processing
While writing spacewar over the last few months, I came across an interesting difference between functional programming, and OO programming. Let’s imagine that we’ve got two lists. A list of klingons, and a list of shots traveling through space. The shots might be phaser beams, or photon torpedos, or balls of iron called “kinetics”. In all cases they have a position and a velocity. So do each of the klingons.
另附：Model View Controller isn’t.
Write your Own Virtual Machine
In this tutorial, I will teach you how to write your own virtual machine (VM) that can run assembly language programs, such as my friend’s 2048 or my Roguelike. If you know how to program, but would like to gain a deeper understanding of what is going on inside a computer and better understand how programming languages work, then this project is for you. Writing your own VM may sound a little scary, but I promise that you will find it to be surprisingly simple and enlightening.
This project aims to be a drop-in solution for sites to prefetch links based on what is in the user’s viewport. It also aims to be small (< 1KB minified/gzipped).
Electron v4.0.0 includes Chromium 69.0.3497.106, Node 10.11.0, and V8 6.9.427.24.
Look out world, we’re shipping Bootstrap v4.2.1 with a slew of new features, bug fixes, and docs updates. On the new features side, we have spinners, toasts, switches, and (finally!) touch support in the carousel. That’s just the tip of the iceberg though.
Highlights for Game Off 2018
Game Off just wrapped up with over 300 games submitted making it our largest event yet! This year’s theme–HYBRID–proved to be both fun and challenging. Here are the winners as voted on by the game developers themselves.
Dead-simple parallax scrolling.
Announcing Gluegun 2.0 — A delightful way to build command line apps in Node
Gluegun is a delightful toolkit for building beautiful command line interfaces (CLIs) in Node.js. It supports commands, extensions, template generation, and has a very simple and intuitive plugin interface. I’m the primary maintainer on Gluegun, and many others at my company (Infinite Red) and the community work on it too.
另附：Arg - yet another command line option parser
Back in January we started work on the 1.0 release, taking the opportunity to upgrade to Babel 7 and follow its beta releases. It’s been a year where we made massive improvements to AVA. It’s also been a year with many exciting events in our personal lives. Be it honeymoons & weddings, work & friends, naturalizations and international relocations.
IBM Uses Gatsby to Manage Enterprise-Level Content
IBM is the original tech company. Reaching for Gatsby shows they are still on the leading edge of technology and finding the newest and best routes for their people and clients.
Go Modules in 2019
2018 was a great year for the Go ecosystem, with package management as one of our major focuses. The module system will in turn help us deliver better authentication and build speeds to the Go ecosystem. This post is a preview of what the Go team is planning relating to modules in 2019.
另附：Go and Apache Arrow: building blocks for data science、Apache Beam and Google Dataflow in Go、GoReplay - an open-source tool for capturing and replaying live HTTP traffic into a test environment.
Rust and WebAssembly in 2019
另附：Sandspiel – A falling sand game built in Rust and WebGL
Introducing Project Mu
The Microsoft Devices Team is excited to announce Project Mu, the open-source release of the Unified Extensible Firmware Interface (UEFI) core leveraged by Microsoft products including both Surface and the latest releases of Hyper-V.
Open sourcing wav2letter++, the fastest state-of-the-art speech system, and flashlight, an ML library going native
The Facebook AI Research (FAIR) Speech team is sharing the first fully convolutional speech recognition system. From the waveform to the final word transcription, the learnable parts of the system are composed only of convolutional layers. This yields performance that’s competitive with that of recurrent architectures.
另附：Nevergrad: An open source tool for derivative-free optimization
Minikanren – An embedded DSL for logic programming
miniKanren is an embedded Domain Specific Language for logic programming. miniKanren is designed to be easily modified and extended; extensions include Constraint Logic Programming, probabilistic logic programming, nominal logic programming, and tabling.
MIPS Goes Open Source
Wave Computing (Campbell, Calif.) announced Monday (Dec. 17) that it is putting MIPS on open source, with MIPS Instruction Set Architecture (ISA) and MIPS’ latest core R6 available in the first quarter of 2019.
- React Status
- Mobile Dev Weekly
- 12 React UI Layout Grid Components and Libraries for 2019
- Analysis of 2018 Hacker News “Who is Hiring” Job Posts
- Ask HN: Best talks of 2018?.
- The 2018 Stratechery Year in Review
- Four Ways Uber Visualization Made an Impact in 2018
- A Recap of Frontend Development in 2018
Design is Art After All
A meditation on the dance between design and intuition.
Product Design: Expectations vs Reality
hen it comes to designing products in the 21st century, we tend to believe that there are new rules that must be learned. Fortunately, that’s not true. Why? Because humans are the same and our behaviour changes slowly. Only the environment we live in is different. And with that, some basic design principles will never change. Here are 7 more product design expectations vs reality cases we can see or be part of on a daily basis. This article is a continuation of my previous one — Product Design: Expectations vs Reality.
Top 5 Curated Articles of 2018 from Microsoft Design
另附：Design leaders share their resolutions for 2019、10 Best Sketch Plugins for UX/UI Designers in 2018、Sketch tools and plugins for 2019、The Year In Review: Your Ultimate UX Roundup For 2018、Web design trends for 2019.
New to Microsoft 365 in December—AI-powered tools to help you create your best work
This month, we released new features in Microsoft 365 that enable you to reach broader audiences, increase your efficiency, and focus on your most important tasks.
Half the world is online. Now we must make the web work for everyone, everywhere.
Just over one month ago, the Web Foundation made headlines when we revealed that less than half of the global population was online. The shocking statistic was a rallying point for the launch of the Contract for the Web — a new collaborative project that brings together governments, companies, civil society organisations and citizens around the world to collectively define our responsibilities towards ensuring a free, open and fair web that works for everyone, everywhere.
Educational Games – The future of programming!
With increased interest and easy access to technology, it’s possible to encourage children in elementary school to learn through digital educational games. The game implies for the child much more than a simple act of playing. Through the game, they are communicating with the world and also expressing themselves. For adults, the game constitutes a “mirror”, a source of data for better understanding how children development occurs, as Friedmann already said in 1996.
深度解密微信7.0核心改版 – 对决与破局刚刚开始
王兴：20年to C，20年to B
– THE END –