FEX 技术周刊 - 2019/05/27
The Future of React Router and @reach/router
We are bringing together the best of React Router and Reach Router into a new, hook-based API. React Router will be the surviving project. We’ll introduce this API in a minor release (5.x). That means it’s 100% backward compatible. (Don’t forget, we recently released React Router v5, it was a major version change only because of a dependency version range issue, there were no API changes.) We will continue to support @reach/router 1.0 with bugfixes
This is only a fraction of what you could do to improve your code. In my opinion, the principles alleged here are the ones which people often don’t follow. They try to, but not always succeed for various reasons. Maybe at the start of the project, the code is neat and clean but when it comes to meeting deadlines the principles are often ignored and moved into a “TODO” or “REFACTOR” section. At that point, your client would rather have you to meet the deadline instead of writing the clean code.
Truly reactive programming with Svelte 3.0
Augmented Reality on the Web in 2019
The movement towards WebVR started with a report by the w3c, which later lead to implementation in browsers like Firefox and Chrome in 2017. The move to merge the work towards WebVR and WebAR came to a consensus as the Immersive Web Community Group, and work is now moving toward a new API called the WebXR Device API. With this brief history of Augmented Reality on the Web, let’s explore the current state of affairs for developers in 2019.
另附：Walmart Labs - Build your first AR App.
一个 MVVM 框架的性能进化之路。性能一直是 框架选型 最重要的考虑因素之一。San 从设计之初就希望不要因为自身的短板（性能、体积、兼容性等）而成为开发者为难的理由，所以我们在性能上投入了很多的关注和精力，效果至少从 benchmark 看来，还不错。
My experience moving from Enzyme to react-testing-library
react-testing-library has changed the way I think about writing React tests. In this blog post, I will share with you my thoughts moving from Enzyme onto react-testing-library, what I experienced and why I would recommend react-testing-library going forwards.
What does react-beautiful-dnd cost to maintain?
The aim of this blog is to make visible the ongoing effort required to maintain the open source drag and drop project react-beautiful-dnd (rbd). The maintenance of the rbd project will look different to other open source projects, but I thought it would be insightful nonetheless. By exposing maintenance information I hope to dispell the myth that open source projects lead to less total effort then private source. There are huge advantages in open source, but the cost of ownership is not one of them.
Folding the DOM
I’d like to leverage that 3D engine to perform a neat trick: folding up an image.
Why I think Flutter is the future of mobile app development
With Flutter, the possibilities are practically endless, so even super extensive apps can be created with ease. If you develop mobile apps and have yet to give Flutter a try, I highly recommend you do as I’m sure you’ll fall in love with it as well. After using Flutter for quite a few months, I think it’s safe to say that it’s the future of mobile development. If not, it’s definitely a step in the right direction.
另附：Flutter的召唤 |趋势背后的思考、Flutter Web初体验.
Employing QUIC Protocol to Optimize Uber’s App Performance
The HTTP/2 stack fares poorly in dynamic, lossy wireless networks, and we learned that poor performance can often be traced directly to Transmission Control Protocol (TCP) implementations buried in OS kernels. To address these pain points, we adopted the QUIC protocol, a stream-multiplexed modern transport protocol implemented over UDP, which enables us to better control the transport protocol performance.
Athena: Our automated build health management system
At Dropbox, we run more than 35,000 builds and millions of automated tests every day. With so many tests, a few are bound to fail non-deterministically or “flake.” Some new code submissions are bound to break the build, which prevents developers from cutting a new release. At this scale, it’s critical we minimize the manual intervention necessary to temporarily disable flaky tests, revert build-breaking commits, and notify test owners of these issues. We built a system called Athena to manage build health and automatically keep the build green.
Releasing Pythia for vision and language multimodal AI models
Pythia is a deep learning framework that supports multitasking in the vision and language domain. Built on our open-source PyTorch framework, the modular, plug-and-play design enables researchers to quickly build, reproduce, and benchmark AI models. Pythia is designed for vision and language tasks, such as answering questions related to visual data and automatically generating image captions.
Software systems are prone to the build up of cruft - deficiencies in internal quality that make it harder than it would ideally be to modify and extend the system further. Technical Debt is a metaphor, coined by Ward Cunningham, that frames how to think about dealing with this cruft, thinking of it like a financial debt.
Fund your work. Build what matters. Connect with the community that depends on your work. Receive recurring funds to build our shared digital infrastructure.
另附：[译]Github平台最有价值的100个项目、GitLab 11.11 released with Multi-Assignment for MRs and container enhancements
Privacy Preserving Ad Click Attribution For the Web
We are presenting a new technology to allow attribution of ad clicks on the web while preserving user privacy. We used the following principles as we designed this technology.
Node 12.3 Released with WebAssembly Module Support
Added the –experimental-wasm-modules flag to support WebAssembly modules.
另附：WebAssembly at eBay: A Real-World Use Case.
React components that implement Google’s Material Design.
Ember 3.10 Released
The Ember project is releasing version 3.10 of Ember.js, Ember Data, and Ember CLI. This release kicks off the 3.11 beta cycle for all sub-projects. We encourage our community (especially addon authors) to help test these beta builds and report any bugs before they are published as a final release in six weeks’ time.
另附：Ember’s 2019 Roadmap: Call for Blog Posts.
Announcing Capacitor 1.0
Capacitor, Ionic’s new Native API Container that makes it easy to build web apps that run on iOS, Android, Electron, and on the web as Progressive Web Apps—with full access to native functionality on each platform.
chameleon 基于对跨端工作的积累， 规范了一套跨端标准，称之为 MVVM+协议；开发者只需要按照标准扩展流程，即可快速扩展任意 MVVM 架构模式的终端
Gestalt is a set of React UI components that enforces Pinterest’s design language. We use it to streamline communication between designers and developers by enforcing a bunch of fundamental UI components. This common set of components helps raise the bar for UX & accessibility across Pinterest.
Editable vector graphics in your react apps.
Go minifiers for web formats.
A renderless and extendable rich-text editor for Vue.js
PixiJS — The HTML5 Creation Engine
Create beautiful digital content with the fastest, most flexible 2D WebGL renderer.
另附：WebGL Fluid Simulation.
Create graphics with a hand-drawn, sketchy, appearance. Rough.js is a small (~8.5kB gzipped) graphics library that lets you draw in a sketchy, hand-drawn-like, style. The library defines primitives to draw lines, curves, arcs, polygons, circles, and ellipses. It also supports drawing SVG paths. Rough.js works with both Canvas and SVG.
KeystoneJS is an open source framework for developing database-driven websites, applications and APIs in Node.js. Built on Express and MongoDB.
MDX is an authorable format that lets you seamlessly write JSX in your Markdown documents. You can import components, such as interactive charts or alerts, and embed them within your content. This makes writing long-form content with components a blast.
另附：Front-End Documentation, Style Guides and the Rise of MDX.
A free-as-in-freedom re-implementation of Google’s proprietary Android user space apps and libraries.
Turn Your Excel File Into a Web Application
It is the year 2019. I was surprised that she still has to do lots of copy-paste routines and email Excel files around. My pride in being a developer wouldn’t allow me, so I offered her that I will write a little program for her. Fortunately, with Keikai, I was able to do it in just 2 hours.
另附：Instantly turn any Google Sheet into RESTful API.
Free Wolfram Engine for Developers
The Wolfram Engine is the heart of all our products. It’s what implements the Wolfram Language, with all its computational intelligence, algorithms, knowledgebase, and so on. It’s what powers our desktop products (including Mathematica), as well as our cloud platform. It’s what’s inside Wolfram|Alpha—as well as an increasing number of major production systems out in the world. And as of today, we’re making it available for anyone to download, for free, to use in their software development projects.
Details about MIDI 2.0, MIDI-CI, Profiles and Property Exchange
MIDI 2.0 is the largest set of additions to MIDI since the very first MIDI connection between 2 manufacturers was made at the 1983 NAMM Show. MIDI 1.0 has evolved with many new features over the past 36 years. MIDI 2.0 continues that ongoing evolution and creates a foundation for expansion for many years into the future. The MIDI 2.0 updates MIDI with new auto-configuration, extended resolution, increased expressiveness, and tighter timing – all while maintaining a high priority on backward compatibility.
支持 TypeScript、Go 的 ORM，提供强类型支持
The Art of Command Line
Master the command line, in one page.
Transitioning to a Career in AR/VR Design
Let’s take a peek at some key concepts, the general process AR/VR designers at Facebook use and how you can apply it to your own work, as well as how to choose the right tools to use, platforms to build for and how to mind the skill gap to avoid frustration when taking on this new challenge.
Making the Case for Accessibility
How to convince your team to invest in more accessible design.
Google Home Hub Redesign Concept — a UX case study
After using my Google Home Hub every day for four months, I noticed that its UI can be designed to better display information at varied distances.
Tesla’s Touchscreen UI: A Case Study of Car-Dashboard User Interface
Vehicle controls should be easily accessible and require minimum attention from drivers, while driving-related information should be displayed clearly and understandably.
7 Best UX Practices for Designing Long Online Forms
For those who are designing long forms that have more than 7 questions, this article is for you. Here is a guide to help you build better long format forms, applications, or information requests.
The following is a compilation of the books recommended by over 100 founders and makers in tech, compiled from various sources. These are some of the books that most influenced or helped their professional careers, sorted by the number of recommendations.
极客公园 Rebuild 2019
The fourth industrial revolution has to be for everyone
Countries around the world have agreed to work toward achieving universal, affordable internet access by 2020 as part of the United Nations Sustainable Development Goals. However, right now we’re on track to miss this goal by decades. With the rate of people coming online slowing down, we’re unlikely to achieve universal access until after 2050.
在全国人民都在因华为收到美国禁令，为其忧心之时，任正非再次接受了国内媒体的采访，谈笑间将外界的担忧做了一一化解，并且告诉大家不要因为华为绑架全社会的爱国情绪，不要煽动民族情绪。对于美国的禁令，任正非仍然持开放的态度表示不会轻易狭隘的排除美国芯片，要共同成长，但如果出现供应困难，华为也有备份。虽然华为走到了制高点，与美国有冲突，但最终还是要一起为人类做贡献。限制华为的背后其实是美国在担心失去对 5G 和 IOT 时代的控制权。
对数据可视化有兴趣的可以阅读由 AntV 带来的 墨者修齐 2019-05-27·冰与火之歌最终季口碑滑铁卢可视化、地铁线路图设计、Github 图可视化