Google Computer Science Education
Computer science (CS) education is a pathway to innovation, to creativity and to exciting career opportunities. We believe that all students deserve these opportunities. That is why Google is committed to developing programs, resources, tools and community partnerships which make CS engaging and accessible for all students.

软件开发团队关于软件架构或技术栈的决策,很多并不是基于扎实的研究和对期望效果的认真思考,而是不准确的意见、社交媒体的信息,或者就些是“热门”玩意。这种做派的危害我见过不少,称它为“热闹驱动开发(Hype Driven Development,HDD)”。我赞成的是更专业的做法,称之为“脚踏实地的软件工程”。下面一起看看HDD的来龙去脉,想想我们能怎么改进。另附:技术选型最怕的是什么

Front-End Developer Handbook 2017
The content of the handbook favors web technologies (HTML, CSS, DOM, and JavaScript) and those solutions that are directly built on top of these open technologies. The materials referenced and discussed in the book are either best in class or the current offering to a problem. The book should not be considered a comprehensive outline of all resources available to a front-end developer. The value of the book is tied up in a terse, focused, and timely curation of just enough categorical information so as not to overwhelm anyone on any one particular subject matter.

Announcing GVFS (Git Virtual File System)
Today, we’re introducing GVFS (Git Virtual File System), which virtualizes the file system beneath your repo and makes it appear as though all the files in your repo are present, but in reality only downloads a file the first time it is opened. GVFS also actively manages how much of the repo Git has to consider in operations like checkout and status, since any file that has not been hydrated can be safely ignored. And because we do this all at the file system level, your IDEs and build tools don’t need to change at all!

Building Zero protocol for fast, secure mobile connections
Over the past year, we’ve built and deployed Zero protocol to our mobile apps and load balancers. We’ve seen performance improvements that include a 41 percent reduction in connection latency and 2 percent reduction in total request time. We’ve learned several practical engineering lessons about the trade-offs associated with 0-RTT protocols, such as API design, security properties, and deployment, and have contributed some of our findings to TLS 1.3, which is now near maturity. We hope the lessons we share here are applicable to apps that will deploy TLS 1.3 in the future.

Why 2016 Was the Best Year Ever for Node.js
Yes, that’s right, I’m going to argue that 2016 was our best year ever, and may go down as the most important period in the history of Node.js, backed by some hard numbers from this year’s Node by Numbers

JavaScript Will Finally Get Proper Asynchronous Programming
The proposal to include async function in ECMAScript has reached stage four; that means it’s on track to be in the 2017 release of the standard. But what does that mean for JavaScript developers?

CQRS Explained - Node.js at Scale
CQRS is an architectural pattern, where the acronym stands for Command Query Responsibility Segregation. We can talk about CQRS when the data read operations are separated from the data write operations, and they happen on a different interface. In most of the CQRS systems, read and write operations use different data models, sometimes even different data stores. This kind of segregation makes it easier to scale, read and write operations and to control security - but adds extra complexity to your system.

Introducing Lottie
Lottie is an iOS, Android, and React Native library that renders After Effects animations in real time, and allows native apps to use animations as easily as they use static assets.

Everything you need to know about HTTP security headers
This article explains what secure headers are and how to implement these headers in Rails, Django, Express.js, Go, Nginx, and Apache.

下一代 Web 应用模型 —— Progressive Web App

(More than) one million requests per second in Node.js
介绍用 uws 实现高性能的 http 服务。另附:A million requests per second with Python

CSS Grid – Table layout is back. Be there and be square
If you are familiar with Flexbox, Grid should feel familiar. Rachel Andrew maintains a great website dedicated to CSS Grid to help you get started. Grid is now available in Google Chrome. 另附:Grid by Example

Why I created junctions.js
Junctions is a new, composable alternative to react-router.

What happens when you use RxJS in React?
The ReactiveX Observable model allows you to treat streams of asynchronous events with the same sort of simple, composable operations that you use for collections of data items like arrays. It frees you from tangled webs of callbacks, and thereby makes your code more readable and less prone to bugs.

Crash Course: UI Design
At their most simple forms, UX design is what makes an interface useful, and UI design is what makes an interface beautiful. For UI, this includes a blend of visual hierarchy and interface elements. To understand what separates a great interface from a good interface, one must understand the UI design is merely just one layer of the entire design process. Perhaps this is why people often confuse UX and UI. In the following few paragraphs, however, I hope to help you as the audience or reader understand where the differences lie in the context of the design process.


