FEX 技术周刊 - 2017/02/13
微信搜索『FEX』关注我们的公众号,及时获得最新资讯。
业界会议
F8 Registration is Now Open!
https://developers.facebook.com/blog/post/2017/02/07/F8-2017/
It’s that time of year again — registration is officially open for F8, our annual global developer conference, taking place on April 18 + 19, 2017, in San Jose, CA. Join more than 4,000 developers from around the world as they learn about the latest Facebook products, share ideas with one another, and explore ways to make the world more open and connected.
Web Components Remote Conf: February 16-17, 2017 NEWS
https://wcremoteconf.com/
An online conference with 16 great sounding Web Components talks.
深阅读
Next-generation 3D Graphics on the Web
https://webkit.org/blog/7380/next-generation-3d-graphics-on-the-web/
We’re sharing an API proposal, and a prototype of that API for the WebKit Open Source project. We hope this is a useful starting point, and look forward to seeing the API evolve as discussions proceed in the Community Group. Let’s cover the details of how we got to this point, and how this new group relates to existing Web graphics APIs such as WebGL. metal 的 webgl 版本,微软和谷歌会接受么?
Graph Engine - SERVING BIG GRAPHS IN REAL-TIME
https://github.com/Microsoft/GraphEngine
https://www.graphengine.io/
Microsoft Graph Engine is a distributed in-memory data processing engine, underpinned by a strongly-typed in-memory key-value store and a general distributed computation engine. Graph Engine (GE) is a distributed in-memory data processing engine, underpinned by a strongly-typed RAM store and a general distributed computation engine. The distributed RAM store provides a globally addressable high-performance key-value store over a cluster of machines. Through the RAM store, GE enables the fast random data access power over a large distributed data set.
JavaScript Start-up Performance
https://medium.com/@addyosmani/javascript-start-up-performance-69200f43b201#.lw9hoijm1
译文:http://mp.weixin.qq.com/s?__biz=MzIwNjQwMzUwMQ==&mid=2247484987&idx=1&sn=7f20da20bc6baed62ca8ff115209942b
As web developers, we know how easy it is to end up with web page bloat. But loading a webpage is much more than shipping bytes down the wire. Once the browser has downloaded our page’s scripts it then has to parse, interpret & run them. In this post, we’ll dive into this phase for JavaScript, why it might be slowing down your app’s start-up & how you can fix it.
React Native at Instagram
https://engineering.instagram.com/react-native-at-instagram-dd828a9a90c7#.88w3t9ina
Developer velocity is a defining value of Instagram’s mobile engineering. In early 2016, we started exploring using React Native to allow product teams to ship features faster through code sharing and higher iteration speeds, using tools like Live Reload and Hot Reloading that eliminate compile-install cycles.
Beringei: A high-performance time series storage engine
https://code.facebook.com/posts/952820474848503/beringei-a-high-performance-time-series-storage-engine/
Operating large-scale, globally distributed services requires accurate monitoring of the health and performance of our systems to identify and diagnose problems as they arise. Facebook uses a time series database (TSDB) to track and store system measurements such as product stats (e.g., how many messages are being sent per minute), service stats (e.g., the rate of queries hitting the cache tier vs the MySQL tier), and system stats (e.g., CPU, memory, and network usage), so that we can see the real-time load on our infrastructure and make decisions about how to allocate resources. 相关文:Facebook开源内存数据库Beringei,追求极致压缩率
Our long term plan to make GitLab as fast as possible with Vue and Webpack
https://about.gitlab.com/2017/02/06/vue-big-plan/
The Frontend at GitLab is getting better and better every day. Today we did two big things, and I’d like to share them with you and our big plans for the future.
What’s in an AMP URL?
https://developers.googleblog.com/2017/02/whats-in-amp-url.html
We’re adding a feature to the AMP integration in Google Search that allows users to access, copy, and share the canonical URL of an AMP document. But before diving deeper into the news, let’s take a step back to elaborate more on URLs in the AMP world and how they relate to the speed benefits of AMP.
WebPack is not the only way
https://medium.com/fusebox/webpack-is-not-the-only-way-6ddb67e99be9#.y10e1qjj5
FuseBox is a new generation bundler and module loader, it is the result of our years of experience dealing with complex projects requirements and many of the development tools out there. 另附: Why Webpack 2’s Tree Shaking is not as effective as you think、Javascript Tooling - The Evolution and Future of JS & Front-end Build Tools
HTML APIs: What They Are And How To Design A Good One
https://www.smashingmagazine.com/2017/02/designing-html-apis/
HTML APIs improve collaboration between designers and developers, lift some work from the shoulders of the latter, and enable designers to create much higher-fidelity mockups. Including an HTML API in your library does not just make the community more inclusive, it also ultimately comes back to benefit you, the programmer.
Concurrency and Parallelism: Understanding I/O
https://blog.risingstack.com/concurrency-and-parallelism-understanding-i-o/
With this article, we are launching a series of posts targeting developers who want to learn or refresh their knowledge about writing concurrent applications in general. The series will focus on well-known and widely adopted concurrency patterns in different programming languages, platforms, and runtimes.
Why Elm? (And How To Get Started With It)
https://css-tricks.com/elm-get-started/
Elm is a relatively new programming language to build web applications created by Evan Czaplicki in 2012 as part of his thesis about Concurrent FRP for Functional GUIs. Because it’s targeted to the web—and browsers only understand a limited set of languages—the code that you write in Elm is compiled to HTML, CSS, and JS.
Between the Wires | MooTools
https://betweenthewires.org/between-the-wires-mootools-7ac80d4ca28f#.o31o1hrjx
听 MooTools 的作者讲这个当初很火的类库的故事以及他们对 Web 开发的理解,MooTools 的核心成员现在已经是 React 社区的贡献者。
How Google builds web frameworks
https://medium.freecodecamp.com/how-google-builds-a-web-framework-5eeddd691dea#.fezoagteo
It’s public knowledge that Google uses a single repository to share code — all 2 billion lines of it — and that it uses the trunk-based development paradigm. This article is about the specifics of building an open source web framework (AngularDart) in this context. 另附:不可不知的谷歌集群管理经验
Optimizations in Syntax Highlighting
https://code.visualstudio.com/blogs/2017/02/08/syntax-highlighting-optimizations
TextMate themes will look more like their authors intended in VS Code 1.9, while being rendered faster and with less memory consumption.
A first look at WebAssembly performance
http://www.stefankrause.net/wp/?p=405
WebAssembly gives us the promise to run high performance code in the browser in a standardized way. Now that there are a few WebAssembly previews available I decided it’s time to take a look at their performance. One source for benchmarks is the well known Computer Language Benchmarks Game and I decided to pick nbody (it’s almost four years ago since I did so last time…). 另:WebAssembly logo voting.
从配置文件带你认识FIS3
http://www.jianshu.com/p/1bbd5fa05a86
通过例子学习
如何评价阿里开源的企业级 Node.js 框架 egg
https://www.zhihu.com/question/50526101/answer/144952130
egg.js 算是一个良心之作。
今日头条iOS客户端启动速度优化实践
http://mp.weixin.qq.com/s?__biz=MzA3ODg4MDk0Ng==&mid=2651113098&idx=1&sn=9edba2142c80f1082b95675c1a836a33
应用启动时间,直接影响用户对一款应用的判断和使用体验。头条主app本身就包含非常多并且复杂度高的业务模块(如新闻、视频等),也接入了很多第三方的插件,这势必会拖慢应用的启动时间,本着精益求精的态度和对用户体验的追求,我们希望在业务扩张的同时最大程度的优化启动时间。
从Chrome源码看浏览器的事件机制
https://zhuanlan.zhihu.com/p/25095179
通过源码更深入了解
详谈[七牛直播云]性能优化实践
https://zhuanlan.zhihu.com/p/23237201
每个阶段如何优化
When to Define Action Creators in Redux
https://daveceddia.com/redux-action-creators/
This post will go over why action creators exist, why they’re worth using, and when you can skip them.
The State of Go - Where we are in February 2017
https://talks.golang.org/2017/state-of-go.slide#1
了解下 Go 语言的现状。
Introducing Docker Secrets Management
https://blog.docker.com/2017/02/docker-secrets-management/
We fundamentally believe that apps are safer if there is a standardized interface for accessing secrets. Any good solution will also have to follow security best practices, such as encrypting secrets while in transit; encrypting secrets at rest; preventing secrets from unintentionally leaking when consumed by the final application; and strictly adhere to the principle of least-privilege, where an application only has access to the secrets that it needs—no more, no less.
新鲜货
Twitter moved all of it’s mobile web traffic to our new web stack – Node.js, Express, React PWA
https://twitter.com/necolas/status/829128165314306048
相关文章:Dissecting Twitter’s Redux Store
阿里巴巴Java开发手册
https://yq.aliyun.com/articles/69327
阿里巴巴近万名开发同学集体智慧的结晶,以开发视角为中心,详细列举如何开发更加高效、更加容错、更加有协作性,力求知其然,更知其不然,结合正反例,让Java开发者能够提升协作效率、提高代码质量。
Web Share API brings the native sharing capabilities to the browser
https://blog.hospodarets.com/web-share-api
The Web Share API is the first step to fill the gap and bring the native sharing capabilities to the Web.
Add <h>
element
https://github.com/w3c/html/issues/774
We need a heading element without implicit order. We need a heading element that can be updated without being replaced. Please consider
Server-side timings in the Chrome Devtools
https://ma.ttias.be/server-timings-chrome-devtools/
The timings tab can interpret HTTP headers sent by the application and render them.The format is very simple the Server-Timing header can contain a key=value pattern with an additional description.
Airbnb React/JSX Style Guide
https://github.com/airbnb/javascript/blob/master/react/README.md
A mostly reasonable approach to React and JSX.
RethinkDB joins The Linux Foundation
https://rethinkdb.com/blog/rethinkdb-joins-linux-foundation/
The CNCF purchased the rights to the RethinkDB source code and contributed it to The Linux Foundation under the permissive ASLv2 license.
NodeGit
https://github.com/nodegit/nodegit
Native Node bindings to Git. NodeGit will work on most systems out-of-the-box without any native dependencies.
Simple Statistics
http://simplestatistics.org/
Simple Statistics is a JavaScript library that implements statistical methods. It helps coders harness the power of statistics and statisticians understand code. The library is exhaustively documented, written in a simple and friendly style, and thoroughly tested.
Introducing GraphicsJS, a Powerful Lightweight Graphics Library
https://www.sitepoint.com/introducing-graphicsjs-a-powerful-lightweight-graphics-library/
In this article, I want to introduce you to GraphicsJS, a new and powerful open-source JavaScript drawing library, which is based on SVG (with VML fallback for old IE versions). I’ll start with a quick introduction to its basics, and then showcase the functionality of the library with the help of two short, yet spectacular samples: the first one is all about art, whereas the second one illustrates how to code a simple time-killer art game in less than 50 lines.
Mnemonist
https://yomguithereal.github.io/mnemonist/
Mnemonist is a collection of data structures implemented in JavaScript. It gathers classic data structures (think heap, trie etc.) as well as more exotic ones such as Burkhard-Keller trees etc. It strives at being: As performant as possible for a high-level language; Completely modular (don’t need to import the whole library just to use a simple heap); Simple & straightforward to use and consistent with JavaScript standard objects’ API.
wuzz - Interactive cli tool for HTTP inspection
https://github.com/asciimoo/wuzz
Wuzz command line arguments are similar to cURL’s arguments, so it can be used to inspect/modify requests copied from the browser’s network inspector with the “copy as cURL” feature.
.dom
https://github.com/wavesoft/dot-dom
.dom borrows some concepts from React.js (such as the re-usable Components and the Virtual DOM) and tries to replicate them with the smallest possible footprint, exploiting the ES6 javascript features. Why? Because with such library you can create powerful GUIs in tight space environments, such as IoT devices, where saving even an extra byte actually matters!
gibon
https://github.com/tunnckoCore/gibon
Functional client-side router in ~570 bytes, built on HTML5 History API
Whitestorm.js
https://github.com/WhitestormJS/whitestorm.js
🚀 🌪 Super-fast 3D framework for Web Applications 🥇 & Games 🎮. Based on Three.js
Top 11 JavaScript Libraries That Are Worth Your Attention
https://hackernoon.com/top-11-javascript-libraries-that-are-worth-your-attention-d2f43d6acfb0#.uxthxlxfj
Considering a long JavaScript libraries list it may be challenging to choose the ones, that are worth of your time and effort. We have already discussed best JavaScript frameworks and today we’d like to investigate the rising stars in terms of JS libraries. You’ve probably heard of such loud names like jQuery or React, which are among the most useful JavaScript libraries, though there are lots of other solutions.
What Programming Languages Are Used Most on Weekends?
http://stackoverflow.blog/2017/02/What-Programming-Languages-Weekends/?cb=1
For me, the weekends are mostly about spending time with my family, reading for leisure, and working on the open-source projects I am involved in. These weekend projects overlap with the work that I do in my day job here at Stack Overflow, but are not exactly the same. 译文在这里,另附:Top mentioned books on stackoverflow.com
Vim’s 25th anniversary and the release of Vim 8
https://lwn.net/Articles/713114/
Vim’s 25th anniversary also coincides with the official release of version 8 on September 12, 2016. Vim 8 is the first major release since the appearance of version 7 in May 2006. Even the last point release, 7.4, was released back in August 2013.
产品及其它
GitLab’s Secret to Managing 160 Employees in 160 Locations
https://blog.ycombinator.com/gitlab-distributed-startup/
Sid’s biggest tip for success in scaling a distributed company: write everything down.
我回阿里的29个月
https://zhuanlan.zhihu.com/p/25146682
来自安全大神道哥的刷屏神文,非常实在。赞:使命一定是解决了他人的问题,而不是解决了自己的问题。解决他人的问题就是「利他」,商业的本质不是交换,而是「利他」。如果理解了企业的根本是客户价值,客户价值的本质是利他,从而鼓励所有员工成为「利他」的人,企业文化才不会流于形式和口号,才能真正成为基业长青的基石。
为什么用QQ而不是微信?这里有87个00后的傲娇回答
http://mp.weixin.qq.com/s?__biz=Mjc1NjM3MjY2MA==&mid=2691316649&idx=2&sn=74349d32d8276e694b96cb0c1b1b8175
微信占有现在,QQ则掌握未来。某种程度上,这契合了社交产品每隔3到5年一个周期的说法。对此,产品经理们各有各的解释,但我们还是想听听95后们到底是怎么说的。他们不仅解释了对QQ的喜爱,可能也暗含了年轻一代的社交图谱。以下,是来自87位00后们的傲娇回答,Enjoy!
李彦宏6000字新年内部演讲
http://tech.qq.com/a/20170207/020968.htm
百度重新确定了战略,AI 和 内容分发将是重头戏,O20 不再是重心,期待百度的回归与再次腾飞。另附:百度的17年产品史、百度在NLP领域都做了什么。