微信搜索『FEX』关注我们的公众号,及时获得最新资讯。

深阅读

React 16 beta
https://github.com/facebook/react/issues/10294
React 16 is the first release that ships with a rewrite of the React core (previously codenamed “Fiber”). This initial React 16.0 release is mostly focused on compatibility with existing apps. It does not enable asynchronous rendering yet. We will introduce an opt-in to the async mode later during React 16.x. 另附:Error Handling in React 16, Top Resources to Explore React Fiber.

A new V8 is coming, Node.js performance is changing
https://www.nearform.com/blog/node-js-is-getting-a-new-v8-with-turbofan/
In recent years Matteo Collina and I have focused on finding out how to write performant Node.js code. Of course this means knowing which approaches are fast and which approaches are slow when our code is executed by the V8 JavaScript engine. Now it’s time for us to challenge all our assumptions about performance, because the V8 team has has written a new JIT Compiler: Turbofan.

REST APIs are REST-in-Peace APIs. Long Live GraphQL
https://medium.freecodecamp.org/rest-apis-are-rest-in-peace-apis-long-live-graphql-d412e559d8e4
After years of dealing with REST APIs, when I first learned about GraphQL and the problems it’s attempting to solve, I could not resist tweeting the exact title of this article.

The Ultimate Guide to JavaScript Fatigue: Realities of our industry
http://lucasfcosta.com/2017/07/17/The-Ultimate-Guide-to-JavaScript-Fatigue.html
Complaining about JS Fatigue is just like complaining about the fact that humanity has created too many tools to solve the problems we have, from email to airplanes and spaceships. My goal with this post is to change the way you think about software engineering in general and help you in any areas you might work on.

Progressively Enhancing CSS Layout: From Floats To Flexbox To Grid
https://www.smashingmagazine.com/2017/07/enhancing-css-layout-floats-flexbox-grid/
Earlier this year, support for CSS grid layout landed in most major desktop browsers. Naturally, the specification is one of the hot topics at meet-ups and conferences. After having some conversations about grid and progressive enhancement, I believe that there’s a good amount of uncertainty about using it. I heard some quite interesting questions and statements, which I want to address in this post.

QML vs. HTML5
http://blog.qt.io/blog/2017/07/28/qml-vs-html5/
Mobile devices have set the standard in terms of responsiveness and user-friendliness for HMIs across industries. Manufacturers of cars, medical equipment, industrial automation systems and consumer electronics now want to replicate this great user experience for their embedded devices. To find out which technology strategy we should select we set up a test where one of our developers was allocated 160 hours to create a demo application of an embedded system using Qt & QML and same number of hours to create the very equivalent application using HTML5.

[译]Dropbox公司的Go语言探索之路
https://mp.weixin.qq.com/s?__biz=MzIwMzg1ODcwMw==&mid=2247486708&idx=1&sn=37e60bc058ad816cf9ccf527b806c507
Go 语言高效、可扩展且极具生产能力。一部分程序员乐于加以运用,但也有一些人认为其难以理解甚至非常无聊。不可否认的是,Go 在具体实践中确实为不少公司带来了好处,且让我们看看 Dropbox 公司的 Go 语言探索道路。

[译]API 设计原则 - QT 设计实践总结
https://github.com/oldratlee/translations/blob/master/api-design-principles-from-qt/README.md
Qt的设计水准在业界很有口碑,一致、易于掌握和强大的API是Qt最著名的优点之一。此文既是Qt官网上的API设计指导准则,也是Qt在API设计上的实践总结。虽然Qt用的是C++,但其中设计原则和思考是具有普适性的(如果你对C++还不精通,可以忽略与C++强相关或是过于细节的部分,仍然可以学习或梳理关于API设计最有价值的内容)。整个篇幅中有很多示例,是关于API设计一篇难得的好文章。

