FEX 技术周刊 - 2017/02/27
微信搜索『FEX』关注我们的公众号,及时获得最新资讯。
深阅读
API Design Guide
https://cloud.google.com/apis/design/
This is a general design guide for networked APIs. It has been used inside Google since 2014 and is the guide we follow when designing Cloud APIs and other Google APIs. It is shared here to inform outside developers and to make it easier for us all to work together. 另附:10 Best Practices for Writing Node.js REST APIs、API Design: Think First, Code Later
V8 is going to switch to a new compiler architecture after 5.8 branch cut
https://groups.google.com/forum/?#!msg/v8-dev/YXpjhVeHlbI/iiYlrF8vCgAJ
The V8 team is currently working on a new compiler pipeline that will help us bring future speedups to real-world JavaScript. In the next few weeks we will replace our current compiler architecture based on a non-optimizing (FullCodeGen) and optimizing compiler (Crankshaft) pair with the combination of an interpreter (Ignition) and a new optimizing compiler (TurboFan).
Image Processing in Javascript
http://blog.webkid.io/image-processing-in-javascript/
对各种 JS 图片处理库进行分析
Node 6 at Wikimedia: Stability and substantial memory savings
https://blog.wikimedia.org/2017/02/17/node-6-wikimedia/
Over the last years, Wikimedia engineers have built significant Node.js services to complement the venerable MediaWiki wiki platform implemented in PHP. Over 10 such services are deployed in our production environment, powering features like VisualEditor, scientific formulae rendering, rich maps display and the REST content API. Individual services are built and owned by specific teams on top of the overall Node.js platform, which is maintained by the Wikimedia Services team. Recently, we upgraded our infrastructure to Node.js v6. This blog post describes how we did it, and what we learned in the process.
The Future of Serverless Compute
https://www.infoq.com/articles/future-serverless
As we approach the end of the early-adopter period, it’s an interesting exercise to put on our prediction goggles and contemplate where this movement is going next, how it’s getting there, and most importantly what changes we need from our organizations to support it. So, join me as we look at one possible future of Serverless compute.
Cross-Site Request Forgery is dead!
https://scotthelme.co.uk/csrf-is-dead/
After toiling with Cross-Site Request Forgery on the web for, well forever really, we finally have a proper solution. No technical burden on the site owner, no difficult implementation, it’s trivially simple to deploy, it’s Same-Site Cookies.
使用Node.js实现文件流转存服务
https://zhuanlan.zhihu.com/p/25367269
深入讲解如何使用Stream和Promise来实现一些复杂的功能
Web 持续集成工作实践
http://div.io/topic/1929
2015年10月我加入一家已盈利的创业公司,负责 Web 技术方向。创业过程中为了生存,都是拼快拼狠,难免选用猛糙快的工作方法。随着业务和团队不断扩大,面对的问题也越来越具挑战性。我逐步将一些自动化工具和方法引入到日常工作中,使团队获得一些收益。本文总结我这一年来做持续集成的获得经验教训。持续集成,项目之大事,研发团队负责人不可不察也。持续集成是通过平台串联各个开发环节,实现和沉淀工作自动化的方法。
RxJS 入门指引和初步应用
https://zhuanlan.zhihu.com/p/25383159
听徐叔给大家科普 RxJS,另附:An Animated Intro to RxJS
Front-End Developer Handbook 2017
https://www.gitbook.com/book/frontendmasters/front-end-handbook-2017/details
This is a guide that anyone could use to learn about the practice of front-end development. It broadly outlines and discusses the practice of front-end engineering: how to learn it and what tools are used when practicing it in 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.
Announcing the first SHA1 collision
https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html
Today, more than 20 years after of SHA-1 was first introduced, we are announcing the first practical technique for generating a collision. This represents the culmination of two years of research that sprung from a collaboration between the CWI Institute in Amsterdam and Google. We’ve summarized how we went about generating a collision below. As a proof of the attack, we are releasing two PDFs that have identical SHA-1 hashes but different content. 附:Linus’ reply on Git and SHA-1 collision、Mozila - The end of SHA-1 on the Public Web、
Linus - I thought I’d write an update on git and SHA1
Code review checklist
https://ana-balica.github.io/2017/02/21/code-review-checklist/
Over the last couple of months, I’ve developed my own internal code review checklist. I use it both for reviewing for own finished code and my teammates code complete tickets. It’s split up into 3 sections: code, automated testing and manual testing.
A Detailed Introduction To Webpack
https://www.smashingmagazine.com/2017/02/a-detailed-introduction-to-webpack/
JavaScript module bundling has been around for a while. RequireJS had its first commits in 2009, then Browserify made its debut, and since then several other bundlers have spawned across the Internet. Among that group, webpack has jumped out as one of the best. If you’re not familiar with it, I hope this article will get you started with this powerful tool.
Node.js - Quality with Speed
https://nodejs.org/en/blog/community/quality-with-speed/
One of the key tenets of the Node.js community is to allow change at a rapid pace in order to foster innovation and to allow Node.js to be used in a growing number of use cases. At the same time the community values quality. Newer versions of the runtime must be as good or better than earlier versions and must not un-intentionally break existing applications. Instead of trading off one for the other, the community looks for the path that allows us to maintain our rate of change while ensuring the required level of quality. Many of the activities undertaken by the community over the last year are in support of this goal. This is our take on how these activities fit together.
A Functional Programmer’s Introduction to JavaScript (Composing Software)
https://medium.com/javascript-scene/a-functional-programmers-introduction-to-javascript-composing-software-d670d14ede30#.qzzkkd4py
This is part of the “Composing Software” series on learning functional programming and compositional software techniques in JavaScript ES6+ from the ground up. 另附,阮一峰老师的:函数式编程入门教程
Deep dive CSS: font metrics, line-height and vertical-align
http://iamvdo.me/en/blog/css-font-metrics-line-height-and-vertical-align
Line-height and vertical-align are simple CSS properties. So simple that most of us are convinced to fully understand how they work and how to use them. But it’s not. They really are complex, maybe the hardest ones, as they have a major role in the creation of one of the less-known feature of CSS: inline formatting context.
Big Data Visualization with Meaning
https://alistapart.com/article/big-data-visualization-with-meaning
As with all design, the approach we take when creating a user-minded visualization is based on the context and the constraints we have to work with. Good data visualizations—those with meaning—need to be accessible and human even though data is rarely described with those words.
8 Best Practices for Mobile Form Design
http://www.uxmatters.com/mt/archives/2017/02/8-best-practices-for-mobile-form-design.php
Designers have now been building mobile forms for a decade. But, as technology continues to go through metamorphoses and our understanding of users’ needs becomes more refined, good mobile form design is constantly evolving. In this article, I’ll provide eight best practices for mobile form design circa 2017.
3 Key Uses for Animation in Mobile UI Design
https://uxplanet.org/3-key-uses-for-animation-in-mobile-ui-design-4d7c482dd84b#.q4mobfh1y
With the quick development of technology, animation is less of a visual luxury and more of a functional requirement that users expect. Animation solves a lot of functional problems within interfaces and makes interfaces feel alive and truly responsive to the user. Let’s explore the key animation tactics that improve the functionality and emotional power of your mobile interface.
What Does Being a Fullstack Developer Mean in 2017?
https://blog.qmo.io/what-does-being-a-fullstack-developer-mean-in-2017/
What does fullstack mean? Everyone has their own definition. The problem is the breadth and depth of technologies have expanded so rapidly, fullstack developers are trying to play catch-up when everything is already red‑shifted by the time you’re looking at it. This problem is what makes “fullstack” a contested and controversial title.
教你如何从0到1实现组件化架构
http://www.jianshu.com/p/7b4667cde80b
iOS 组件化一种实现方法
从技术角度谈一谈,我参与设计开发的手Q春节红包项目
http://mp.weixin.qq.com/s?__biz=MzA5Nzc4OTA1Mw==&mid=2659599011&idx=1&sn=77dcd934fcff0f7688c999cb65b8a310
本文将会详细介绍手Q春节红包项目的设计、容灾、运维、架构以及总结。
关于技术选型的那些事儿
http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650995506&idx=1&sn=4dbec250c8e24f895ca6ce4833f9444e
滴滴小巴业务技术负责人的经验之谈,技术选型关键需要思考三个角度:技术、业务和人。
新鲜货
Safari Technology Preview 24
https://webkit.org/blog/7423/release-notes-for-safari-technology-preview-24/
挺多值得关注的新特性的,比如:Added as an experimental feature、Implemented dynamic import operator. 另附:ECMAScript 2016+ in Firefox
Announcing TypeScript 2.2
https://blogs.msdn.microsoft.com/typescript/2017/02/22/announcing-typescript-2-2/
用 TS 的同学可以关注下新特性
Incident report on memory leak caused by Cloudflare parser bug
https://blog.cloudflare.com/incident-report-on-memory-leak-caused-by-cloudflare-parser-bug/
Cloudflare to report a security problem with our edge servers. He was seeing corrupted web pages being returned by some HTTP requests run through Cloudflare. 附:List of Sites affected by Cloudflare’s #Cloudbleed HTTPS Traffic Leak
Introducing Netflix Stethoscope
http://techblog.netflix.com/2017/02/introducing-netflix-stethoscope.html
Netflix is pleased to announce the open source release of Stethoscope, our first project following a User Focused Security approach. Stethoscope is a web application that collects information for a given user’s devices and gives them clear and specific recommendations for securing their systems.
Boundless
https://github.com/enigma-io/boundless
Boundless is a UI toolkit that was conceived to abstract away difficult interface patterns. It follows three main guidelines: Performance is mandatory, not a nice-to-have; Components should be as customizable as possible; Components should be as accessible as possible (falling back to WAI-ARIA attributes when necessary.)
AR.js - Efficient Augmented Reality for the Web using ARToolKit
https://github.com/jeromeetienne/AR.js
Efficient Augmented Reality for the Web using ARToolKit - 60fps on mobile!
axios
https://github.com/mzabriskie/axios
Promise based HTTP client for the browser and node.js
unfetch
https://github.com/developit/unfetch
Bare minimum fetch polyfill in 500 bytes.
slim.js
https://github.com/eavichay/slim.js
Slim.js is a lightning fast library for development of native web-components. No black magic. It uses javascript’s inheritance mechanism to boost up HTML elements with superpowers.
各个编程语言都有哪些「黑点」
https://www.zhihu.com/question/53584423
一个顾客走进一家牛排店,要一块牛排:C:服务员牵来一头牛,给了顾客一把大刀,笑道,请享用…
Hero Patterns
http://www.heropatterns.com/
A collection of repeatable SVG background patterns for you to use on your web projects.
Upspin - A framework for naming everyone’s everything
https://github.com/upspin/upspin
Upspin is an experimental project to build a framework for naming and sharing files and other data securely, uniformly, and globally: a global name system of sorts. It is not a file system, but a set of protocols and reference implementations that can be used to join things like file systems and other storage services to the name space.
产品及其它
微软首款小程序「微软小蜜」
http://mp.weixin.qq.com/s?__biz=MzIwOTQ4NTkwOA==&mid=2247483700&idx=1&sn=524d4102f38e934bee232e544706ca68
微软中国在微信上发布了一款小程序 -「微软小蜜」预览版,它利用微软亚洲研究院的图片认知服务。通过识别并深度学习,小程序提取图片中的文字形状等元素,一键生成可编辑的PPT文件。简单的说,手机上的截图,街边的广告,会议上的幻灯片,只要通过微软小秘,都能快速保存为“可编辑“的PPT文档。
从京东11万快递小哥与1万白领,看到的真实互联网世界
http://mp.weixin.qq.com/s?__biz=MzA3Mjc3OTk5Nw==&mid=2653651124&idx=1&sn=0d842a266e0d7f388fc4b6c87babe9ba
互联网时代的中国,城市与乡村,白领与蓝领,二元对立又相互依赖。面对这样一个复杂而庞大的市场,该如何做产品推广?知名创业者、前腾讯资深产品经理梁宁在读完《创京东》之后,给出了自己的看法——当你要推一个产品的时候,是不是可以更直率地想,目标是京东的1万白领,还是11万蓝领?
为什么网易系擅长做产品
http://tech.qq.com/a/20170223/026608.htm
由谙熟业务,比高层更年轻,更懂用户市场的中层来掌握做产品的实权。几乎没有KPI文化,产品做得好与坏,主要靠产品经理的内心热情来驱动,不靠金钱驱动,更不会为了完成数字而打乱节奏。没有产品大战略,不参与刚正面的烧钱竞争,网易的产品策略只能以中小投入为主,不去赤裸裸地拼资源,便格外注重创新与体验。
当我在排版时,我在思考什么
http://mp.weixin.qq.com/s?__biz=MjM5ODQwMjA4MA==&mid=2649293721&idx=1&sn=d42f1227ea0ebbc0216a492478edccb7
你可能见过很多关于微信公众号排版的教程,告诉你应该用多少字号、用什么颜色、行距应该设置为多少,大部分教程或许对想速成或直接找一个 todolist 做工作交差的人来说,是有效的。然而,真正要做好排版,并不只是需要获得别人给的 todolist,而是理解排版背后的原理。
Microsoft’s new AI can code by stealing bits of code from other software
http://www.businessinsider.com/microsoft-cambridge-ai-deepcoder-programs-software-combining-stolen-code-2017-2
微软和剑桥大学正开发具有人工智能的编程软件 DeepCoder,它可以从把其他应用的代码拿过来给自己用。微软首先训练一个神经网络来检测程序的性质,然后将该神经网络的预测输出代入到编程社区的高级搜索工具中。之后运用这种神经网络的 DeepCoder 可以通过现有软件获取的代码拼接在一起写出新程序。此外,DeepCoder 使用机器学习来清理源代码数据库,并对它们按照有用性进行排序。