The most popular Front-End links of 2016


Open-sourcing Chrome on iOS!
Historically, the code for Chrome for iOS was kept separate from the rest of the Chromium project due to the additional complexity required for the platform. After years of careful refactoring, all of this code is rejoining Chromium and being moved into the open-source repository.
Chrome 近期会推出这个功能:Integrating Progressive Web Apps deeply into Android

Open-Sourcing Google Earth Enterprise
We are excited to announce that we are open-sourcing Google Earth Enterprise (GEE), the enterprise product that allows developers to build and host their own private maps and 3D globes. With this release, GEE Fusion, GEE Server, and GEE Portable Server source code (all 470,000+ lines!) will be published on GitHub under the Apache2 license in March.

GitLab.com Database Incident
We had a serious incident with one of our databases. We lost six hours of database data (issues, merge requests, users, comments, snippets, etc.) for GitLab.com. Git/wiki repositories and self-hosted installations were not affected. Losing production data is unacceptable and in a few days we’ll publish a post on why this happened and a list of measures we will implement to prevent it happening again.
另附:GitLab Database Incident – Live Report 从Gitlab误删除数据库想到的

JS1k 2017
Create some JavaScript program with a max size of 1k and make it do something cool. Submit it before March 2017 for fame and a chance of a prize!

Mithril 1.0 Released
At 3 years old, Mithril has reached its 1.0 milestone. Mithril is a modern client-side Javascript framework for building Single Page Applications.
It’s small (< 8kb gzip), fast and provides routing and XHR utilities out of the box. Mithril is used by companies like Vimeo and Nike, and open source platforms like Lichess.

HyperApp is a 1kb functional JavaScript library for building modern UI applications.

NativeScript 2.5 is Now Available

Service Mocker - Next generation frontend API mocking framework
Service Mocker is an API mocking framework for frontend developers. With the power of service workers, we can easily set up mocking services without any real servers. It sets developers free from intricate workflows, complex documentations and endless proxies from server to server.

ReactJS based Presentation Library

tectonic - A declerative REST data loader for react + redux
Tectonic is a small library that makes loading REST API data a one-liner within your redux apps. You’ll write 80% less data loading code: no more action, reducer, normalizr, reselect boilerplate. Tectonic handles all actions, reducer data management, and prop injection for you &emdash; with one line. Plus you can swap out real data for fake data using a mock driver with one line. Overall, it’s fast to write and maintain, plus it’ll save your sanity.

Nachos UI Kit for React Native
Nachos UI is a React Native component library.

Jimp - The JavaScript Image Manipulation Program
An image processing library written entirely in JavaScript for Node, with zero external or native dependencies.

用纯 JS 实现的 mpeg 解码

Dependency injection library for JavaScript and TypeScript in 6.6K. It is an extraction of the Angular’s dependency injection which means that it’s feature complete, fast, reliable and well tested.

Breakdance - a node.js library for converting HTML to markdown
Breakdance uses cheerio to parse HTML, and snapdragon for rendering, which provides comprehensive coverage of HTML 4 and 5 elements, and granular control over the entire conversion process in a way that is easy to understand, reason about, and customize.

Exploring ES2016 and ES2017
This book is about ECMAScript 2016 and ECMAScript 2017, new versions of JavaScript. It only covers what’s new in those versions.

Visual Studio Code 1.9

VUE 的 UI 库

mJS: Restricted JavaScript engine
mJS is designed for microcontrollers with limited resources.

Visual Studio Test Platform is the runner and engine that powers test explorer and vstest.console.


企鹅智库 - 2017必读报告:中国互联网未来5年趋势白皮书


Apple 核心系统高级工程师 Asta 谢(谢孟军)就《开源如何影响程序员》这一主题,结合自身经历、从开源中得到的自我提升,详细阐述了自己对开源的理解,如何在国内做开源,并成为 github 上 Go 语言领域中国排名第一,以及如何同国内外开源者一起参与开源的过程。

挺实在的经验:自我管理、培养自驱力、建立自己的不可替代性、好善乐施 & 知恩图报。

[译]Uncle Bob:如何成为一名优秀的软件架构师?

年终总结 - 码农篇