[译]回顾 ESLint 的成功
https://github.com/xitu/gold-miner/blob/master/TODO/reflections-on-eslints-success.md
我在 2013 年 6 月构思开发了 ESLint,7 月第一次对外发布。熟悉的读者可能还记得,ESLint 最初主要设计目标是运行时加载的检查工具(linter)。在工作中我看到我们的 JavaScript 代码中的一些问题,希望能有一些自动化的手段避免这些问题再次出现。在 ESLint 发布后的 2 年半里,它的受欢迎程度大大增加。所有这一切发生了,然而过去 2 年我患上了很严重的莱姆病,几乎无法离开我的房子。这意味着我不能够外出参加会议和聚会来宣传 ESLint(前 2 年我可是会议常客)。但不知为何,ESLint 获得了广泛关注,并且继续收到欢迎。我觉得是时候回顾其中缘由了。

腾讯研发总监王辉:十亿级视频播放技术优化揭秘
http://36kr.com/p/5084585.html
介绍得很详细,有大量技术点

React Internals, Part One: basic rendering
http://www.mattgreer.org/articles/react-internals-part-one-basic-rendering/
重新实现基本的 React 功能来学习

Vue 全站服务器渲染 SSR 实践
https://mp.weixin.qq.com/s?__biz=MzIwNjEwNTQ4Mw==&mid=2651577060&idx=1&sn=ea2ce636cc809f5413e9865b706c9a18
性能问题依然很严重

Starting the Avalanche - Application DDoS In Microservice Architectures
https://medium.com/netflix-techblog/starting-the-avalanche-640e69b14a06
In this blog post, we will discuss an effort at Netflix to identify, test, and remediate application layer DDoS attacks. We will begin with some background on the problem space. Next we will discuss the tools and methods we used to test our systems. Finally, we will discuss steps for making systems more resilient against application layer DDoS attacks.

The Road to uChat_ Building Uber’s Internal Chat Solution
https://eng.uber.com/uchat/
So after testing multiple off-the-shelf alternatives, we built uChat, our custom in-house messaging platform, by leveraging open source platform Mattermost and Puppet, the Uber standard for deployment configuration management. In this article, we discuss how in just three months our team transitioned the company to a new solution capable of reliably delivering over one million messages per day to tens of thousands of users, all in one unified chat environment.

The MDN Redesign “Behind the Scenes”
https://hacks.mozilla.org/2017/07/the-mdn-redesign-behind-the-scenes/
Kuma, the code that produces the MDN site, is a weird mix of the old and the new. MDN turned ten in 2015 and there’s still code and content around from those very first days. When I sat down to start coding the current redesign, the first thing I did was remove the last few traces of the last redesign. One of the ways we deal with old code in kuma is with the campsite rule: Always leave your campsite better than you found it. A redesign touches a lot of files, and this was a great opportunity to clean up and refactor — at least until the deadline started getting close.

LinkedIn Passes IPv6 Milestone
https://engineering.linkedin.com/blog/2017/07/linkedin-passes-ipv6-milestone
Earlier this month, and for the first time in our company’s history, more than 50% of pages on LinkedIn were accessed over IPv6 from mobile devices in the U.S.

Why Composition is Harder with Classes
https://medium.com/javascript-scene/why-composition-is-harder-with-classes-c3e627dcd0aa
ES6 includes a convenient class syntax, so you may be wondering why we should care about factories at all. All of that implies that, unlike factory functions, classes are not a good solution for composing functional mixins. You can still achieve composition using class, but it’s a much more complex process, and as you’ll see, the additional costs are usually not worth the extra effort.

How do I know if I’m good at programming
http://www.danielslater.net/2017/07/how-do-i-know-if-im-good-at-programming.html
So how do I know if I’m good at programming? A good place to start is to ask “what is good code?”. If a programmer can’t produce good code, they aren’t a good programmer.

A story about how I tried to get into game development and failed
http://enterprisecraftsmanship.com/2017/07/17/a-story-about-how-i-tried-to-get-into-game-development-and-failed/
If you read this blog regularly, you know that I usually write about DDD, functional programming, and enterprise software development best practices in general. These are the techniques I enjoy talking about, as well as applying them in my own projects. However, there was another field I always wanted to try myself in. That is game development. The ability to write my own games was the reason why I started learning to program in the first place. And I believe many programmers had this motivation behind their careers as well.

