FEX 技术周刊 - 2017/09/11
Announcing Yarn 1.0
Yarn is now responsible for nearly 3 billion package downloads per month. Reduced install times are a big draw for many users. Twitter, as well as Microsoft on outlook.com, have seen improvements of 5x in install times. Expo, Kenzan, and Sentry have reported performance and stability improvements so they can ship code faster. Here at Facebook, Yarn has been adopted across many codebases including the main Facebook app and website, Instagram, Oculus, and WhatsApp. Yarn supports hundreds of thousands of package installs on our systems every day. It was designed to scale even when a project has hundreds or thousands of direct or transitive dependencies. 附：It’s OK to not use Yarn
DOM Attributes in React 16
In the past, React used to ignore unknown DOM attributes. If you wrote JSX with an attribute that React doesn’t recognize, React would just skip it. In React 16, we are making a change. Now, any unknown attributes will end up in the DOM.
NGINX Unit is a new, lightweight, open source application server built to meet the demands of today’s dynamic and distributed applications. Deploy configuration changes with no service disruptions. Run code in multiple languages. Build the foundation of your service mesh.
Introducing Fastify, a Speedy Node.js Web Framework
Fastify is a new web framework inspired by Hapi, Restify and Express. Fastify is built as a general-purpose web framework, but it shines when building extremely fast HTTP APIs that use JSON as the data format. These are extremely common in both web and mobile software architectures, so Fastify could improve the throughput of the majority of applications.
石墨表格之 Web Worker 应用实战
Web Worker 使得网页中进行多线程编程成为可能。当主线程在处理界面事件时，worker 可以在后台运行，帮你处理大量的数据计算，当计算完成，将计算结果返回给主线程，由主线程更新 DOM 元素。
Let’s Build a Simple Database
从零开始实现一个类似 sqlite 的数据库
A 6-Step-Guide for Contributing to the Node.js Core
The aim of this article is to help you land your first commit to the Node.js core! Contributing to Node.js can be done in a lot of different ways. You can start contributing to one of the working groups (like the Website, Diagnostics or Post-mortem group) or start teaching at Nodeschools, so your peers can learn from you. You can also start working directly on the Node.js Core, whether you do it by answering questions, or actually adding code to the project.
Optimizing web servers for high throughput and low latency
The Dropbox edge network is an nginx-based proxy tier designed to handle both latency-sensitive metadata transactions and high-throughput data transfers. In a system that is handling tens of gigabits per second while simultaneously processing tens of thousands latency-sensitive transactions, there are efficiency/performance optimizations throughout the proxy stack, from drivers and interrupts, through TCP/IP and kernel, to library, and application level tunings.
Rapid release at massive scale
We decided to move facebook.com to a quasi-continuous “push from master” system in April 2016. Over the next year, we gradually rolled it out, first to 50 percent of employees, then from 0.1 percent to 1 percent to 10 percent of production web traffic. Each of these progressions allowed us to test the ability of our tools and processes to handle the increased push frequency and get real-world signal. Our main goal was to make sure that the new system made people’s experience better — or at the very least, didn’t make it worse. After almost exactly a year of planning and development, over the course of three days in April 2017 we enabled 100 percent of our production web servers to run code deployed directly from master.
LogDevice: a distributed data store for logs
The relaxed data model of LogDevice allowed us to reach more optimal points in the trade-off space of availability, durability, and performance than what would be possible for a distributed file system strictly adhering to the POSIX semantics, or for a log store built on top of such a file system.
The State of the Web - A guide to impactful performance improvements
Only 46% of 7.4 billion people on this planet have access to the Internet. The average network speed caps at unimpressive 7Mb/s. More importantly, 93% of Internet users are going online through mobile devices — it becomes inexcusable to not cater to handhelds. Our websites aren’t in a perfect shape either — the average site is the size of original Doom game (approx. 3 MB).
Rise of Functions as a Service: How PHP Set the “Serverless” Stage 20 Years Ago
With all of this innovation, it’s worthwhile to take a step down memory lane and look at how an unlikely candidate, PHP, brought us all the way to modern “serverless” architecture.
How is ARCore better than ARKit?
I think as a technical solution they are very very close in capability. Effectively indistinguishable to users when it comes to the user experiences you can build today. ARKit has some tech advantages around hw/sw integration and more reliable tracking. ARCore has some advantages around mapping and more reliable recovery. Both of these advantages are mostly only noticeable by Computer Vision engineers who know what to look for. 附：四分钟内明白 ARCore + 上手
Every Programmer Should Know
A collection of (mostly) technical things every software developer should know. You don’t need to know all of that by heart to be a programmer. But knowing the stuff will help you become better!
A Guide To Virtual Reality For Web Developers
Recently, there has been a proliferation of virtual reality (VR) web browsers and VR capabilities added to traditional browsers. In this article, we’ll look at the state of browsers in VR and the state of VR on the web via the WebVR APIs.
Working with Schemas in WordPress
If you’re unfamiliar with schemas, they are HTML attributes that help search engines understand the content structure and know how to display it correctly in search engine results. We’re going to dig into the concept of schemas a little more in this post and then walk through a real-life application of how to use them in a WordPress environment.
Flat UI Elements Attract Less Attention and Cause Uncertainty
Flat interfaces often use weak signifiers. In an eyetracking experiment comparing different kinds of clickability clues, UIs with weak signifiers required more user effort than strong ones.
The React license for founders and CTOs
I worked at Facebook several years ago during some influential events, including a major patent lawsuit and the open-source release of React. To my knowledge, Facebook has never proactively sued anyone for infringing its patents. I’ve heard some concerns that the BSD+Patents license might make companies using React less attractive as acquisition targets, but most of the top tech acquirers are already using React and other Facebook open source in some way.
New in Chrome 61
The Incredible Growth of Python
In this post, we’ll explore the extraordinary growth of the Python programming language in the last five years, as seen by Stack Overflow traffic within high-income countries. The term “fastest-growing” can be hard to define precisely, but we make the case that Python has a solid claim to being the fastest-growing major programming language.
General availability of App Service on Linux and Web App for Containers
Azure App Service is now generally available on Linux, including its Web App for Containers capability. With this, we now offer built-in image support for ASP.NET Core, Node.js, PHP and Ruby on Linux, as well as provide developers an option to bring their own Docker formatted container images supporting Java, Python, Go and more.
Easily display PDF files in your React application.
PDFXKit - A drop-in replacement for PDFKit
We are open sourcing PDFXKit, a drop-in replacement for Apple’s PDFKit that uses our industry-proven PSPDFKit SDK under the hood. Our frameworks on the other hand go much further. With PSPDFKit, you get a drop-in solution with a superior feature set, far greater customization options, and consistent high-fidelity rendering on all major platforms.
When the user is idle you can do things like preload some code-split bundles, download images that haven’t been scrolled to, etc. Also useful to automatically log them out of a sensitive website.
Highly performant, light ~0.5kb and configurable lazy loader in pure JS with no dependencies for images, iframes and more, using IntersectionObserver API
A node.js library to run cpu-intensive tasks in a separate processes and to not block the event loop.
Security.txt is a “standard” which allows websites to define security policies. This “standard” sets clear guidelines for security researchers on how to report security issues, and allows bug bounty programs to define a scope. Security.txt is the equivalent of robots.txt, but for security issues.
A tiny view + state management solution using innerHTML.
AssemblyScript defines a subset of TypeScript that it compiles to WebAssembly.
What is NextQL
NextQL is a JSON query language for APIs and an extensible runtime for fulfilling those queries. It equivalent with Facebook’s GraphQL but much simpler. There are a lot of topics about GraphQL and GraphQL vs REST. I’m not going say it again. In short, FB’s GraphQL or Netflix’s Falcor or my NextQL or REST serve a same purpose. It is a tool for client query and manipulate data efficiently.
在这整个过程中，作为一枚产品狗，我得到了如下的一些启发，且这些信息可以应用到我的工作中，希望也可以对你有帮助：对于成本控制的意识，应该纳入产品方案中去，也许我们做不到像微信那么极致，但是有意识的往这方面考虑，也许会有更好的产品方案; 对于核心功能花多大精力去优化，都不为过，因为这才是我们安身立命的根本; 不要一味追求逻辑正确，可能有些时候逻辑合适才是更重要的。
WePhone （一款国际网络电话 App）的开发者苏享茂被其前妻翟欣欣威胁，被索赔 1000 万，最后被逼无奈，选择自杀。好不值哦，默哀…
Swift 之父 Chris Lattner 访谈录
Chris Lattner 是谁？Xcode 的编译器 LLVM 背后有怎样的故事？Swift 诞生的前世今生，封闭的苹果为何要拥抱开源？说好的 ABI 稳定性何时能推出？
– THE END –