FEX 技术周刊 - 2017/03/13
Polymer 2.0 Release Candidate is available and ready for use!
The new library is more modular than before, starting at just 10kb for Polymer.Element, the base class to extend elements from. We’ve squeezed out even more performance increases on native browsers, like Safari Tech Preview and Chrome. Polymer 2.0 remains focused on bringing development closer to the platform than ever before, leveraging the power of the browser to build performant, large-scale applications.
WebAssembly: Under the hood with Mozilla
Welcome to the Grid
Grid is public. It’s live right now in the latest Firefox release, Firefox 52. It will similarly be live in the next public Chrome release, due in the next week or so. 另附：Firefox 52: Introducing Web Assembly, CSS Grid and the Grid Inspecto、Webkit - CSS Grid Layout: A New Layout Module for the Web、Playing with CSS Grids、CSS Grid: First Steps
The System Design Primer
Learning how to design scalable systems will help you become a better engineer. System design is a broad topic. There is a vast amount of resources scattered throughout the web on system design principles. This repo is an organized collection of resources to help you learn how to build systems at scale.
Self-encapsulation goes a step further, indicating that all internal access to a data field should also go through accessor methods as well. Only the accessor methods should touch the data value itself. If the data field isn’t exposed to the outside, this will mean adding additional private accessors.
Practical Design Discovery
One of the hardest design problems I ever worked on was for a company that helps IT groups manage risk. Their product focused on open-source components—inexpensive and widely supported by an enormous community, but often vulnerable to security flaws.
The Document Outline Dilemma
For the past few weeks there has been lots of talk about HTML headings in web standards circles. Perhaps you’ve seen some of the blog posts, tweets, and GitHub issue threads. Headings have been part of HTML since the very first websites at CERN, so it might be surprising to find them controversial 25 years later. I’m going to quickly summarize why they are still worth discussing, with plenty of links to other sources, before adding my own opinions to the mix.
Create Offline Web Apps Using Service Workers & PouchDB
In this post, we will look at how to add offline support to a basic contact list web app by implementing asset caching, client-side data storage and synchronization with a remote data store.
You might not need a build tool
Build tools come in all size and color. But do you really need them? Wouldn’t it be easier to just follow the original CLI documentation of Rollup, Stylus or whatever and call it a day? Not to mention they add up a lot of dependencies. I’m going to show you the “native” way with NPM scripts and chokidar.
The 80/20 Guide to Async/Await in Node.js
Arguably the biggest new feature in Node.js 7.6.0 is that the much awaited async function keyword is now available without a flag. Callback hell and promise hell are now in the past. But, like Uncle Ben always reminded us, with great power comes great responsibility, and async/await gives you a lot of new and exciting ways to shoot yourself in the foot. You still need to handle errors and be aware of the async nature of your code, otherwise you’ll inevitably be complaining about “async/await hell” in 6 months.
Reducing Slack’s memory footprint
Introducing Similarity Search at Flickr
At Flickr, we understand that the value in our image corpus is only unlocked when our members can find photos and photographers that inspire them, so we strive to enable the discovery and appreciation of new photos.To further that effort, today we are introducing similarity search on Flickr.
Netflix Downloads on Android
Netflix is now a global company, so we wanted to provide a viewing experience that was truly available everywhere even when the Internet is not working well. This led to these three prioritized download use cases: Better, uninterrupted videos on unreliable Internet; Reducing mobile data usage ;Watching Netflix without an Internet connection (e.g. on a train or plane).
结合我们的 Android 项目，谈谈大家在其中使用到的一些设计模式。一则，就个人的学习经验看来，研究例子是最容易学会设计模式的方式；二则，其实设计模式的应用同所使用的编程语言和环境都是有关系的，譬如说，我们最先要讨论的单例模式，在 Java 中实现的时候就要特别注意不同 JDK 版本对该模式造成的影响。
Mobx 中 autoRun 的源码分析
其实不仅仅是前端，图形渲染对于整个软件工程来说，都是一个很特定的研究领域。这就意味着，大部分情况下，你可能并没有那么迫切的需求去学习它。这也是为什么，WebGL 标准推出了那么多年，在前端的各种分享会上，即使介绍，也永远都是 Hello World。这一系列主要针对使用着色器实现不同效果的渲染算法作介绍。对图形有兴趣的同学可以关注这个专栏。
I wanted to see how far I could push myself creatively. So I redesigned Instagram
The challenge: to take an application I love and use everyday, then see how far I could push myself creatively as a designer, by rebuilding it from the ground up.
Sketch Vs. Figma: The Showdown
The past year has seen quite a rise in UI design tools. While existing applications, such as Affinity Designer, Gravit and Sketch, have improved drastically, some new players have entered the field, such as Adobe XD (short for Adobe Experience Design) and Figma. In this article, I’d like to compare both apps in detail and highlight where each of them shines.
What it feels like to be an open-source maintainer
Outside your door stands a line of a few hundred people. They are patiently waiting for you to answer their questions, complaints, pull requests, and feature requests. You want to help all of them, but for now you’re putting it off. Maybe you had a hard day at work, or you’re tired, or you’re just trying to enjoy a weekend with your family and friends.
A Programmer’s Introduction to Unicode
I’m going to focus on the character set and what’s involved in working with strings and files of Unicode text. However, in this article I’m not going to talk about fonts, text layout/shaping/rendering, or localization in detail—those are separate issues, beyond my scope (and knowledge) here.
iOS 开发者们陆续收到苹果邮件，警告去掉动态下发功能，覆盖面很广，内容没有明确指示是什么库，导致大家各种猜测。 其实上周已经有少量用户收到苹果这份警告邮件，当时还以为是特例，现在看来是在灰度测试扫描代码，可见这事苹果应该讨论已久，并专门排期开发测试了扫描程序，直到昨天才正式上线。从各方信息看起来，很不幸主要禁的还是 JSPatch / wax/ rollout 这样的热修复框架，特点是可以通过 JS 脚本调用和替换任意 OC 方法，而像 React Native/ 小程序这样用 JS 做功能的暂时不受影响，Weex 不确定，至于其他库像 AFNetworking / SDWebimage 用到那几个接口的，应该只是误伤。
Introducing Cloud Functions for Firebase
V8 引擎新架构 Ignition + TurboFan 即将正式启用
Bit is a distributed virtual component repository designed for easy use, maintenance and discovery of code components. With Bit, you can virtually create and model components on a distributed Scope, then discover and use these components to dynamically compose a virtual API with the components you actually use in your application. 使用介绍：Managing Code Components with Bit.
Mditor 是一个简洁、易于集成、方便扩展、期望舒服的编写 markdown 的编辑器，支持浏览器: chrome/safari/firefox/ie9+
Introduction to Web Audio API
Web Audio API lets us make sound right in the browser. It makes your sites, apps, and games more fun and engaging. You can even build music-specific applications like drum machines and synthesizers. In this article, we’ll learn about working with the Web Audio API by building some fun and simple projects.
An ORM for Node.js written in typescript. Works with MySQL, PostgreSQL, SQLite and more.
Service Worker Toolchain
A collection of service worker generation tools. Configurable and forkable.
Lint the browser compatibility of your code
Iot-433mhz is a home automation framework for 433mhz devices that runs on node.js. You can control 433MHz RC power sockets, PIR sensors, Door Sensors and much more. To get started you just need a: 433mhz transmitter and receiver, both connected to an Arduino with the iot-433mhz sketch on it; A PC/RaspberryPi that runs the iot-433mhz platform, connected to Arduino through USB.
“💩”.length === 2
Developing a complete REST API with Loopback
Loopback was created as an open source mobile backend-as-a-service framework by Strongloop. It allows you to setup a REST API in minutes and is based on Express.
The Rusty Web
Welcome! This guide illustrates using the Rust programming language to target the web. The basic design pattern this project explores uses Rust to implement CPU bound portions of an app while using existing web technologies to handle user facing, I/O bound pieces.
YC’s Online Class
Startup School is a free 10-week massively open online course (MOOC). The course will begin on April 5th, 2017. Lectures will be posted here weekly.
New Features in C# 7.0
C# 7.0 adds a number of new features and brings a focus on data consumption, code simplification and performance. Perhaps the biggest features are tuples, which make it easy to have multiple results, and pattern matching which simplifies code that is conditional on the shape of data. But there are many other features big and small. We hope that they all combine to make your code more efficient and clear, and you more happy and productive.
PHP The Right Way 中文版本
目前网络上充斥着大量的过时资讯，让 PHP 新手误入歧途，并且传播着错误的实践以及不安全的代码。PHP 之道 收集了现有的 PHP 最佳实践、编码规范和权威学习指南，方便 PHP 开发者阅读和查找。 使用 PHP 沒有规范化的方式。本网站主要是向 PHP 新手介绍一些他们没有发现或者是太晚发现的主题， 或是经验丰富的专业人士已经实践已久的做法提供一些新想法。本网站也不会告诉您应该使用什么样的工具，而是提供多种选择的建议，并尽可能地说明方法及用法上的差异。
How Slack Supports Junior Engineers
In sharing my reflections on why I accepted my offer to work at Slack, the steps I’ve taken to optimize direct and indirect mentorship, abundant opportunities for impact and growth, and a culture of learning that Slack has kept remarkably intact at scale, I hope you will take away some useful insights for you and your team.
我们是 thoughtbot。我们和世界各地的上百个产品团队合作过，他们中既有自筹资金的个人创业者，也有庞大的跨国公司。我们也创建了自己的产品，同时有若干个开源项目。 这是我们的 playbook。它详细解释了我们是如何创建成功的 web 和移动产品，以及如何运营公司。书中充满了我们自身的经验以及研究其他团队的心得。Playbook字面上是一个体育术语，是一个球队的战术手册，它也非常形象地概括了本书的内容，它不是教条，而是一本鲜活的战术手册，他不仅可以用来学习，更适合用来指导实战。