React 16 beta
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
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
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
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
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.

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.

Go 语言高效、可扩展且极具生产能力。一部分程序员乐于加以运用,但也有一些人认为其难以理解甚至非常无聊。不可否认的是,Go 在具体实践中确实为不少公司带来了好处,且让我们看看 Dropbox 公司的 Go 语言探索道路。

[译]API 设计原则 - QT 设计实践总结

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


React Internals, Part One: basic rendering
重新实现基本的 React 功能来学习

Vue 全站服务器渲染 SSR 实践

Starting the Avalanche - Application DDoS In Microservice Architectures
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
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”
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
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
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
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
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
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?
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
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
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

ECMAScript Proposal, specs, and reference implementation for Promise.prototype.finally.

The Ultimate Uploading Experience in 5 Minutes
Filestack is a web service that completely handles file uploads for your app.

Announcing Ghost 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
如果你经常同时打开很多 tab,或许可以期待后续的 Firefox 版本

Google 新开源的一种图片格式,不过基本没啥介绍

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
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
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.

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.

A lightweight way to manipulate, traverse, compare, and format dates and times across planet Earth.

The JavaScript Way
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.

Temporary peer to peer screenshot sharing from your browser


DrQA - Reading Wikipedia to Answer Open-Domain Questions
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

Gophercon 2017 Talk Slides, Links and Videos


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

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




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