The Missing Advice I Needed When Starting My Career
https://www.smashingmagazine.com/2017/07/missing-advice-when-starting-career/
Look Beyond The Web For Inspiration, Stop Obsessing Over Tools, Get Better At Working With Others, Always Push Beyond Your Job Description Link, Commit To Putting Yourself Out There , Don’t Put Up With A Terrible Boss.

Should the ‘KEG’ Stack Replace the LAMP Stack?
https://thenewstack.io/keg-stack-replace-lamp-stack/
For years, the LAMP stack (Linux, Apache, MySQL, PHP/Python/Perl) has been an oasis for developers looking to build modern apps without getting locked into the desert of some big vendor’s ecosystem. Here’s a snapshot of what a new LAMP stack might look like today if we recast it with more modern tools and frameworks: Kubernetes Replaces Both Linux and Apache, Etcd (Maybe) Replaces MySQL, Go Replaces Python. 另附:How does enterprise-ready Kubernetes transform software delivery

新鲜货

Flash will be EOL by 2020
https://techcrunch.com/2017/07/25/get-ready-to-say-goodbye-to-flash-in-2020/
Adobe today announced that Flash, the once-ubiquitous plugin that allowed you to play your first Justin Bieber video on YouTube and Dolphin Olympics 2 on Kongregate, will be phased out by the end of 2020. 另:Chrome - So long, and thanks for all the FlashPetition to open source Flash specFirefox Roadmap for Flash End-of-LifeMigrating Games from Flash to Open Web Standards on Facebook

Node.js Emerging as the Universal Development Framework for a Diversity of Applications
https://hackernoon.com/node-js-emerging-as-the-universal-development-framework-for-a-diversity-of-applications-c2e788290f5f
We wanted to see what technologies you are using alongside Node.js, how you are learning Node.js, what Node.js versions you are using, and how these answers differ across the globe. 另附:What Node.js is used for in 2017 - Survey Results

Promise.prototype.finally
https://github.com/tc39/proposal-promise-finally#readme
ECMAScript Proposal, specs, and reference implementation for Promise.prototype.finally.

The Ultimate Uploading Experience in 5 Minutes
https://css-tricks.com/ultimate-uploading-experience-5-minutes/
Filestack is a web service that completely handles file uploads for your app.

Announcing Ghost 1.0
https://blog.ghost.org/1-0/
About four years ago we launched Ghost on Kickstarter as a tiny little prototype of an idea to create the web’s next great open source blogging platform. Today marks our 100th release of Ghost and, fittingly, it’s Ghost 1.0.0. A new editor, A new default theme design, Night shift mode…

The New Firefox and Ridiculous Numbers of Tabs
https://metafluff.com/2017/07/21/i-am-a-tab-hoarder/
如果你经常同时打开很多 tab,或许可以期待后续的 Firefox 版本

Pik
https://github.com/google/pik
Google 新开源的一种图片格式,不过基本没啥介绍

Redux-First Router
https://github.com/faceyspacey/redux-first-router
The goal of is to think of your app in states, not routes, not components, while keeping the address bar in sync. Everthing is state, not components. Connect your components and just dispatch flux standard actions. 附: Redux-First Router data-fetching: solving the 80% use case for async Middleware.

Moon - A minimal, blazing fast UI library
https://github.com/KingPixil/moon
Moon is a simple front end javascript library heavily inspired by Vue. The library is fast, flexible, and easy to learn. Check out the Medium Article on the motivations for making this.

Kea - High level abstraction between React and Redux
https://github.com/keajs/kea
A kea is two things: An extremely smart mountain parrot from New Zealand; An equally smart architecture for frontend webapps, built on top of React and Redux.

image-compressor
https://github.com/xkeshi/image-compressor
A simple JavaScript image compressor. Uses the Browser’s native canvas.toBlob API to do the compression work. General use this to precompress a client image file before upload it.

