FEX 技术周刊 - 2018/07/02
Standard ECMA-262 ECMAScript® 2018 Language Specification
The official spec for ES2018 (essentially the 9th edition of the JS spec) has been published. 附：Exploring ES2018 and ES2019、Tracking ECMAScript Proposals
On Consuming (and Publishing) ES2015+ Packages
For those of us that need to support older browsers, we run a compiler like Babel over application code. But that’s not all of the code that we ship to browsers; there’s also the code in our node_modules. Can we make compiling our dependencies not just possible, but normal? The ability to compile dependencies is an enabling feature request for the whole ecosystem. Starting with some of the changes we made in Babel v7 to make selective dependency compilation possible, we hope to see it standardized moving forward.
Write Perfect Code with Standard and ESLint
In this talk, Feross Aboukhadijeh explains about code linting – how to use Standard and ESLint to catch programmer errors before they cause problems for your users. We’ll discuss how to get started with linting, as well as how to improve your setup if you’re already linting your code.
GUI Testing Powered by Deep Learning
Contemporary developments in DL unleashes efficiencies in GUI testing and in the software lifecycle, potentially. A recent pilot, described below, proved this approach to be realistic and practical. 另附：Integration Testing with React and Enzyme
Should we use React Native?
Watching tens of thousands of developers consider using React Native and talking to many of them, I’ve found that teams considering React Native fall roughly into three broad categories, where two of them are very likely to be successful and happy using React Native, and the other one is usually a bad time. Should I use React Native in my project? Here’s a quick guide that might help you and your team make a decision about whether React Native is a good choice for you.
Building browser extensions with React
We build Rubberduck, a browser extension that adds IDE features (find usages, definitions, files tree) to GitHub web pages. Our users use it to read and review code faster on the web. We built Rubberduck on React, and we wanted to share our create-react-app setup for extension projects.
The best react inline style libraries — comparing Radium, Aphrodite, & Emotion
This article is about inline styles. However, I’m not going to talk about what they are or whether you should use them or not. I’m going to talk about libraries that will help you use inline styles in your React application — libraries that allow you to use features that are not directly supported otherwise (like media queries). I’ll compare: Radium, Aphrodite, Emotion.
Drawing Images with CSS Gradients
What I mean by “CSS images” is images that are created using only HTML elements and CSS. They look as if they were SVGs drawn in Adobe Illustrator but they were made right in the browser. Some techniques I’ve seen used are tinkering with border radii, box shadows, and sometimes clip-path. Let’s take a look at how you can create CSS images that way yourself.
Threads in Node 10.5.0: a practical intro
A few days ago, version 10.5.0 of Node.js was released and one of the main features it contained was the addition of initial (and experimental) thread support. This is interesting, specially coming from a language that’s always pride itself of not needed threads thanks to it’s fantastic async I/O. So why would we need threads in Node?
How to build powerful REST APIs blazingly fast with Node.js
Today, I thought it’d be fun to walk you through the process of using WebRTC and Okta to build a simple video chat service that allows users to create a chatroom and share the link around to anyone they want who can then join the room and chat with them in real-time.
Web Assembly and Go: A look to the future
When Web Assembly(wasm) support landed in Go recently, I knew that the time was ripe for some experimentation. And I couldn’t wait to dive in and try it. I read a few good articles before diving in. This post will chronicle my experience. 另附：How WebAssembly is Accelerating the Future of Web Development、WebAssembly is the Future Edition、Hijacking the control flow of a WebAssembly program.
The C4 Model for Software Architecture
C4 stands for context, containers, components, and code — a set of hierarchical diagrams that you can use to describe your software architecture at different zoom levels, each useful for different audiences. Think of it as Google Maps for your code.
Migrating Messenger storage to optimize performance
More than a billion people now use Facebook Messenger to instantly share text, photos, video, and more. As we have evolved the product and added new functionality, the underlying technologies that power Messenger have changed substantially. When Messenger was originally designed, it was primarily intended to be a direct messaging product similar to email, with messages waiting in your inbox the next time you visited the site. Today, Messenger is a mobile-first, real-time communications system used by businesses as well as individuals. To enable that shift, we have made many changes through the years to update the backend system.
Refactoring Thrift schemas at Pinterest
The tight coupling of the files has not only created a web of tangled dependencies among the Thrift files, but also among the applications that use them. This leads to a slow and error-prone development cycle, slowing down developer velocity across the company. To address this problem, we recently refactored our Thrift schemas, leading to a huge reduction in code build times while improving code quality and developer velocity. In this blog post, we’ll share our motivation for the project, our approach to solving the problem and the wins we’ve observed.
How not to structure your database-backed web applications: a study of performance bugs in the wild
This is a fascinating study of the problems people get into when using ORMs to handle persistence concerns in their web applications. The authors study real-world applications and distil a catalogue of common performance anti-patterns. There are a bunch of familiar things in the list, and a few that surprised me with the amount of difference they can make. By fixing many of the issues that they find, Yang et al., are able to quantify how many lines of code it takes to address the issue, and what performance improvement the fix delivers.
Python 3 at Facebook
Python 3 adoption has clearly picked up over the last few years, though there is still a long way to go. Big Python-using companies tend to have a whole lot of Python 2.7 code running on their infrastructure and Facebook is no exception. But Jason Fried came to PyCon 2018 to describe what has happened at the company over the last four years or so—it has gone from using almost no Python 3 to it becoming the dominant version of Python in the company. He was instrumental in helping to make that happen and his talk [YouTube video] may provide other organizations with some ideas on how to tackle their migration.
Augmented reality for the web
In Chrome 67, we announced the WebXR Device API for both augmented reality (AR) and virtual reality (VR), though only the VR features were enabled. VR is an experience based purely on what’s in a computing device. AR on the other hand allows you to render virtual objects in the real world. To allow placement and tracking of those objects, we just added the WebXR Hit Test API to Chrome Canary, a new method that helps immersive web code place objects in the real world. 另附：Chacmool: Augmented reality in Chrome Canary
MongoDB 4.0 Now Generally Available
MongoDB 4.0 is out with multi-document ACID transaction support being the headline feature. This landing page gives you access to the release keynote, downloads, a white paper, the press release, and more. 附： MongoDB Multi-Document ACID Transactions are GA、Introducing the Best Database for Modern Applications、Announcing MongoDB Atlas free tier on GCP.
We’re moving from Azure to Google Cloud Platform
GitLab.com is migrating to Google Cloud Platform – here’s what this means for you now and in the future. 另附：How we iterated and improved our frontend team culture
Firefox 61 – Quantum of Solstice
Parallel CSS Parsing, Retained Display Lists, Accessibility Inspector… 另附：AV1: next generation video – The Constrained Directional Enhancement Filter
Trending Repositories of June on GitHub
Font Awesome 5.1: 409 New Icons + More
We’ve packed new icon categories, new icons, and lots of fixes under the hood to add power and ease when using our icons. You’ve got 409 new icons waiting for you. That makes more than 1,000 icons added to Font Awesome already this year!
React Developer Roadmap
Below you can find a chart demonstrating the paths that you can take and the libraries that you would want to learn in order to become a React developer. I made this chart for all people who encounter me with question “What should I learn next as a React developer?” to give them some tips.
Flexible date picker component for React. Highly customizable, localizable, with ARIA support, no external dependencies, 9KB gzipped.
Material Component Framework for Vue.js. Vuetify is a semantic component framework for Vue. It aims to provide clean, semantic and reusable components that make building your application a breeze. Build amazing applications with the power of Vue and Material Design and a massive library of beautifully crafted components.
Gio.js is an open source library for web 3D globe data visualization built with Three.js. What makes Gio.js different is that it is simple to use Gio.js to customize a 3D data visualization model in a declarative way, add your own data, and integrate it into your own modern web application. 另附：React-Giojs
It has never been so easy to document your things! To break barriers and facilitate the creation of tools was the purpose that Docz arose. Document our things is one of the most important and painful process that exist when you’re creating something new. We lose a lot of our precious time with unnecessary setups to be able to build something that can represent and express what we want with our own style.
A modern messaging platform for Message Push、IM、Group Chatting、IoT etc, based on MQTT protocol. MeQ is written in pure go and standard library,nearly no messy dependencies. so you can easily deploy a standalone binary in linux、unix、macos、windows.
The best developer videos in one place
Social networking, back in your hands. The world’s largest free, open-source, decentralized microblogging network. 附：Why Mastodon ActivityPub protocol is the future
听说它能帮你节省50%的低效时间。「Kitchen」是蚂蚁金服体验科技发布最新的 Sketch 工具集，支持设计稿快速同步协作；快速配置表格、按钮、分页等 Ant Design 组件；提供精选色板，并可以管理属于你的色板库；接入海量 Iconfont 图标资源，可拖拽修改图标。本着认真负责的态度，这次测评将会从这款插件的各个功能入手，通过实际体验告诉你到底好不好用。
How To Get To Know Your Users
This article will look at how going below the surface during user research helps us really understand what triggers our users, and how those deeper insights will help us design for persuasion.
The Philosophy in Games
What can philosophy and games teach us about Life?
Designing for accessibility is not that hard
Seven easy-to-implement guidelines to design a more accessible web
The most important steps to becoming a great design leader
Most designers, when presented with a leadership opportunity, leap into the role enthusiastically, unaware of the challenges ahead. That’s what an opportunity is, right? A new, uncharted frontier full of mystery and the just right set of circumstances?
10 Small Design Mistakes We Still Make
Don’t Make Me Think by Steve Krug. 另附：The ten commandments of UX.
What 7 Creepy Patents Reveal About Facebook
Here are seven Facebook patent applications that show how the company has contemplated gathering and exploiting your personal information.
Interactive maps, now in your language
Imagine you needed to learn about a foreign land, but the only map you had was written in a mysterious script you couldn’t read. That might sound like a plot twist from some adventure story, but it’s actually the situation visitors to Wikimedia projects—including Wikipedia—often found themselves in until recently. An extension called Kartographer enables Wikimedians to create interactive maps simply by supplying the longitude and latitude of a location.
这些年来，中国互联网很少有像微信这样影响巨大的产品。因此，今天我想基于微信发展过程中的关键决策，提供一些思考。我会从四个部分分析它： 1）用户在微信发展早期对它的定位：聊天工具; 2）本周引发最多讨论的问题：朋友圈和公众号的内容生态; 3）微信的商业化探索。2013 年腾讯年会，总裁刘炽平喊出了这个口号：微信商业化的元年到了; 4）最后，微信有好几年没有动作，满世界都在说微信老了，于是才有今天的第四部分：小程序.
Google 和央美合作，把徐悲鸿的 200 件画作搬到了线上
科技和艺术文化的交融已经成了一个绕不开的话题，Google 也有这样一个非营利性的项目，叫 Google Arts & Culture，简单来说就是把艺术文化作品数字化，搬到线上，还用 VR 等技术加深用户的观赏体验。去年 12 月，Google Arts & Culture 和故宫合作，把故宫博物院的几百件珍宝做了线上高清处理，同时开展了一系列策展活动，这对中国艺术的传承和传播有着很重要的意义。2018 年 6 月 19 日，在中央美术学院 100 周年校庆之际，Google Arts & Culture 又和中央美院的美术馆进行合作，上线了一系列馆内珍藏的艺术作品。
– THE END –