FEX 技术周刊 – 2016/02/15
最后更新于:2022-04-01 00:04:26
## 深阅读
**How Enterprises Benefit from Node.js**
[https://blog.risingstack.com/how-enterprises-benefit-from-nodejs/](https://blog.risingstack.com/how-enterprises-benefit-from-nodejs/)
Node.js fits the enterprise world and can be adopted successfully with great benefits, but it has its’ challenges as well. To reach the full potential of developing with Node.js, there are crucial points that must be addressed at an organization level.
**What To Expect From JavaScript In 2016 – Beyond the Browser**
[http://developer.telerik.com/featured/what-to-expect-from-javascript-in-2016-beyond-the-browser/](http://developer.telerik.com/featured/what-to-expect-from-javascript-in-2016-beyond-the-browser/)
通过一系列文章介绍 JS 的动态,值得关注。
**Computer Science Field Guide**
[http://www.csfieldguide.org.nz/en/index.html](http://www.csfieldguide.org.nz/en/index.html)
An online interactive resource for high school students learning about computer science. 对于我们系统和的了解和学习计算机技术也非常有帮助。
**Docker持续部署图文详解**
[http://mp.weixin.qq.com/s?__biz=MzA4Nzg5Nzc5OA==&mid=402143684&idx=2&sn=9e93de8811e342cbd01f634a5e8976c3](http://mp.weixin.qq.com/s?__biz=MzA4Nzg5Nzc5OA==&mid=402143684&idx=2&sn=9e93de8811e342cbd01f634a5e8976c3)
开发同学通过git push上传代码,经Git和Jenkins配合,自动完成程序部署、发布,全程无需运维人员参与。这是一种真正的容器级的实现,这个带来的好处,不仅仅是效率的提升,更是一种变革:开发人员第一次真正为自己的代码负责——终于可以跳过运维和测试部门,自主维护运行环境(首先是测试/开发环境)。
**[译]2016 - 属于网络流(web streams)的一年**
[http://www.w3ctech.com/topic/1693](http://www.w3ctech.com/topic/1693)
科普 web stream API
**MessagePack:一种高效二进制序列化格式**
[http://msgpack.org/](http://msgpack.org/)
[http://hao.jobbole.com/messagepack/](http://hao.jobbole.com/messagepack/)
MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it’s faster and smaller. Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves.
**HTML textarea cols,rows属性和宽度高度关系研究**
[http://www.zhangxinxu.com/wordpress/2016/02/html-textarea-rows-height/](http://www.zhangxinxu.com/wordpress/2016/02/html-textarea-rows-height/)
控制 Textarea 的宽高的话,还是老老实实用 css 吧。
**Leveling Up Your JavaScript**
[http://developer.telerik.com/featured/leveling-up-your-javascript/](http://developer.telerik.com/featured/leveling-up-your-javascript/)
一位从事多年开发的码农重新实践 JS 时整理出的学习资料,非常全。
**The Basics of Web Application Security**
[http://martinfowler.com/articles/web-security-basics.html#EncodeHtmlOutput](http://martinfowler.com/articles/web-security-basics.html#EncodeHtmlOutput)
Modern web development has many challenges, and of those security is both very important and often under-emphasized. While such techniques as threat analysis are increasingly recognized as essential to any serious development, there are also some basic practices which every developer can and should be doing as a matter of course.
**程序员到底是一个什么职业**
[http://weibo.com/ttarticle/p/show?id=2309403939907201539934](http://weibo.com/ttarticle/p/show?id=2309403939907201539934)
工程的本质不是创造,而是去风险化。工程是关于如何 低成本、高效率、按时按量完成既定任务的。所以判断一个工程师是否优秀,并不是他多有创意多有名气,而是看他有多稳,看他能多GettingThingsDone,中文就是「靠谱」。另附:[做技术,应该先有深度再谈广度](http://mp.weixin.qq.com/s?__biz=MzA5Nzc4OTA1Mw==&mid=408703236&idx=1&sn=3f78abcca906d5edee06ff85b2d22416)
**Writing Next Generation Reusable JavaScript Modules in ECMAScript 6**
[https://www.smashingmagazine.com/2016/02/writing-next-generation-reusable-javascript-modules/](https://www.smashingmagazine.com/2016/02/writing-next-generation-reusable-javascript-modules/)
Are you excited to take advantage of new JavaScript language features but not sure where to start, or how? You’re not alone! I’ve spent the better part of the last year and a half trying to ease this pain. During that time there have been some amazing quantum leaps in JavaScript tooling.
**What’s New in Webpack 2**
[https://gist.github.com/sokra/27b24881210b56bbaff7](https://gist.github.com/sokra/27b24881210b56bbaff7)
**Build a Better Angular 2 Application with Redux and ngrx**
[http://onehungrymind.com/build-better-angular-2-application-redux-ngrx/](http://onehungrymind.com/build-better-angular-2-application-redux-ngrx/)
Redux 是的值得关注和实践的东西,能和 React、Angular 等框架和谐相处
**Choosing Vanilla JavaScript in 2016**
[https://medium.com/vanilla-javascript/choosing-vanilla-javascript-in-2016-6f38a8302ee5#.t0q1g5t9j](https://medium.com/vanilla-javascript/choosing-vanilla-javascript-in-2016-6f38a8302ee5#.t0q1g5t9j)
It’s up to each developer (or engineering team) to decide whether the network cost, performance hits, and technical debt of third-party libraries and frameworks are worth their ease of use. That has always been and will continue to be the case. My goal today was to point out that very soon, pure JavaScript will be good enough for the entirety of the modern front-end stack.
**The current state of loading CSS**
[https://jakearchibald.com/2016/link-in-body/](https://jakearchibald.com/2016/link-in-body/)
Chrome is intending to change the behaviour of `<link rel="stylesheet">`, which will be noticeable when it appears within `<body>`. The impact and benefits of this aren’t clear from the blink-dev post, so I wanted to go into detail here.
**Running React on a WebWorker makes is consistantly faster than the usual React-dom**
[http://blog.nparashuram.com/2016/02/using-webworkers-to-make-react-faster.html](http://blog.nparashuram.com/2016/02/using-webworkers-to-make-react-faster.html)
Tl;Dr; ReactJS is faster when Virtual DOM reconciliations are done on a Web Worker thread.
**[译] NPM 与前端包管理**
[https://github.com/cssmagic/blog/issues/57](https://github.com/cssmagic/blog/issues/57)
npm 的愿景是帮助开发者减少摩擦。我们倾向于通过 “循踪辟径” 的方式来实现这一点。这句话的意思是说:我们不希望告诉用户该怎么做;我们希望观察用户是怎么做的,然后把障碍扫清。如果很多人都是在以各自不同的方式在行事,那我们不会轻易地从中挑出一个胜者,除非最佳实践已经昭然若揭。
**A Gentle Introduction to Functional JavaScript**
[http://jrsinclair.com/articles/2016/gentle-introduction-to-functional-javascript-intro/](http://jrsinclair.com/articles/2016/gentle-introduction-to-functional-javascript-intro/)
函数式编程的应用以及越来越广泛,是一个值得去研究的话题。
**Fundamentals Then Frameworks**
[https://medium.com/@sharifsbeat/fundamentals-then-frameworks-c35697d291e8#.b31saafrl](https://medium.com/@sharifsbeat/fundamentals-then-frameworks-c35697d291e8#.b31saafrl)
Why should we have to keep relearning everything once a new framework or library goes mainstream? This is not specifically a JavaScript phenomenon, only that JavaScript appears to be the language where things are moving in light speed. At least it is perceived as that. There is a strong focus on tools and frameworks, less on the underlying fundamentals.
**The Zen of Erlang**
[http://ferd.ca/the-zen-of-erlang.html](http://ferd.ca/the-zen-of-erlang.html)
I assume most people here have never used Erlang, have possibly heard of it, maybe just the name. As such, this presentation will only cover the high level concepts of Erlang, in such a way that it may be useful to you in your work or side projects even if you never touch the language.
**Why npm Scripts?**
[https://css-tricks.com/why-npm-scripts/](https://css-tricks.com/why-npm-scripts/)
The following is a guest post by Damon Bauer. There has been a growing sentiment (for instance) that using node packages directly, with the command line interfaces they provide, is a good route to take. As opposed to abstracting the functionality away behind a task runner.
**关于红包大战**
[红包大战的杂谈](http://mp.weixin.qq.com/s?__biz=MzI0MjA1Mjg2Ng==&mid=401551174&idx=1&sn=7edc7c65bfbb04aab5203b9227bc342e)
[腾讯副总裁揭秘春晚红包大战背后的秘密](http://mp.weixin.qq.com/s?__biz=MzA3Mjc3NTQxMQ==&mid=401942090&idx=4&sn=1bfc6a7c08967c421f66a9fce4734761)
[给支付宝一个场景,它能再造一个阿里吗](http://www.huxiu.com/article/139046/1.html)
文章太多,精选几个还不错的。
**2015年总结汇总**
[http://mp.weixin.qq.com/s?__biz=MzA3MDA2MjE2OQ==&mid=401913704&idx=1&sn=427bf8bd33cd50ebc96dfe1f2107338c](http://mp.weixin.qq.com/s?__biz=MzA3MDA2MjE2OQ==&mid=401913704&idx=1&sn=427bf8bd33cd50ebc96dfe1f2107338c)
[http://mp.weixin.qq.com/s?__biz=MzA3MDA2MjE2OQ==&mid=401913711&idx=1&sn=867d4da4377f32992875a5648a074d3c](http://mp.weixin.qq.com/s?__biz=MzA3MDA2MjE2OQ==&mid=401913711&idx=1&sn=867d4da4377f32992875a5648a074d3c)
来自一个以交流后端技术为主的群:黑路人技术群多为码农的年总总结,越90偏,真实的文字记录了码农们的思考和畅想。附黑哥的点评:
- 捷径往往是最远的路; - 大部分时候要有战略性忍耐力; - 关注目标和结果
**WebGL For All**
[http://ipestov.com/webgl-for-all/](http://ipestov.com/webgl-for-all/)
This article will take you through the basics of WebGL and tell you the starting point of learning it.
**Gitflow有害论**
[http://insights.thoughtworkers.org/gitflow-consider-harmful/](http://insights.thoughtworkers.org/gitflow-consider-harmful/)
对广为流传的 Git 实践的再思考。赞:技术用的对不对,还是要看上下文。没有绝对的最佳实践,我们需要寻找的是符合特定场景的最佳实践。
## 新鲜货
**Looking ahead: Microsoft Edge for developers in 2016**
[https://blogs.windows.com/msedgedev/2016/02/03/2016-platform-priorities/](https://blogs.windows.com/msedgedev/2016/02/03/2016-platform-priorities/)
Edge 今年将会支持哪些新的 API
**CBOR Object Signing and Encryption**
[https://datatracker.ietf.org/wg/cose/charter/](https://datatracker.ietf.org/wg/cose/charter/)
Concise Binary Object Representation (CBOR, RFC 7049) is a concise binary format for the serialization of data structured to an extended version of the JSON data model. COSE seeks to create CBOR-based object signing and encryption formats. One motivation for COSE was to reuse functionality from the JOSE working group using the CBOR data representation as it is more amenable to constrained nodes and constrained node networks (RFC 7228). The JOSE working group recently completed producing representations for cryptographic keys, message authentication (MACs), encryption, and digital signatures, using JSON representation.
**Ruff.io-**
[https://ruff.io/](https://ruff.io/)
Ruff 是一个 JavaScript 运行时,专为硬件开发而设计。Ruff 对硬件进行抽象,使用基于事件驱动、异步 I/O 的模型,使硬件开发变得轻量而高效。用Javascript开发硬件,不需要了解底层io,应用逻辑全在PC 上完成,告别传统的交叉编译、烧写板卡的低效循环,简洁一键部署!
**Nginx module by Google for rewriting web pages to reduce latency and bandwidth**
[http://ngxpagespeed.com/](http://ngxpagespeed.com/)
Nginx module created by Google to help Make the Web Faster by rewriting web pages to reduce latency and bandwidth. It started as a port of mod_pagespeed to Nginx, and for now the documentation links below still all point to mod_pagespeed’s documentation.
**Atomic Chrome**
[https://github.com/tuvistavie/atomic-chrome](https://github.com/tuvistavie/atomic-chrome)
Use Atom to edit in Chrome. Atom needs to be running for this to work : - Focus a textarea or a contenteditable element - Press the icon of Atomic Chrome (or the shortcut). Note that the tab will open in the first launched instance of Atom.
**GitHub Pages now faster and simpler with Jekyll 3.0**
[https://github.com/blog/2100-github-pages-now-faster-and-simpler-with-jekyll-3-0](https://github.com/blog/2100-github-pages-now-faster-and-simpler-with-jekyll-3-0)
GitHub Pages is now running the latest major version of Jekyll, Jekyll 3.0, and with it, many of the complexities associated with publishing have been further simplified, meaning it’s now easier and faster to publish beautiful sites for you and your projects.
**Hint.css v2.0 – Pure CSS tooltip library**
[http://kushagragour.in/lab/hint/](http://kushagragour.in/lab/hint/)
A pure CSS tooltip library for your lovely websites
**Introducing Bootstrap Studio**
[https://bootstrapstudio.io/](https://bootstrapstudio.io/)
Bootstrap Studio is a desktop application that helps web developers and designers create responsive websites using the Bootstrap framework. It supports a wide range of components and advanced features that make you more productive. Thousands of developers and designers use it every day. We are sure you’ll love it too! 相关产品:[Pingendo – Free, simple app for Bootstrap prototyping](http://pingendo.com/)
**Griddle - a grid component for use with React**
[http://griddlegriddle.github.io/Griddle/](http://griddlegriddle.github.io/Griddle/)
**A New Day for Express!**
[https://strongloop.com/strongblog/a-new-day-for-express/](https://strongloop.com/strongblog/a-new-day-for-express/)
As of this week, the Express project has a new home as an incubating top-level project under the Node.js Foundation.
**Minimal Docker Containers for Node.js**
[https://blog.risingstack.com/minimal-docker-containers-for-node-js/](https://blog.risingstack.com/minimal-docker-containers-for-node-js/)
We are happy to release our Alpine-based Node.js Docker images that try to solve those pain points : big in size;strange / non-existent versioning;mutable tags;unmaintained
**ESLint v2.0.0 released**
[http://eslint.org/blog/2016/02/eslint-v2.0.0-released](http://eslint.org/blog/2016/02/eslint-v2.0.0-released)
**Grunt 1.0.0 rc1 released**
[http://gruntjs.com/blog/2016-02-11-grunt-1.0.0-rc1-released](http://gruntjs.com/blog/2016-02-11-grunt-1.0.0-rc1-released)
竟然更新到了 1.0 版本,不容易呀。
**Maybe: run a command, see what it does to your files without actually doing it**
[https://github.com/p-e-w/maybe](https://github.com/p-e-w/maybe)
rm -rf pic* Are you sure? Are you one hundred percent sure? maybe allows you to run a command and see what it does to your files without actually doing it! After reviewing the operations listed, you can then decide whether you really want these things to happen or not.
**CSS Variables landing in Chrome 49**
[https://developers.google.com/web/updates/2016/02/css-variables-why-should-you-care](https://developers.google.com/web/updates/2016/02/css-variables-why-should-you-care)
CSS variables, more accurately known as CSS custom properties, are landing in Chrome 49\. They can be useful for reducing repetition in CSS, and also for powerful runtime effects like theme switching and potentially extending/polyfilling future CSS features.
**Chrome Will Drop SPDY Support On May 15**
[http://techcrunch.com/2016/02/11/chrome-will-drop-spdy-support-on-may-15/](http://techcrunch.com/2016/02/11/chrome-will-drop-spdy-support-on-may-15/)
全面开始转向支持 HTTP2,另附:[How HTTP/2 Is Changing Web Performance Best Practices](https://blog.newrelic.com/2016/02/09/http2-best-practices-web-performance/)
**关于未来编程发展趋势的九大预测**
[http://mp.weixin.qq.com/s?__biz=MjM5NTg2NTU0Ng==&mid=406712764&idx=4&sn=34927b8bbd3dc7e655905652add50653](http://mp.weixin.qq.com/s?__biz=MjM5NTg2NTU0Ng==&mid=406712764&idx=4&sn=34927b8bbd3dc7e655905652add50653) REST将统治物联网、二进制协议将再度崛起、PHP将卷土重来以对抗Node.js、每个人都能够编程
## 产品及其它
**知乎之父quora再爆热文——如何保持激情**
[https://mp.weixin.qq.com/s?__biz=MjM5NDg2NjA4MQ==&mid=401857389&idx=1&sn=050d019711f95add219809ed11cd3f88&scene](https://mp.weixin.qq.com/s?__biz=MjM5NDg2NjA4MQ==&mid=401857389&idx=1&sn=050d019711f95add219809ed11cd3f88&scene)
激情是一种专门让你疯狂并且努力工作的情感,因为你的大脑认为激情将沸腾你的世界。就像爱一样,这是一个值得为之奋斗的感觉。如果你还没有找到你的激情,那么就去创造新事物,引领新趋势,尝试融合出新的组合。但永远不要停止追寻的脚步。
**At 83, I Decided to Develop an App**
[https://medium.com/@DonRumsfeld/at-83-i-decided-to-develop-an-app-dadd4e53d342#.4fzowakjc](https://medium.com/@DonRumsfeld/at-83-i-decided-to-develop-an-app-dadd4e53d342#.4fzowakjc)
赞这种精神。这里的开发是指产品经理似的开发(提供idea,对UX进行把关),而不是程序员似的开发(写代码)
**人生短暂**
[http://36kr.com/p/5043063.html](http://36kr.com/p/5043063.html)
大师 Paul Graham 对时间的思考。如果你问自己,你花时间扯淡的都是什么,你可能已经知道了答案。不必要的会议、无谓的争端、官僚作风、故作姿态、应对别人的错误、交通拥堵、让人上瘾但没有回报的消遣。无情的修剪扯淡的事情,对有意义的重要事情不要等待,细细品味你有的时间。生命短暂,这就是你应该做的。
**Making 20% Time Work**
[http://begriffs.com/posts/2016-01-29-making-twenty-percent-time-work.html](http://begriffs.com/posts/2016-01-29-making-twenty-percent-time-work.html)
自从20% time被Google发扬光大后,大大小小的公司都或多或少有类似的创新机制,很多是把公司里的小工具开源。本文针对开源公司内部工具提出了一套大家分工合作的办法