FEX 技术周刊 - 2017/02/20
微信搜索『FEX』关注我们的公众号,及时获得最新资讯。
深阅读
High-performance ES2015 and beyond
https://v8project.blogspot.jp/2017/02/high-performance-es2015-and-beyond.html
Over the last couple of months the V8 team focused on bringing the performance of newly added ES2015 and other even more recent JavaScript features on par with their transpiled ES5 counterparts.
Introducing Cloud Spanner: a global database service for mission-critical applications
https://cloudplatform.googleblog.com/2017/02/introducing-Cloud-Spanner-a-global-database-service-for-mission-critical-applications.html
http://developers.googleblog.cn/2017/02/tensorflow-10.html
We’re excited to announce the public beta for Cloud Spanner, a globally distributed relational database service that lets customers have their cake and eat it too: ACID transactions and SQL semantics, without giving up horizontal scaling and high availability.
Announcing TensorFlow 1.0
https://developers.googleblog.com/2017/02/announcing-tensorflow-10.html
We’re announcing TensorFlow 1.0: It’s faster; It’s more flexible; It’s more production-ready than ever. 另附: Yahoo supercharges TensorFlow with Apache Spark
JavaScript’s Journey through 2016
http://developer.telerik.com/topics/web-development/javascripts-journey-2016/
Every year there seems to be more and more ways to use JavaScript and 2016 turned out to be no different. Dependent on your level of optimism this can be extremely exciting or extremely confusing. Last year we made some predictions about JavaScript in 2016. Now, I’ll look back to to see if our predictions held true or went the way of the political pundits. Then I’ll use what we’ve learned this year to make an educated guess on what we’ll get out of 2017.
Base64 Encoding & Performance
https://csswizardry.com/2017/02/base64-encoding-and-performance/
One of the touted ‘best practices’ born of this advice was the adoption of Base64 encoding: the act of taking an external asset (e.g. an image) and embedding it directly into the text-resource that would utilise it (e.g. a stylesheet). The upshot of which is that we reduce the number of HTTP requests, and that both assets (e.g. the stylesheet and the image) arrive at the same time. Sounds like a dream, right? Unfortunately Base64 encoding assets is very much an anti-pattern1. In this article I’m hoping to share some insights as to critical path optimisation, Gzip, and of course, Base64.
An Update on ES6 Modules in Node.js
https://medium.com/the-node-js-collection/an-update-on-es6-modules-in-node-js-42c958b890c#.7ha4c9vtc
A few months ago I wrote an article describing the various differences that exist between Node.js CommonJS modules and the new ES6 Module system; and described a number of challenges inherent with implementing the new model in Node.js core. Here, I want to provide an update on how things are progressing.
JavaScript Debugging Improvements
https://webkit.org/blog/7219/javascript-debugging-improvements/
WebKit 中的 JS debug 终于有些改进了
Achieve 60 FPS Mobile Animations with CSS3
https://www.sitepoint.com/achieve-60-fps-mobile-animations-with-css3/
文中先介绍了浏览器渲染的4个流程,然后结合demo一步步介绍在Composite层实现高FPS的css动画
JAVASCRIPT WITHOUT LOOPS
http://jrsinclair.com/articles/2017/javascript-without-loops/
We’ve been saying that control structures like loops introduce complexity. But so far we’ve not seen any evidence of how that happens. So let’s take a look at how loops in JavaScript work. In JavaScript we have at least four or five ways of looping.
How to build cross-platform mobile apps using nothing more than a JSON markup
https://medium.freecodecamp.com/how-to-build-cross-platform-mobile-apps-using-nothing-more-than-a-json-markup-f493abec1873#.l9b4vcicx
For the past few months, I’ve been working on a new way to build cross-platform, native iOS and Android apps called Jasonette. It lets you describe an entire app with nothing but a single JSON markup. If your app consists entirely of JSON, it can be treated like any other data. And it can be served remotely from the cloud on-demand.
Managing State in Angular Applications
https://blog.nrwl.io/managing-state-in-angular-applications-22b75ef5625f#.tk9cklboj
Managing state is a hard problem. We need to coordinate multiple backends, web workers, and UI components, all of which update the state concurrently. Patterns like Redux make some of this coordination explicit, but they don’t solve the problem completely. It is much broader. What should we store in memory and what in the URL? What about the local UI state? How do we synchronize the persistent state, the URL, and the state on the server? All these questions have to be answered when designing the state management of our applications. In this article I will cover six types of state, the typical mistakes we make managing them in Angular applications, and the patterns we should use instead. 另附:Angular 2+ Components & Libraries
MAKING YOUR ANGULAR APPS FAST
https://www.sitepoint.com/achieve-60-fps-mobile-animations-with-css3/文中先举了一个平时我们可能在默认情况下写出的可拖拽的10000个svg box 的demo,然后逐步对demo进行优化和对比。
Introducing redux-query
https://amplitude.engineering/introducing-redux-query-7734e7215b3b#.2in08kfq0
We are excited to share our solution to this problem: redux-query. We think redux-query is a great solution for any React/Redux-based web apps that depend on REST APIs. It lets you store all of your network state inside your existing Redux store with minimal boilerplate and some great features like automatic request cancellation, optimistic updates, response caching and deduplication.
Map Rollovers
http://mediatemple.net/blog/tips/map-rollovers/
文中讲述了如何用svg和js来实现地图各区域高亮响应的效果
记一次发现「聚美优品网站漏洞被用于微信钓鱼」的过程
http://div.io/topic/1923
微信是一个方便分享信息的地方,但大家在分享信息的时候最好有一个甄别。微信是一个比较封闭的信息空间,没有那么多人帮你矫正信息。无论出发点是什么,传播未经考证消息,很可能被不法分子利用。本文记录一次发现利用网站漏洞在微信里钓鱼的过程
如何在移动应用中有效地收集用户反馈
http://mp.weixin.qq.com/s?__biz=MzA3ODg4MDk0Ng==&mid=2651113103&idx=1&sn=7410742bb6f0b62d6beee4990933911e
本文从用户体验、开发、运维、成本等多维度分析了移动应用中多种主流的反馈形式,并深入分析了每种反馈形式的适用场景,目的是帮助移动应用开发团队更加合理的使用反馈机制、改进产品。
JavaScript 的 this 指向问题深度解析
https://segmentfault.com/a/1190000008400124
文中详细的从bind、call、apply对this的影响;方法调用时;new调用时;使用箭头函数时this的指向问题。
SQLite对MySQL对PostgreSQL:关系数据库管理系统比拼
http://blog.csdn.net/zstack_org/article/details/55260984
文中详细的介绍了SQLite、Mysql、PostgreSQL这3种关系型数据库支持的数据类型、优缺点以及应该在什么情况下使用或者不使用它们。
More Readable CSS with CSS Custom Properties
https://sgom.es/posts/2017-02-03-more-readable-css-with-css-custom-properties/
文中讲了如何通过css变量以及calc来更使css可读性更高并且更易维护
Operating System: From 0 to 1
https://tuhdo.github.io/os01/
This book helps you gain the foundational knowledge required to write an operating system from scratch. Hence the title, 0 to 1. After completing this book, at the very least you will learn: How to write an operating system from scratch by reading hardware datasheets. In the real world, it works like that. You won’t be able to consult Google for a quick answer; A big picture of how each layer of a computer is related to the other, from hardware to software.
新鲜货
2017图灵图书目录电子版发布
http://mp.weixin.qq.com/s/nWjZzJ2r7BlibJzyBVNlIA
学习是一辈子的事情,新的一年已经过去一段时日,定制与实施自己的学习计划,在工作之余多看书,在这新的一年得到更多的成长!
Open Source Guides
https://opensource.guide/
Github 出的开源指南
CSS4 SELECTORS: WHAT CAN WE EXPECT?
https://gorillalogic.com/blog/css4-selectors-can-expect/
https://drafts.csswg.org/selectors/
文中介绍了一些在CSS4草案中出现的一些新特性
WebAssembly Will Ease Collaboration on Next Generation Video Codecs
https://hacks.mozilla.org/2017/02/webassembly-will-ease-collaboration-on-next-generation-video-codecs/
文中提到一个库 Emscripten http://kripken.github.io/emscripten-site/ 挺有意思的
Babel 6.23.0 Released
https://babeljs.io/blog/2017/02/13/6.23.0
Babel 6.23.0 发版
Go 1.8 Release Notes
https://beta.golang.org/doc/go1.8
The latest Go release, version 1.8, arrives six months after Go 1.7. Most of its changes are in the implementation of the toolchain, runtime, and libraries. There are two minor changes to the language specification. As always, the release maintains the Go 1 promise of compatibility. We expect almost all Go programs to continue to compile and run as before.
Awesome OSX Command Line
https://github.com/herrbischoff/awesome-osx-command-line
A curated list of shell commands and tools specific to OS X. Use your OS X terminal shell to do awesome things.
React Select
http://jedwatson.github.io/react-select/
A flexible and beautiful Select Input control for ReactJS with multiselect, autocomplete and ajax support.
Fluid Paint: A WebGL-based Painting Experience
http://david.li/paint/
https://github.com/dli/paint
一款基于WebGL的画板模拟器
svgo
https://github.com/svg/svgo
这是一款基于node的将SVG矢量图片文件充分优化图片内冗余或无用的数据与元素的工具,例如编辑元数据、评论、隐藏的元素等等。
CSSO
https://github.com/css/csso
CSSO (CSS Optimizer) is a CSS minifier. It performs three sort of transformations: cleaning (removing redundant), compression (replacement for shorter form) and restructuring (merge of declarations, rulesets and so on). As a result your CSS becomes much smaller.
ScrollDir
https://dollarshaveclub.github.io/scrolldir/
ScrollDir, short for Scroll Direction, is a 0 dependency micro Javascript plugin to easily leverage vertical scroll direction in CSS via a data attribute.
web gradients
https://webgradients.com/
一系列美观的渐变色的设计组合,当我们想找背景色时直接在这里面找确实很方便。
typewriterjs
https://safi.me.uk/typewriterjs/
A simple yet powerful native javascript plugin for a cool typewriter effect.
fmt-obj
https://github.com/queckezz/fmt-obj
node端对输出的结果进行配色和格式化,对于在console处的调试会显得清晰很多
opentype.js
https://github.com/nodebox/opentype.js
opentype.js is a JavaScript parser and writer for TrueType and OpenType fonts.It gives you access to the letterforms of text from the browser or node.js.
tlapse
https://github.com/typicode/tlapse
A tiny utility that takes periodic screenshots of your site while you develop.
git-quick-stats
https://github.com/arzzen/git-quick-stats
Git quick statistics is a simple and efficient way to access various statistics in git repository.
A free guide to HTML
http://htmlreference.io/
htmlreference.io is a free guide to HTML. It features all elements and attributes.
Free Fonts With Personality And Style
https://www.smashingmagazine.com/2017/02/30-free-fonts-with-personality-and-style/
In this post, we hand-picked 30 fonts that are bound to give your project the finishing touch, and maybe even inspire you to something entirely new. The fonts can all be downloaded for free. However, please note that some of them are free for personal use only and are clearly marked as such in the description. Also, please be sure to check the license agreements before using a font in your project as they may change from time to time. 另附:Free Icon Set: Elements From Space To Earth.
产品及其它
译-揭秘Google的软件工程实践
http://mp.weixin.qq.com/s?__biz=MzI4NjYwMjcxOQ==&mid=2247483888&idx=1&sn=f95e5c500c08061b784aedcb762a0373
Google的成功有着很多原因, 包括开明的领导力、伟大的人才、超高的招聘标准,以及在迅速成长的市场中成功利用早期领先优势的财务实力。但其中一个原因是Google开发了优秀的软件工程实践,帮助它取得成功。这些做法随着时间的流逝,根据地球上众多最有才华的软件工程师积累和凝练的智慧而演变。我们愿与世界分享我们的实践的经验,包括分享我们从错误中学到的一些教训。本文的目的是梳理并简要介绍Google的关键软件工程实践。然后,其他组织和个人可以将它们与自己的软件工程实践进行比较和对比,并考虑是否自己应用一些实践经验。另附:在 Google 工作 10 年,到底能学到啥
How Stack Overflow Redesigned the Top Navigation
http://stackoverflow.blog/2017/02/Why-Stack-Overflow-Redesigned-the-Top-Navigation/
We launched this update today as part of a series of changes supporting our core mission: Make developers’ lives better. In the past year, we fully integrated our by-developers, for-developers Jobs product. We added a whole new content type — Documentation — to help you find even more solutions to your programming questions. And we added Developer Story to help developers ditch the outdated resume format.
Facebook - Building Global Community
https://www.facebook.com/notes/mark-zuckerberg/building-global-community/10154544292806634
Giving people a voice is a principle our community has been committed to since we began. As we look ahead to building the social infrastructure for a global community, we will work on building new tools that encourage thoughtful civic engagement. Empowering us to use our voices will only become more important. 相关文章:Facebook Plans to Rewire Your Life
科技与人工智能正在埋没人类的未来
http://mp.weixin.qq.com/s?__biz=MjM5NDUyOTAwOA==&mid=2652914989&idx=1&sn=7d79115964920dd64389dc56433ccd91
无人驾驶汽车一定会让大量司机失业;在线聊天机器人的发展和数据积累,最终可能会导致客服人员们的失业;以及,大量效率工具的出现也可能会让一部分产品经理和运营失业。机器或许没有真正超越和奴役人类,却在不经意间把大量人类变成了“无用”的存在,从而在另一种意义上开始渐渐凌驾于人类之上。