FEX 技术周刊 - 2016/12/12
微信搜索『FEX』关注我们的公众号,及时获得最新资讯。
业界会议
The largest JavaScript conference in Europe - 12.02-05
https://www.dotjs.io/
附参会 Innovation, get used to it. - dotJS 2016 conference report
Google 开发者大会北京站 - 12.08
http://gdd.android-studio.org/
http://36kr.com/p/5058706.html
Google 开发者中国网站 https://developers.google.cn/ 正式发布。
SegmentFault Developer Conference - 杭州
https://segmentfault.com/e/1160000006876265
SegmentFault Developer Conference(SFDC),将以技术为核心,邀请全国范围的开发者和重量级的技术嘉宾,一起分享各自领域的技术实践和心得见解。发现 segments events 栏目下的各种会竟然这么多,这两年技术交流越来越多了。
深阅读
Inclusive Design at Microsoft
https://www.microsoft.com/en-us/design/inclusive
It’s in our mission statement: empower every person on the planet to achieve more. Designing for inclusivity opens up our experiences and reflects how people adapt to the world around them. The toolkit is a comprehensive resource for any inclusive session you want to lead. Practice new skills, develop new concepts, or create a prototype – the toolkit is made to be retrofitted to your design team’s goals. Download everything here, and start exploring!
The State of Babel
https://babeljs.io/blog/2016/12/07/the-state-of-babel
从 Some History、Current Status、The Future、Community 四个维度介绍 babel 这个前端必备工具。
Dear JavaScript
https://medium.com/@thejameskyle/dear-javascript-7e14ffcae36c#.w9ptfkdtw
I’ve contributed to a number of open source projects in this community (Babel, Flow, Yarn, Lerna, etc.). As a maintainer of these popular projects, I’ve experienced some of the best this community has to offer, as well as some of the worst. We need to identify the posts that tackle real problems, the ones that will have a positive impact in the community. We need to contribute to the conversations that work towards better outcomes. Fight the urge to post things that only serve to express anger. We can’t continue piling onto problems without contributing something real to the conversation. If we focus on solutions, focus on helping others, focus on sharing ideas, we’ll be in a better place. We’re all part of a broader community and we all have an impact on it. We can either have a positive impact or a negative one. It’s entirely up to us.
Top JavaScript Frameworks & Topics to Learn in 2017
https://medium.com/javascript-scene/top-javascript-frameworks-topics-to-learn-in-2017-700a397b711#.s7jri8xzq
The popularity of JavaScript has led to a very vibrant ecosystem of technologies, frameworks, and libraries. Along with all the amazing diversity and energy in the ecosystem comes a high degree of confusion for many. What technologies should you care about? 另附:Enough JavaScript to be dangerous in 2016
Advanced Node.js Project Structure Tutorial - Node.js at Scale
https://blog.risingstack.com/node-js-project-structure-tutorial-node-js-at-scale/
Project structuring is an important topic because the way you bootstrap your application can determine the whole development experience throughout the life of the project. In this Node.js project structure tutorial I’ll answer some of the most common questions we receive at RisingStack about structuring advanced Node applications, and help you with structuring a complex project.
Progressive Web AMPs
https://www.smashingmagazine.com/2016/12/progressive-web-amps/
There are ways to mitigate this problem of a slow first load — prerendering a basic layout on the server, lazy-loading chunks of functionality and so on — but you can only get so far with this strategy, and you have to employ, or be, a front-end performance wizard. So, if an almost instant first load is fundamentally at odds with a native-like app experience, what can we do?
GPU Animation: Doing It Right
https://www.smashingmagazine.com/2016/12/gpu-animation-doing-it-right/
These properties have become something like how we used zoom: 1 for Internet Explorer 6 (if you catch my drift) in terms of preparing animation for the GPU — or compositing, as browser vendors like to call it. But sometimes animation that is nice and smooth in a simple demo runs very slowly on a real website, introduces visual artefacts or even crashes the browser. Why does this happen? How do we fix it? Let’s try to understand.
You Might Not Need TypeScript (or Static Types)
https://medium.com/javascript-scene/you-might-not-need-typescript-or-static-types-aa7cb670a77b#.b3vt12x1r
TypeScript has gained a lot of popularity since the Angular 2 project decided to adopt it and write all their documentation examples in TypeScript, but is it really worth the investment?Before we get into this, I’ll preface it by saying that I’m a fan of the tools that static types enable, and TypeScript is currently my favorite static type system for the JavaScript community.
Fun hacks for faster content
https://jakearchibald.com/2016/fun-hacks-faster-content/
A few weeks ago I was at Heathrow airport getting a bit of work done before a flight, and I noticed something odd about the performance of GitHub: It was quicker to open links in a new window than simply click them. GitHub cares about performance so they server-render their pages. However, when navigating within the same tab navigation is entirely reimplemented using JavaScript.
StageXL 1.0 - A fast 2D rendering engine for HTML5 and Dart
https://medium.com/@bp74/stagexl-1-0-a9c5ff22a534#.2j1w2hg6a
After more than 4 years in development and available since the early beta versions of Dart, we are proud to announce the release of StageXL 1.0. StageXL is a fast and universal 2D render engine for games and applications on the web. This article talks about the most important features and applications of this library.
URL Parsing in WebKit
https://webkit.org/blog/7086/url-parsing-in-webkit/
URL implementations in browsers and elsewhere need to change and become more consistent and safe. Web developers need to adapt to such changes. If there are differences of opinion, we should discuss and resolve them. If changing breaks things, we should consider what the Internet will be decades from now. Web standards conformance makes the Internet better for everyone.
No API is the best API - 抛弃 should/expect/chai 吧
https://github.com/atian25/blog/issues/16
介绍了阿里内部广泛使用的 egg 框架中使用的 Power Assert 这个写单测时用到的类库。
手机QQ上传速度提升8倍秘诀:解决速度与成功率的“鱼翅”项目
http://mp.weixin.qq.com/s/KCaz4vELp8-P0_dtYuAJ0w
在移动应用开发中,应用上线了只是一个开始,噩梦在后面:手机越用越卡为哪般?手机发烫是为何?谁偷走了用户的钱包?如何瘦成一道闪电?这些问题解决起来都是非常麻烦的,腾讯移动品质中心(TMQ)成立了专项测试团队来解决这些问题,其中一个专项研究代号为“大白鲨”,针对图片上传经常失败的问题展开了深入研究……另附:微信异步化改造实践:8亿月活、万台机器背后的解决方案
石墨文档的云端表格实时压缩策略
https://zhuanlan.zhihu.com/p/24102444
多人实时编写会造成许多的冲突,拿表格来说,当用户 Bob 在 B2 单元格编写内容的时候,他的朋友 Jeff 在 B 列的前面又插入了一列,如果两个操作同时发给服务器就会产生冲突。在石墨文档,我们维护了一个数据计算集群通过一套算法计算分析来帮助用户解决冲突。
以实践真正理解小程序
http://mp.weixin.qq.com/s?__biz=MzIwNjQwMzUwMQ==&mid=2247484671&idx=1&sn=53916ce0ce242b186e76d9c0d629dbe6
「轻芒小程序+」是由轻芒团队提出的小程序解决方案,它将替内容创业者免费搭建属于自己的微信小程序,其创建的小程序在内容发布之外,还将具有评论、笔记、付费阅读等特色功能。轻芒小程序+ 不打算创建一个新的内容平台,而是将内容创业者现有的自媒体账号转化成微信小程序。内容创业者只要照常更新自媒体,这些内容就能自动更新到小程序。我们在做「轻芒小程序+」和其他轻芒产品的小程序应用过程中,对小程序有了进一步的理解,进而有了本文。
[译]致设计师 - From 前端工程师
https://zhuanlan.zhihu.com/p/24094812
这封信已经酝酿了很多年,并且它的部分内容已经通过口头或书面形式交付给了各种设计师。然而,我总犹豫是否发布它,因为它可能会牵连到正和我对接的设计师或是我正为之服务的客户。所以在此之前,我想强调一下,我并不是针对谁(^_^ 我是说在座的各位),而是泛指这 18 年所有的分歧。我们已经在一起工作了近二十年了,你发给我的每个 PSD 文件或多或少存在相同的问题。以下,我想阐述下我个人的见解,如有不礼貌的地方,还请原谅。我不打算和你探讨图形或美学,也不会深入到排版、可读性或使用留白之类的。相反,我想谈谈你设计的文件该如何对接给我。
[译]ES6 虽好,使用需谨慎
http://zcfy.cc/article/1761
新特性是好,但要用在合适的场景。赞文章末尾这段:“若在写代码时要想象最终维护你的代码的人是个有暴力倾向的精神病患者,而且他知道你住在哪儿(这样你就能更谨慎地写好代码了)”。
[译]为什么你需要成为一名全栈开发工程师
http://mp.weixin.qq.com/s?__biz=MzA4NjE3MDg4OQ==&mid=2650963916&idx=1&sn=b2a488e45e89fb7d8190395c6b5d7c04
最近几年,我们开始给开发者划分两种不同的职业路径:前端和后端。但是我们总是忘记了第三种选择:全栈
全栈开发已经被提出有一段时间了,它曾经被直接叫做“开发”。但是由于开发工作的复杂性持续增长,我们的UI(用户界面)需要从其背后的逻辑中解耦出来。于是,现在,我们也就有了两个不同的领域,前端和后端。让我们探索全栈开发,看看当考虑到各方面与之关联的挑战时,沿着这样一条路径走下去,是不是行得通。
单点登录原理与简单实现
http://www.cnblogs.com/ywlaker/archive/2016/11/29/6113927.html
科普登录相关的技术。另附:传统 Web 应用中的身份验证技术
HTTPS之难,难于上青天
http://mp.weixin.qq.com/s/dQooupVCrhXD2-naVv5b-Q
本文旨在介绍对于大规模组织,实施HTTPS的难度到底有多大,以及企业在这一过程中可能遇到的挑战。简而言之:影响HTTPS实施的主要问题并不在技术本身,更多在于人的问题-换句话说,也就是缺乏足够的动力。对很多网站来说,没有足够的动力让他们经历各种头疼的问题将网站迁移至HTTPS协议。另附:How to set up stress-free SSL on an OS X development machine。
Node 地下铁第三期广州站线下沙龙总结
http://weibo.com/ttarticle/p/show?id=2309404050191933158143
这次技术沙龙的话题质量还不错,搞 Node 的同学可以认真学习下。
新鲜货
Yoga - A cross-platform layout engine
https://facebook.github.io/yoga/
Yoga is a cross-platform layout engine enabling maximum collaboration within your team by implementing an API familiar to many designers and opening it up to developers across different platforms.
- Do you already know Flexbox? Then you already know Yoga.
- Write code in a language familiar to you - Java, C#, Objective-C, C.
- C under the hood so your code moves fast.
- Battle tested in popular frameworks like React Native.
Firebug 停止维护
http://getfirebug.com/
The Firebug extension isn’t being developed or maintained any longer. We invite you to use the Firefox built-in DevTools instead. 向这个给 Web 研发带来杰出贡献的伟大产品致敬,感谢它给我们带来的便利。
Announcing TypeScript 2.1
https://blogs.msdn.microsoft.com/typescript/2016/12/07/announcing-typescript-2-1/
here’s a bit more about what’s new in 2.1 : Async Functions; Object Rest & Spread; keyof and Lookup Types; Mapped Types; Partial, Readonly, Record, and Pick; Easier Imports.
Angular 1.6 is here, this is what you need to know
https://toddmotto.com/angular-1-6-is-here
Angular 1.6 just got released! Here’s the low down on what to expect for the component method changes as well as $http Promise method deprecations and the amazing new ngModelOptions inheritance feature.
A Study Path for Game Programmer
https://github.com/miloyip/game-programmer/
The books shown in the WORK represent knowledge/skills that may/should be acquired by game programmers. There are other important ways of learning, such as practicing, courses, industrial/academic conferences/publications, etc.
Meet The Web, Worldwide
http://calendar.perfplanet.com/2016/meet-the-web-worldwide/
e need to take steps to expand our perspective and avoid having a myopic view of what it means to access today’s web. There are plenty of interesting articles and data points that can help us become better informed, but they’re scattered throughout numerous reports, databases and articles. I wanted to start collecting them in one central location, so I built The Web, Worldwide
NativeScript迎重大更新,支持Web Workers规范
http://mp.weixin.qq.com/s?__biz=MzIwNjQwMzUwMQ==&mid=2247484649&idx=1&sn=b65c0a2a7bb9b2cab0e93b48a87e13bb
https://www.nativescript.org/
NativeScript 2.4版本发布,该版本将支持Angular 2.2、Node 6、ES6和ES7,同时附带了默认的CSS主题。NativeScript既不是一种新型的JavaScript语言,也不是原生功能的封装器,它包括一个JavaScript运行时环境和一种将JavaScript调用转化为原生调用的机制。用JavaScript(或TypeScript,CoffeeScript等)语言编写应用,之后在安卓平台用V8,在iOS和Windows Phone上用WebKit JavaScriptCore解释应用。
bowl.js
https://elemefe.github.io/bowl/
bowl 是一个用 localStorage 来缓存脚本和样式资源的加载器。在获取脚本和样式之后,这个小巧的 JavaScript 库会将它们保存到浏览器的 localStorage 中。当这个文件下次再被请求的时候,bowl 将会从 localStorage 中读取并将它插入到页面中。来自饿了么团队的黑科技,毕竟是替代了浏览器原生的资源加载机制,使用需谨慎。
date-fns - Modern JavaScript date utility library
https://github.com/date-fns/date-fns
date-fns provides the most comprehensive, yet simple and consistent toolset for manipulating JavaScript dates in a browser & Node.js.
CSS Grid!
http://meyerweb.com/eric/thoughts/2016/12/05/css-grid/
CSS Grid is going to become supported-by-default in Chrome and Firefox in March of 2017. Specifically, Mozilla will ship it in Firefox 52, scheduled for March 7th. Due to the timing of their making Grid enabled-by-default in Chrome Canary, it appears Google will ship it in Chrome 57, scheduled for March 14th.
react-form
https://github.com/tannerlinsley/react-form
React Form is a lightweight framework and utility for building powerful forms in React applications.
Styletron
https://github.com/rtsao/styletron
Styletron is a universal CSS-in-JS engine built from the ground up for high-performance. Features include:
- Advanced critical rendering path optimization of server-rendered pages
- Efficient dynamic client-side styles
Node.js v7 has updated V8 to 5.4
https://nodejs.org/en/blog/community/update-v8-5.4/
With the release of Node.js 7.0.0, the V8 JavaScript engine has been upgraded from 5.1 to its latest stable version, 5.4. It brings in new language features and increased performance.
产品及其它
最重要的事,只有一件 - 傅盛
http://mp.weixin.qq.com/s/L_PKSGnHBpPD2tZvIohmCA
很多事情的改变,都是一件一件去完成的。这些大道理,大家听过很多,只不过我们喜欢一个词,叫“但是”。我觉得没有“但是”,找到那个关键点去撬动,就跟“给你一个支点撬动地球”一样。关键在于:怎么才能找到那个支点?那件最重要的事到底是什么?完成最重要的事,就像推倒第一块多米诺骨牌,接着,剩下的问题都会迎刃而解。
产品经理避免沟通低效和开发风险
http://mp.weixin.qq.com/s?__biz=MjM5NDUyOTAwOA==&mid=2652914208&idx=1&sn=741751811103c04690c6b50cfe957f1d
产品经理在一家互联网公司往往掌管着所有的需求,需要沟通的对象也包括了设计、开发、测试、运营等角色。所以,一名产品经理需要处理和面对的信息量常常是巨大的,也因此往往会面临到沟通低效、产品开发进度和质量不可控等等问题。这时候,最好的解决方案,其实是一份清晰高效的产品文档。可惜,大部分产品经理对于“文档”的价值和意义认知都是不够的。在本文中,作者 Gaurav Oberoi ( SurveyMonkey 的前联合创始人,曾于 Amazon、Xmarks 就职)分享了他对于产品文档的看法以及撰写产品文档的常用流程。此外,本文还含有一份真正完整的产品文档示例,以及详细的产品文档写作指南(包括格式+思路),希望对你有所帮助。
俞军:我做百度搜索与百度贴吧的产品方法论
http://mp.weixin.qq.com/s?__biz=MzI5MzExNDgxMw==&mid=2650615528&idx=1&sn=bd968d5acd6254a494bb445123e1f5a3
当你做一个产品,投入的成本不是很高的时候,是不需要考虑商业行为的,你只需要考虑用户需求。好的互联网产品盈利都是顺势而为的,不能强求,有了美誉度之后,用户会主动帮助你设计盈利模式的。用户体验,是让用户付出最小成本就能满足他的需求。产品设计的本质是利益分配,所以你要掌握好各方利益的平衡,比如要让用户的净收益最大化。用户净收益=(新体验-旧体验)-切换成本,所以一个新的产品或产品升级,要尽可能提升新体验,尽可能将旧体验降为零,尽可能将切换成本降为零。
最牛B的编码套路
http://mp.weixin.qq.com/s?__biz=MjM5NzA1MTcyMA==&mid=2651162442&idx=1&sn=21f824eaac2993834627b7196ad27254
老文章,但仍然非常实用。单纯地每天埋头于工作并不能算是真正意义上的锻炼——参加会议并不能锻炼你的人际交往能力;回复邮件并不能提高你的打字水平。你必须定期留出时间,集中锻炼,这样才能把事情做得更好。同样,勤学苦练是练就编程高手的唯一之路。所以,对某项技术有兴趣的话,千万别“临渊羡鱼”,还是“退而结网”吧。