Spacetime
https://github.com/smallwins/spacetime
A lightweight way to manipulate, traverse, compare, and format dates and times across planet Earth.

The JavaScript Way
https://github.com/bpesquet/thejsway/
A modern introduction to an essential language. This book aims to be a useful companion for anyone wishing to (re)discover the many facets of JavaScript.

Zapsnap
https://zapsnap.io
Temporary peer to peer screenshot sharing from your browser

ncnn
https://github.com/Tencent/ncnn
一个为手机端极致优化的高性能神经网络前向计算框架

DrQA - Reading Wikipedia to Answer Open-Domain Questions
https://github.com/facebookresearch/DrQA
DrQA is a system for reading comprehension applied to open-domain question answering. In particular, DrQA is targeted at the task of “machine reading at scale” (MRS). In this setting, we are searching for an answer to a question in a potentially very large corpus of unstructured documents (that may not be redundant).

SPIF - Streaming Progressive Image Format
http://fhtr.org/multires/spif/spif.html
一种尝试性的图片文件格式

Gophercon 2017 Talk Slides, Links and Videos
https://golangweekly.com/

产品及其它

Project management is better when it’s visual
https://dapulse.com/
Manage your workload, communicate with your team, and celebrate success.

Lyft技术团队管理实战
https://mp.weixin.qq.com/s?__biz=MzA4NTU2MTg3MQ==&mid=2655160762&idx=1&sn=ed63e84c91fed0880854d90a9611f6d0
Lyft 开放平台(Public API Platform)是对 Lyft 主 app 的延伸,包括 Lyft 企业版、礼宾服务、与酒店航空等其它行业的合作对接,以及与其他平台的深度整合与资源共享。对于这样多个职能部门合作,业务覆盖面广的大型项目,除了需要高质素的研发人员之外,良好的团队文化至关重要。营造正确的团队文化有两个直接的目的:提高团队效率;促进人才培养。

App的分水岭:变得更重,还是更轻
https://mp.weixin.qq.com/s?__biz=MjM5NzY2OTE2MQ==&mid=2652216846&idx=1&sn=6e12da525f808215385d74a8567c7dc4
复杂和简单,都可以各取所需,产品设计的温度,都在这里彰显出来。可以预见的是,如何处理App的生长轨迹——平衡过度冗余和轻便上手的关系——将是移动互联网的一场长期博弈,有人对万能多变的瑞士军刀爱不释手,也有人钟情于专注清晰的单件器具。

游戏策划师剖析:为什么王者荣耀会让你上瘾
https://mp.weixin.qq.com/s?__biz=MzI2NTY4MDg1NA==&mid=2247488234&idx=1&sn=455bc7bb19e95071fc5b151b8ae3c8c0
为什么王者荣耀会让我们感觉如此好玩以至于上瘾?从流程的角度来看,这个问题可以被拆解为三个问题:1、为什么王者荣耀能够快速吸引住新玩家?2、为什么玩家会始终保有期待而不弃坑?3、为什么王者荣耀拥有如此长的生命周期?接下来我将带领大家一个一个地去拆解这些问题。

周鸿祎:致想念我的人民
https://mp.weixin.qq.com/s?__biz=MTA3NDM1MzUwMQ==&mid=2651942572&idx=1&sn=d05fd8d2c483676bbd3f6f2a8e2597c4
一夜之间,互联网上大家都在想念我,弄的我好像怎么了似的。如果不出来回复下,好像我就真的怎么了似的。其实我知道,大家也不是想念我,是想念讲真话的人,是想念挑战者,也是想念互联网的炮火声。创业阶层固化只是短期现象,长远看,任何阶层都会被打破的。创业者们不需要担心的是,站队也好,插旗子也好,都阻止不了格局被打破。互联网发展中,真正能够阻止格局被打破,或者能够打破格局的,应该是创新。

作者:zhangbobell (http://zhangbobell.cn) - 恰同学少年,风华正茂