FEX 技术周刊 – 2016/05/09
最后更新于:2022-04-01 00:03:58
## 深阅读
**Programming Language Theory**
[https://github.com/steshaw/plt](https://github.com/steshaw/plt)
程序语言理论的相关书籍和资料汇总,方便想深入的同学学习
**架构的本质是管理复杂性**
[http://www.open-open.com/lib/view/open1460209702222.html](http://www.open-open.com/lib/view/open1460209702222.html)
文中提到的 BFF - Backend for frontends 非常值得关注,相关资料:
- [Backends For Frontends - Single-purpose Edge Services for UIs and external parties](http://samnewman.io/patterns/architectural/bff/)
- [BFF - Backend for frontends](https://www.thoughtworks.com/radar/techniques/bff-backend-for-frontends)
**[译]如果有人问你数据库的原理,叫他看这篇文章**
[http://blog.jobbole.com/100349/](http://blog.jobbole.com/100349/)
关系型数据库非常有趣,因为它们是基于实用而且可复用的概念。如果你对了解一个数据库感兴趣,但是从未有时间或意愿来刻苦钻研这个内容广泛的课题,你应该喜欢这篇文章。
**10 things you probably didn’t know about JavaScript (React and Node.js) and GraphQL development at Facebook**
[https://hashnode.com/post/10-things-you-probably-didnt-know-about-javascript-react-and-nodejs-and-graphql-development-at-facebook-cink0r0e500h5io53fpl7ediu](https://hashnode.com/post/10-things-you-probably-didnt-know-about-javascript-react-and-nodejs-and-graphql-development-at-facebook-cink0r0e500h5io53fpl7ediu)
许多关于 Facebook 内部使用 JS 的八卦,比如 Facebook app 已经使用 React Native 了,以及少数地方开始尝试 React 后端渲染(毕竟绝大部分代码是 PHP,所以没用 Node,而是直接用 V8)
**After a year of using NodeJS in production**
[http://geekforbrains.com/post/after-a-year-of-nodejs-in-production](http://geekforbrains.com/post/after-a-year-of-nodejs-in-production)
This is a follow-up to my original “Why I’m switching from Python to Node.js” post. I wrote it just over a year ago in response to my frustrations with Python and why I was going to try Node instead. Fast-forward a year of in-house CLI tools, client projects and updates to our company’s products and this is what I’ve learned. Not only about Node, but Javascript in general as well.
**Stack Overflow: How We Do Deployment - 2016 Edition**
[http://nickcraver.com/blog/2016/05/03/stack-overflow-how-we-do-deployment-2016-edition/](http://nickcraver.com/blog/2016/05/03/stack-overflow-how-we-do-deployment-2016-edition/)
We’ve talked about Stack Overflow’s architecture and the hardware behind it. The next most requested topic was Deployment. How do we get code a developer (or some random stranger) writes into production? Let’s break it down. Keep in mind that we’re talking about deploying Stack Overflow for the example, but most of our projects follow almost an identical pattern to deploy a website or a service.
**[译]CSS vs JS动画:谁更快?**
[http://zencode.in/19.CSS-vs-JS%E5%8A%A8%E7%94%BB%EF%BC%9A%E8%B0%81%E6%9B%B4%E5%BF%AB%EF%BC%9F.html](http://zencode.in/19.CSS-vs-JS%E5%8A%A8%E7%94%BB%EF%BC%9A%E8%B0%81%E6%9B%B4%E5%BF%AB%EF%BC%9F.html)
Javascript 动画怎么可能总是和 CSS transition 一样快,甚至更快呢?到底是什么秘密呢?Adobe 和 Google 是怎么做到让他们的富媒体移动网站的速度和 native app 媲美的?这篇文章会一步步告诉你为什么基于 Javascript 的 DOM 动画库(比如 Velocity.js 和 GSAP)能够比 jQuery 和基于 CSS 的动画库更高效。
**A Taste of JavaScript’s New Parallel Primitives**
[https://hacks.mozilla.org/2016/05/a-taste-of-javascripts-new-parallel-primitives/](https://hacks.mozilla.org/2016/05/a-taste-of-javascripts-new-parallel-primitives/)
TL;DR – We’re extending JavaScript with a primitive API that lets programmers use multiple workers and shared memory to implement true parallel algorithms in JavaScript.
**Meaningful CSS: Style Like You Mean It**
[http://alistapart.com/article/meaningful-css-style-like-you-mean-it](http://alistapart.com/article/meaningful-css-style-like-you-mean-it)
does our CSS abuse classes so mercilessly, and why do we litter our markup with author-defined classes? Why can’t our CSS be as semantic and meaningful as our markup? Why can’t both be more semantic and meaningful, moving forward in tandem?
**Authorization with JSON Web Tokens**
[http://datamelon.io/blog/2016/managing-app-security-with-jwts.html](http://datamelon.io/blog/2016/managing-app-security-with-jwts.html)
APIs need to verify who you are and what you’re allowed to do. JSON Web Tokens or “jots” provide a standardized means for accomplishing this. This article explains the underlying mechanics of how JWTs simplify authorization and authentication.
**Node.js process load balance performance: comparing cluster module, iptables and Nginx**
[https://medium.com/@fermads/node-js-process-load-balancing-comparing-cluster-iptables-and-nginx-6746aaf38272#.u6p6skycd](https://medium.com/@fermads/node-js-process-load-balancing-comparing-cluster-iptables-and-nginx-6746aaf38272#.u6p6skycd)
Node is single threaded and to use more CPU cores we must create new processes and distribute the load. This is a performance comparison between three ways of doing process load balancing for Node.js web applications.
**Animated Heat Distortion Effects with WebGL**
[http://tympanus.net/codrops/2016/05/03/animated-heat-distortion-effects-webgl/](http://tympanus.net/codrops/2016/05/03/animated-heat-distortion-effects-webgl/)
A tutorial on how to use fragment shaders in WebGL to create an animated heat haze distortion effect on images and text.
**史上最全的“大数据”学习资源**
[https://yq.aliyun.com/articles/37308](https://yq.aliyun.com/articles/37308)
[https://yq.aliyun.com/articles/37396](https://yq.aliyun.com/articles/37396)
当今“大数据”一词的重点其实已经不仅在于数据规模的定义,它更代表着信息技术发展进入了一个新的时代,代表着爆炸性的数据信息给传统的计算技术和信息技术带来的技术挑战和困难,代表着大数据处理所需的新的技术和方法,也代表着大数据分析和应用所带来的新发明、新服务和新的发展机遇。云栖社区组织翻译了GitHub Awesome Big Data资源,供大家参考。本资源类型主要包括:大数据框架、论文等实用资源集合。
**数组的完全随机排列**
[https://www.h5jun.com/post/array-shuffle.html](https://www.h5jun.com/post/array-shuffle.html)
Array.prototype.sort 方法被许多 JavaScript 程序员误用来随机排列数组。但是,却有非常严重的问题,甚至是完全错误。因此,当我们需要实现类似洗牌的功能的时候,还是应该采用巧妙的经典洗牌算法,它不仅仅具有完全随机性还有很高的效率。月影大神很高产,还有一篇[Promise 与定时器](https://www.h5jun.com/post/wait-promise.html) 。
**微服务实践-系列**
[http://dockone.io/article/1266](http://dockone.io/article/1266)
第一篇中介绍了微服务架构模式,并且讨论了微服架构的优缺点;接续文章讨论了微服务架构不同方面:使用API网关,进程间通信,服务发现,事件驱动数据管理以及部署微服务。本篇,我们将探讨将应用从单体式架构迁移到微服务架构需要考虑的策略。
另附:[每天都在谈SOA和微服务,但你真的理解什么是服务吗?](http://mp.weixin.qq.com/s?__biz=MzA5Nzc4OTA1Mw==&mid=2659597085&idx=1&sn=41d64433887bc2023f0c9b8c503560a9)
**动态追踪技术 - Dtrace、SystemTap、火焰图**
[http://mp.weixin.qq.com/s?__biz=MjM5ODQ2MDIyMA==&mid=2650712266&idx=1&sn=54d909d240eb701ae48467dc798ddc7f](http://mp.weixin.qq.com/s?__biz=MjM5ODQ2MDIyMA==&mid=2650712266&idx=1&sn=54d909d240eb701ae48467dc798ddc7f)
[http://mp.weixin.qq.com/s?__biz=MjM5ODQ2MDIyMA==&mid=2650712256&idx=1&sn=3d0cc438efa0f518d49e736918fbb861](http://mp.weixin.qq.com/s?__biz=MjM5ODQ2MDIyMA==&mid=2650712256&idx=1&sn=3d0cc438efa0f518d49e736918fbb861)
动态追踪技术其实是一种后现代的高级调试技术。它可以帮助软件工程师以非常低的成本,在非常短的时间内,回答一些很难的关于软件系统方面的问题,从而更快速地排查和解决问题。
**前Googler:Docker从上手到差点放弃**
[http://mp.weixin.qq.com/s?__biz=MzA4Nzg5Nzc5OA==&mid=2651659581&idx=1&sn=c5ca9f41d7d8e415b5ef961fee9fafac](http://mp.weixin.qq.com/s?__biz=MzA4Nzg5Nzc5OA==&mid=2651659581&idx=1&sn=c5ca9f41d7d8e415b5ef961fee9fafac)
可以了解下 Docker 使用过程中的一些实践经验。
## 新鲜货
**NativeScript 2.0**
[https://www.nativescript.org/blog/](https://www.nativescript.org/blog/) nativescript-2.0—the-best-way-to-build-cross-platform-native-mobile-apps
基于 snapshot 改善了 Android 下的启动性能,然而由于设计本身的原因,它需要加载大量的类,所以我估计不会太好
**New APIs to help developers improve scroll performance**
[http://blog.chromium.org/2016/05/new-apis-to-help-developers-improve.html](http://blog.chromium.org/2016/05/new-apis-to-help-developers-improve.html)
Chrome 51 开始支持这个可以让 Web 摆脱滚动卡顿的 API,早就该有了。。。
**NativeBase**
[http://nativebase.io/](http://nativebase.io/)
为 React Native 提供实用的 UI 组件,方便快速开发界面
**Vue.js 2.0 preview**
[https://medium.com/the-vue-point/announcing-vue-js-2-0-8af1bde7ab9#.42wjp8ist](https://medium.com/the-vue-point/announcing-vue-js-2-0-8af1bde7ab9#.42wjp8ist)
也开始用 Virtual DOM 了,优势是体积小点?
**Aframe - Building blocks for the virtual reality web**
[https://aframe.io/](https://aframe.io/)
[https://github.com/aframevr/aframe/](https://github.com/aframevr/aframe/)
A-Frame is a framework for creating virtual reality web experiences.
**Pants: A fast, scalable build system**
[http://www.pantsbuild.org/](http://www.pantsbuild.org/)
Twitter 也推出了自己的编译系统,类似 Google 的 Bazel,适合大公司的源码编译及依赖管理
**FlexboxLayout**
[https://github.com/google/flexbox-layout](https://github.com/google/flexbox-layout)
竟然是 Google 出的 Flexbox 在 Android 下的实现
**OverAPI.com - Collecting all the cheat sheets**
[http://overapi.com/](http://overapi.com/)
非常全的 API Cheat Sheets。
**json-server**
[https://github.com/typicode/json-server](https://github.com/typicode/json-server)
Get a full fake REST API with zero coding in less than 30 seconds (seriously)
**vConsole:针对手机网页的前端 console 调试面板**
[https://github.com/WechatFE/vConsole](https://github.com/WechatFE/vConsole)
vConsole 是一个网页前端调试面板,专为手机 web 页面量身设计,帮助开发者更为便捷地进行开发调试工作。
**谷歌Chrome超过微软IE正式成为第一大桌面浏览器**
[http://www.techweb.com.cn/internet/2016-05-03/2326252.shtml](http://www.techweb.com.cn/internet/2016-05-03/2326252.shtml)
4月份谷歌Chrome的市场份额为41.6%,高于3月份的39%。而微软IE的市场份额则从43.4%下降至41.3%。
**小心,这诡异的图片很可能要了你服务器的命**
[http://weibo.com/ttarticle/p/show?id=2309403971770167221459](http://weibo.com/ttarticle/p/show?id=2309403971770167221459)
最近各种互联网网站的图片上传等功能成了黑客重点关注对象,因为在一个特殊的场景下,这些功能可以轻易秒杀对方网站的服务器控制权!比如传一张图就给服务器关机,或执行 “rm -fr /”,或窃取用户敏感数据等,而造成这些后果的只是一张特殊的图片…
**CSST - CSS Text Transformation**
[https://github.com/zswang/csst](https://github.com/zswang/csst)
一种用 CSS 跨域传输文本的方案。相比 JSONP 更为安全,不需要执行跨站脚本。
原理是通过读取 CSS3 content 属性获取传送内容。CSST 是一种新增的跨域通信方式,实战还是推荐 CORS。
## 产品及其它
**务实至上:“PHP之父” Rasmus Lerdorf 访谈录**
[http://geek.csdn.net/news/detail/71830](http://geek.csdn.net/news/detail/71830)
“PHP之父” Rasmus Lerdorf 性格直接坦荡,措辞简练精辟,字里行间透着一股“务实至上”的精神气。赞:技术只是解决问题的工具,是抽象的锤头、锯子,并没什么了不起,而真正振奋人心的是用技术提升了百万人的生活品质;语言只是解决问题的工具,不是受人膜拜的宗教。
**Facebook的项目开发流程和工程师的绩效管理机制**
[http://mp.weixin.qq.com/s?__biz=MzA3ODQwOTU3Nw==&mid=2650356144&idx=1&sn=cfd57a991721336c488cb18f9f2a8fd7](http://mp.weixin.qq.com/s?__biz=MzA3ODQwOTU3Nw==&mid=2650356144&idx=1&sn=cfd57a991721336c488cb18f9f2a8fd7)
可以了解下 fb 在开发流程、kpi 方面的一些机制。
**码农自己当老家新厝的设计师**
[http://ucren.com/blog/archives/675](http://ucren.com/blog/archives/675)
工程师中的设计师,佩服。
另附:一位设计师的码农之路 [上](http://mp.weixin.qq.com/s?__biz=MzI2NjI2NDM5Nw==&mid=2247483673&idx=1&sn=1bc21055b6bb37341f4bca24845c894d) [下](http://mp.weixin.qq.com/s?__biz=MzI2NjI2NDM5Nw==&mid=2247483675&idx=1&sn=8c11ebf5d20ead1e0a7ba935ad7a937c)。向这些跨界人才致敬。
**IT业也是制造业,日本IT产业奇葩在哪儿?**
[http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650992364&idx=1&sn=e193a5316f430904753937395c2de9ec](http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650992364&idx=1&sn=e193a5316f430904753937395c2de9ec)
在欧洲,Software as a science(软件即科学);在美国,Software as a business(软件即商业);在印度,Software as a service(软件即服务);在日本,Software as a production(软件即制造)。
**地球仍有许多未解之谜 为何浪费钱在太空?看马斯克怎么回答**
[http://view.inews.qq.com/a/20160503A07H0200](http://view.inews.qq.com/a/20160503A07H0200)
特斯拉项目是想用电动汽车来取代世界上的现有车辆;SpaceX公司为了将火星建成殖民地。汽车制造和航空航天都是成熟的产业领域,但无论如何,Musk想同时变革这两个行业,而且他要在一代人的时间里做到这些。