FEX 技术周刊 - 2016/10/24
微信搜索『FEX』关注我们的公众号,及时获得最新资讯。
业界会议
Qconf 2016.10.20-22
http://2016.qconshanghai.com/
期待演讲资料,这是前端专题 http://2016.qconshanghai.com/track/2974
Polymer Summit 2016 10.17-18
https://www.polymer-project.org/summit/
可以了解下 Polymer 的进展。
资料: https://www.youtube.com/playlist?list=PLNYkxOF6rcICc687SxHQRuo9TVNOJelSZ
Alloyteam Conf 2016.10.23
http://ac.alloyteam.com/
https://segmentfault.com/e/1160000007039880
AC大会(Alloyteam Conf ),是腾讯前端团队AlloyTeam发起的前端技术大会,旨在分享团队在技术研究、产品研发、开源项目的经验沉淀。期待后续的演讲资料。
深阅读
Node.js v6 Transitions to LTS
https://medium.com/@nodejs/node-js-v6-transitions-to-lts-be7f18c17159#.flp8oui8m
Node.js v6 Moves from “Current” to “LTS”. Node.js v6 is important to enterprises and users that need stability. If you are on Node.js v4, you have 18 months to transition from Node.js v4 to Node.js v6. We suggest starting now. Node.js v4 will stop being maintained April 2018.
附:Breaking changes between v4 LTS and v6 LTS
npm v4.0.0
https://github.com/npm/npm/releases/tag/v4.0.0
While its predecessor had some pretty serious impact, npm@4 is expected to have a much smaller effect on your day-to-day use of npm. Over the past year, we’ve collected a handful of breaking changes that we wanted to get in which are only breaking under a strict semver interpretation (which we follow). Some of these are simple usability improvements, while others fix crashes and serious issues that required a major release to include.
JSX 2.0
https://github.com/facebook/jsx/issues/65?
We have accumulated a number of these nice-to-haves breaking changes that would be nice to incorporate. However, at this point JSX is a hugely adopted syntax in all kinds of tooling. Making breaking changes will churn that ecosystem significantly. I think it is probably only worth doing as a batch when the accumulated amount of changes makes it worth while. Let’s call it JSX 2.0. What should go into it?
How we deploy at npm
http://blog.npmjs.org/post/152035356435/how-we-deploy-at-npm
Here’s how we deploy node services at npm:
cd ~/code/exciting-service
git push origin +master:deploy-production
That’s it: git push and we’ve deployed. Of course, a lot is triggered by that simple action. This blog post is all about the things that happen after we type a git command and press Return.
Why We Chose Vue.js
https://about.gitlab.com/2016/10/20/why-we-chose-vue/
I had a great conversation with an interviewee a few weeks ago about how one should go about choosing a JavaScript framework. He pointed out that when a major software company releases their secret sauce, there is going to be hype. Devs think to themselves, “That company writes JS differently than me, and they are prominent and successful. Is their way of writing JS better than mine? And therefore must I adopt it?” Their secret sauce may be awesome, but don’t assume awesomeness just because everyone else gets excited. You wouldn’t copy and paste an answer from StackOverflow, without understanding it, so why copy and paste an entire framework? Which brings me to our decision to use Vue.js at GitLab.
另附:来自 Vue 官方的 vue 和其它框架的对比
Is Model-View-Controller dead on the front end?
https://medium.freecodecamp.com/is-mvc-dead-for-the-frontend-35b4d1fe39ec#.qpxqpeknb
More and more front-end developers are adopting unidirectional architectures. So what’s the future for the classic Model-View-Controller (MVC) approach? As more and more developers start to see the advantages of components and unidirectional architectures, the focus will be on building better tools and libraries that go down that path.
The ECMAScript 2016 change you probably don’t know
https://www.nczonline.net/blog/2016/10/the-ecmascript-2016-change-you-probably-dont-know/
Compared to ECMAScript 6 (also known as ECMAScript 2015), ECMAScript 2016 was a minor update to the language specification for JavaScript. This was due to the decision that ECMAScript editions would now move to a yearly release cycle, effectively just a snapshot of all the features that were ready.
10 Modern Software Over-Engineering Mistakes
https://medium.com/@rdsubhas/10-modern-software-engineering-mistakes-bc67fbef4fc8#.gsmnvfo6d
Few things are guaranteed to increase all the time: Distance between stars, Entropy in the visible universe, and Fucking business requirements. Many articles say Dont over-engineer but don’t say why or how. Here are 10 clear examples.
How To Build Honest UIs And Help Users Make Better Decisions
https://www.smashingmagazine.com/2016/10/how-to-build-honest-uis-and-help-users-make-better-decisions/
This article will look at how we can give people confidence in the decisions made for them by using “light patterns,” which ensure that user interfaces are honest and transparent, while even nudging users to make better decisions for themselves.
How the Web Became Unreadable
https://backchannel.com/how-the-web-became-unreadable-a781ddc711b6#.yt2t2yhng
My plea to designers and software engineers: Ignore the fads and go back to the typographic principles of print — keep your type black, and vary weight and font instead of grayness. You’ll be making things better for people who read on smaller, dimmer screens, even if their eyes aren’t aging like mine. It may not be trendy, but it’s time to consider who is being left out by the web’s aesthetic.
Progressive enhancement isn’t dead, but it smells funny
https://nolanlawson.com/2016/10/13/progressive-enhancement-isnt-dead-but-it-smells-funny/
对 Progressive enhancement 这个话题的深入思考。
Node.js at Scale - How the module system, CommonJS & require works
https://blog.risingstack.com/node-js-at-scale-module-system-commonjs-require/
require 是如何实现的
css命名管理混乱?不妨试试BEM
http://shuiyi.io/#!/article/33
http://getbem.com/introduction/
市面上有许多旨在减少CSS代码量,且方便程序员合作和维护CSS代码的方案,例如OOCSS、SMACSS、SUITCSS,而BEM是其中最常被人提起的一个方案。
码农·走进设计(第25期)
http://www.ituring.com.cn/book/1904
本期《码农》带领大家一起走进设计。在这间“迷你设计教室”里,掌握设计的基础元素,比如设计中的空间,设计中的线和设计中的倾斜,并获得百用百通的六大设计原则。注重动手能力的课堂,不会止步于理论的讲解。“践行”专栏真枪实刀地演示应对响应式web设计中意外加载不必要内容的策略,从而提高网站性能,提升用户体验。
前端是 🤘 而 JavaScript 是 👑
https://www.h5jun.com/post/front-end-is-and-javascript-is.html
JavaScript 的简易性和几乎是通用的标准让它变得极为强大。它在客户端和服务器上都能够快速渲染的能力是令人瞩目的。JavaScript 已经打入原生应用开发,我们周围的世界已经被 JavaScript 连接起来,JavaScript 将会出现在各种地方。有了这些能力,我们可以创造奇迹。可以开发无人机来救援被困的人,开发新一代支付解决方案,开发人造机器人以及其他各种不可思议的产品。有一件事情是明确的,现在是成为前端工程师的好时代!
分布式领域架构师要掌握的技术
http://hellojava.info/?p=520
分布式系统无疑是持久的热门话题,但其实如果不是一定有必要,强烈建议不要进入分布式领域,在集中式的情况下很多问题都会简单不少,技术人员千万不要因为外界火热的例如微服务,就把自己的产品的也去做改造,一定要仔细判断是否有必要,不要为了技术而技术,那么在必须分布式的情况下(访问量、存储量或开发人数),一个分布式领域的合格的架构师要掌握哪些技术呢,这篇文章就聊聊这个话题。
[译]我终于弄懂了各种前端build工具
https://www.sdk.cn/news/5412
即使对于一些经验丰富的开发者来说,诸多的前端工具还是会让他们感到头痛,例如我。解决这个问题的最好办法,就是在概念上理解他们的工作方式,已经他们之间相互配合的方式。
揭秘浏览器远程调试技术
http://taobaofed.org/blog/2016/10/19/chrome-remote-debugging-technics/
用 Chrome/Webview 来作为案例,分享浏览器远程调试技术。
[译]保持冷静,节制使用 JSON
https://www.oschina.net/translate/keep-calm-and-json
如果只把JSON用在应用程序中不同层级间的数据交换上,那还好。而当人们开始要将其作为一种数据库存储格式来使用时,就不好了。当我第一次遇到将JSON作为一种数据库中的数据格式时,感到非常惊奇,因为数据库要花费不少代价,每一条记录里面键和值都要存,而且每次查询都要进行处理。
Web API开发现状:一个API,多个门面
http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650994448&idx=1&sn=8e53f0761e7c9735dd77f2cd9fa540f6
在Web API领域出现了一种很有意思的新趋势,那就是各种工程师和公司都在致力于为每个用户的特定需求编写专有的API。API实现理想化的设计遥遥无期,我们可能需要对其进行对应优化。一个API,应该是多个门面(Facade)吗?
Yarn vs npm: Everything You Need to Know
https://www.sitepoint.com/yarn-vs-npm/
Should everyone jump aboard the Yarn hype train now? Chances are you never encountered these problems with npm. In this article, we’re going to compare npm and Yarn, so you can decide which is best for you. Yarn 的讨论还在继续,附:So I benchmarked Yarn against the 4 most popular CI tools Why I’m Excited About Yarn and You Should Be Too
Fixing Python Performance with Rust
https://blog.sentry.io/2016/10/19/fixing-python-performance-with-rust.html
Sentry processes over a billion errors every month. We’ve been able to scale most of our systems, but in the last few months, one component has stood out as a computational chokepoint: Python’s source map processing. This project has been a tremendous success. It took us very little time to implement, it lowered processing times for our users, and it also will help us scale horizontally. Rust has been the perfect tool for this job because it allowed us to offload an expensive operation into a native library without having to use C or C++, which would not be well suited for a task of this complexity.
基于 React Native 的 58 同城 App 开发实践
http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651223483&idx=1&sn=ca1ba762b2119131c26e4ffa9f4d38ec
本文重点介绍的是实践过程中的技术架构和 Native 组件层以及热更新平台的基本情况,以期能对 React Native 的从零到深入有一个整体的把握。
Atlas:手淘Native容器化框架和思考
http://www.infoq.com/cn/articles/shoutao-atlas
安卓容器已经是各大公司标配的技术了
Optimizing React Rendering through Virtualization
https://blog.jscrambler.com/optimizing-react-rendering-through-virtualization/
一种优化 React 性能的思路
新鲜货
The Linux Foundation Unites JavaScript Community for Open Web Development
https://js.foundation/announcements/2016/10/17/Linux-Foundation-Unites-JavaScript-Community-Open-Web-Development/
http://thenewstack.io/javascript-grows-gets-foundation/
The Linux Foundation, the nonprofit advancing professional open source management for mass collaboration, today is announcing that JS Foundation is now a Linux Foundation Project. The JS Foundation is committed to help JavaScript application and server-side projects cultivate best practices and policies that promote high quality standards and broad, diverse contributions for long-term sustainability.
Announcing Firebase Cloud Messaging for Web
https://firebase.googleblog.com/2016/10/announcing-firebase-cloud-messaging-for.html?m=1
Today we’re announcing web support for Firebase Cloud Messaging (FCM) with the release of a JavaScript library. This extends our current browser support, enables a dramatically simpler implementation process, and brings powerful features such as Topics and Device Group Messaging to the web.
Microsoft Open-Sources P Language for Safe Async Event-Driven Programming
https://www.infoq.com/news/2016/10/microsoft-p-language-opensourced
https://github.com/p-org/P
Microsoft describes P as a domain-specific language to model communication between components of an asynchronous system, such as an embedded, networked, or distributed system. A P program is defined in terms of finite state machines than run concurrently. Each of them has an input queue, states, transitions, a machine-local store, and can send asynchronous messages to the others.
Serverless Technologies & Architectures
https://github.com/ServerlessHeroes/serverless-resources
A curated list of excellent resources on serverless technologies and architectures.
SVG Charting Libraries
http://mediatemple.net/blog/tips/svg-charting-libraries/
列举了优秀的基于 SVG 的 图形库。
react-fine-uploader - Makes using Fine Uploader in a React app simple
https://github.com/FineUploader/react-fine-uploader
Makes using Fine Uploader in a React app simple. Drop-in high-level components for a turn-key UI. Use small focused components to build a more custom UI. This is currently an unstable in-progress project. Breaking changes may occur at any time without notice until the version has reached 1.0.
Disney Open Source
http://disney.github.io/
Disney has established an Open Source Program to encourage our developers to utilize Open Source, contribute to Open Source projects, and to release software as Open Source. We’ve created this site to highlight Disney’s Open Source projects. We encourage you to explore our projects and we welcome your collaboration and contributions. This is just the beginning; there’s more to come, so stay tuned!
UnGoogled Chromium
https://linux.cn/article-7875-1.html?utm_source=weixin
UnGoogled Chromium[1] 是一个 Chromium 浏览器的定制版本,但是不包括任何 Google 服务或功能。它不是一个 Google 的 Chrome 版本,而是一个 Chromium 版本——这是 Chrome、Vivaldi 和 Opera 等浏览器的开源代码母本。
Weex 0.8
https://github.com/alibaba/weex/releases/tag/v0.8.0
iOS10兼容; JS Framework重构; 新的性能提升API; 全新的打包工具和Chrome开发环境插件, 多处bug修复和内存优化.
Chrome 55 Beta: Input handling improvements and async/await functions
https://blog.chromium.org/2016/10/chrome-55-beta-input-handling.html
这一版改进还挺多,另附:最新版的 stable 版 Chrome 54 的新特性
FlexJS
https://cwiki.apache.org/confluence/display/FLEX/FlexJS
将 Flex 编译为 JS 来执行,早就该做了
The average web page
https://www.advancedwebranking.com/html/
This HTML usage data comes from 8 million index pages gathered from top twenty Google results, for about 30 million keywords - chosen by keyword volume.
Caddy – HTTP/2 Web Server with Automatic HTTPS
https://caddyserver.com/
Serve The Web Like It’s 2016. Caddy is an alternative web server that is easy to configure and use. Other web servers were designed for the Web, but Caddy was designed for humans, with today’s Web in mind. Caddy supports HTTP/2, IPv6, Markdown, WebSockets, FastCGI, templates and more, right out of the box.
DemoHouse
https://github.com/airen/DemoHouse
DemoHouse is a collection of JavaScript, CSS3, Canvas, SVG and Web Animation demos. Collection best of Web Demos.If you have seen good and meaningful demos, please send us your code. Let more students share your results.
Noms
https://github.com/attic-labs/noms
Noms is a decentralized database based on ideas from Git. This repository contains two reference implementations of the database—one in Go, and one in JavaScript. It also includes a number of tools and sample applications.
Current state of HTML5 game development in 2016
http://js-kongress.de/current-state-html5-game-development-2016/
了解下 HTML5 游戏开发的现状
Kap - An open-source screen recorder built with web technology
https://github.com/wulkano/kap
Java后端书架 (2016年暖冬4.0版) - 江南白衣
http://calvin1978.blogcn.com/articles/bookshelf16.html
本书架主要针对Java后端开发与架构。更偏爱那些能用简短流畅的话,把少壮不努力的程序员所需的基础补回来的薄书,而有些教课书可能很著名,但干涩枯燥,喋喋不休的把你带回到大学课堂上昏昏欲睡,不录。
DDoS Attack Against Dyn Managed DNS
https://www.dynstatus.com/incidents/nlr4yrr162t8
2016 年 10 月 21 日北京时间 19 点 11 分,美国 DNS 服务提供商 Dyn 遭受大规模 DDoS 攻击,导致诸多网站停止服务,最终影响了小半个美国互联网。另附:半个美国网络瘫痪,这才是真相
中文技术文档的写作规范
https://github.com/ruanyf/document-style-guide
阮一峰老师整理的技术文档写作规范,挺实在的。
产品及其它
THIS IS THE FIRST TEN YEARS OF YOUR CAREER
http://www.mr-stingy.com/first-ten-years-your-career/
职业生涯的第一个十年该如何度过
随谈10年的技术生涯和技术成长
http://www.cnblogs.com/cyq1162/archive/2016/10/12/5951359.html
阶段1:只会增删改查;阶段2:能快速实现功能,却不会思考;阶段3:学会了分享、安全、性能、底层原理;阶段4:领悟了抽象思维、面向对象、写框架、用户体验;这四个阶段总结得非常到位。
小胡子哥谈成长
http://www.barretlee.com/blog/2016/10/21/my-growth-at-alibaba/
简短的文章,但总结得蛮实在的:解决一个难题、做很多项目、带领大家做一件事、为团队所有人做一件事、不断优化你的产品。
阿里前CEO卫哲-B2B不是Business to Business 而是……
http://mp.weixin.qq.com/s?__biz=MjM5NDI2NDU5Mw==&mid=2655256523&idx=1&sn=a4b5a4541dcd61c98f7d2558da56ab93
详细介绍了 B2B 这个行业的特点及 10 大核心问题。典型观点:B2B不是企业对企业,而是商人对商人,企业是死的,只有企业里面的商人是活的。无论是交易型、还是服务型B2B,真正来操作这个平台、使用服务的,一定是人;B2B是切蛋糕的过程,谁先用B2B这把刀,谁就可能在一个具体市场中获得更大市场份额,或者使得自己的内部效率提升;地推怎么考核?在不同的阶段抓四个率:覆盖率、转换率、复购率、渗透率,产品或服务是否具有强粘性,难以替代,关键取决于渗透率高低,一旦形成高渗透率,这个客户就很难切换了;与决定做平台还是自营更重要的是,是要把客户利益放在第一。