FEX 技术周刊 - 2017/02/06
微信搜索『FEX』关注我们的公众号,及时获得最新资讯。
深阅读
Google Computer Science Education
https://www.google.com/edu/cs/index.html
Computer science (CS) education is a pathway to innovation, to creativity and to exciting career opportunities. We believe that all students deserve these opportunities. That is why Google is committed to developing programs, resources, tools and community partnerships which make CS engaging and accessible for all students.
[译]热闹驱动开发
http://mp.weixin.qq.com/s?__biz=MzA3MDMwOTcwMg==&mid=2650004762&idx=1&sn=b977fae06fdf6f7a39909e956d07085a
软件开发团队关于软件架构或技术栈的决策,很多并不是基于扎实的研究和对期望效果的认真思考,而是不准确的意见、社交媒体的信息,或者就些是“热门”玩意。这种做派的危害我见过不少,称它为“热闹驱动开发(Hype Driven Development,HDD)”。我赞成的是更专业的做法,称之为“脚踏实地的软件工程”。下面一起看看HDD的来龙去脉,想想我们能怎么改进。另附:技术选型最怕的是什么
Front-End Developer Handbook 2017
https://frontendmasters.gitbooks.io/front-end-handbook-2017/content/
The content of the handbook favors web technologies (HTML, CSS, DOM, and JavaScript) and those solutions that are directly built on top of these open technologies. The materials referenced and discussed in the book are either best in class or the current offering to a problem. The book should not be considered a comprehensive outline of all resources available to a front-end developer. The value of the book is tied up in a terse, focused, and timely curation of just enough categorical information so as not to overwhelm anyone on any one particular subject matter.
Announcing GVFS (Git Virtual File System)
https://blogs.msdn.microsoft.com/visualstudioalm/2017/02/03/announcing-gvfs-git-virtual-file-system/
Today, we’re introducing GVFS (Git Virtual File System), which virtualizes the file system beneath your repo and makes it appear as though all the files in your repo are present, but in reality only downloads a file the first time it is opened. GVFS also actively manages how much of the repo Git has to consider in operations like checkout and status, since any file that has not been hydrated can be safely ignored. And because we do this all at the file system level, your IDEs and build tools don’t need to change at all!
Building Zero protocol for fast, secure mobile connections
https://code.facebook.com/posts/608854979307125/building-zero-protocol-for-fast-secure-mobile-connections/
Over the past year, we’ve built and deployed Zero protocol to our mobile apps and load balancers. We’ve seen performance improvements that include a 41 percent reduction in connection latency and 2 percent reduction in total request time. We’ve learned several practical engineering lessons about the trade-offs associated with 0-RTT protocols, such as API design, security properties, and deployment, and have contributed some of our findings to TLS 1.3, which is now near maturity. We hope the lessons we share here are applicable to apps that will deploy TLS 1.3 in the future.
Why 2016 Was the Best Year Ever for Node.js
https://nodesource.com/blog/why-2016-was-the-best-year-ever-for-node-js-node-by-numbers-2016
Yes, that’s right, I’m going to argue that 2016 was our best year ever, and may go down as the most important period in the history of Node.js, backed by some hard numbers from this year’s Node by Numbers
JavaScript Will Finally Get Proper Asynchronous Programming
http://thenewstack.io/async-officially-coming-javascript-year/
The proposal to include async function in ECMAScript has reached stage four; that means it’s on track to be in the 2017 release of the standard. But what does that mean for JavaScript developers?
CQRS Explained - Node.js at Scale
https://blog.risingstack.com/cqrs-explained-node-js-at-scale/
CQRS is an architectural pattern, where the acronym stands for Command Query Responsibility Segregation. We can talk about CQRS when the data read operations are separated from the data write operations, and they happen on a different interface. In most of the CQRS systems, read and write operations use different data models, sometimes even different data stores. This kind of segregation makes it easier to scale, read and write operations and to control security - but adds extra complexity to your system.
Introducing Lottie
https://medium.com/airbnb-engineering/introducing-lottie-4ff4a0afac0e#.n5pgc22dj
Lottie is an iOS, Android, and React Native library that renders After Effects animations in real time, and allows native apps to use animations as easily as they use static assets.
Everything you need to know about HTTP security headers
https://blog.appcanary.com/2017/http-security-headers.html
This article explains what secure headers are and how to implement these headers in Rails, Django, Express.js, Go, Nginx, and Apache.
下一代 Web 应用模型 —— Progressive Web App
http://geek.csdn.net/news/detail/135595
2016年,Google提出了PWA,志在增强Web体验。可显著提高加载速度、可离线工作、可被添加至主屏、全屏执行、推送通知消息……等等这些特性可使Web应用渐进式地变成App,甚至与APP相匹敌。这一系列特性背后有哪些核心关键技术支撑,本文将为您一一分析,解开它的神秘面纱。
(More than) one million requests per second in Node.js
https://github.com/uWebSockets/uWebSockets/wiki/(More-than)-one-million-requests-per-second-in-Node.js
介绍用 uws 实现高性能的 http 服务。另附:A million requests per second with Python
CSS Grid – Table layout is back. Be there and be square
https://developers.google.com/web/updates/2017/01/css-grid
If you are familiar with Flexbox, Grid should feel familiar. Rachel Andrew maintains a great website dedicated to CSS Grid to help you get started. Grid is now available in Google Chrome. 另附:Grid by Example
Why I created junctions.js
http://jamesknelson.com/created-junctions-js/
Junctions is a new, composable alternative to react-router.
What happens when you use RxJS in React?
https://hackernoon.com/what-happens-when-you-use-rxjs-in-react-11ae5163fc0a#.jlru5uko6
The ReactiveX Observable model allows you to treat streams of asynchronous events with the same sort of simple, composable operations that you use for collections of data items like arrays. It frees you from tangled webs of callbacks, and thereby makes your code more readable and less prone to bugs.
Crash Course: UI Design
https://medium.com/hh-design/crash-course-ui-design-25d13ff60962#.75ndc967f
At their most simple forms, UX design is what makes an interface useful, and UI design is what makes an interface beautiful. For UI, this includes a blend of visual hierarchy and interface elements. To understand what separates a great interface from a good interface, one must understand the UI design is merely just one layer of the entire design process. Perhaps this is why people often confuse UX and UI. In the following few paragraphs, however, I hope to help you as the audience or reader understand where the differences lie in the context of the design process.
iOS即时通讯,从入门到“放弃”?
http://www.jianshu.com/p/2dbb360886a8
本文会用实例的方式,将iOS各种IM的方案都简单的实现一遍。并且提供一些选型、实现细节以及优化的建议。这位作者写了一系列即时通讯音视频开发相关的文章,对这个领域有兴趣的同学可以参考。
The most popular Front-End links of 2016
https://medium.com/statuscode/the-most-popular-front-end-links-of-2016-35d3142ac398#.y1pjcaqm5
热门文章精选
新鲜货
Open-sourcing Chrome on iOS!
https://blog.chromium.org/2017/01/open-sourcing-chrome-on-ios.html
Historically, the code for Chrome for iOS was kept separate from the rest of the Chromium project due to the additional complexity required for the platform. After years of careful refactoring, all of this code is rejoining Chromium and being moved into the open-source repository.
Chrome 近期会推出这个功能:Integrating Progressive Web Apps deeply into Android
Open-Sourcing Google Earth Enterprise
https://maps-apis.googleblog.com/2017/01/open-sourcing-google-earth-enterprise.html
We are excited to announce that we are open-sourcing Google Earth Enterprise (GEE), the enterprise product that allows developers to build and host their own private maps and 3D globes. With this release, GEE Fusion, GEE Server, and GEE Portable Server source code (all 470,000+ lines!) will be published on GitHub under the Apache2 license in March.
GitLab.com Database Incident
https://about.gitlab.com/2017/02/01/gitlab-dot-com-database-incident/
We had a serious incident with one of our databases. We lost six hours of database data (issues, merge requests, users, comments, snippets, etc.) for GitLab.com. Git/wiki repositories and self-hosted installations were not affected. Losing production data is unacceptable and in a few days we’ll publish a post on why this happened and a list of measures we will implement to prevent it happening again.
另附:GitLab Database Incident – Live Report 从Gitlab误删除数据库想到的
JS1k 2017
http://js1k.com/2017-magic/
Create some JavaScript program with a max size of 1k and make it do something cool. Submit it before March 2017 for fame and a chance of a prize!
Mithril 1.0 Released
http://mithril.js.org/
At 3 years old, Mithril has reached its 1.0 milestone. Mithril is a modern client-side Javascript framework for building Single Page Applications.
It’s small (< 8kb gzip), fast and provides routing and XHR utilities out of the box. Mithril is used by companies like Vimeo and Nike, and open source platforms like Lichess.
hyperapp
https://github.com/hyperapp/hyperapp
HyperApp is a 1kb functional JavaScript library for building modern UI applications.
NativeScript 2.5 is Now Available
https://www.nativescript.org/blog/nativescript-25-is-now-available
Service Mocker - Next generation frontend API mocking framework
https://github.com/service-mocker/service-mocker
Service Mocker is an API mocking framework for frontend developers. With the power of service workers, we can easily set up mocking services without any real servers. It sets developers free from intricate workflows, complex documentations and endless proxies from server to server.
spectacle
https://github.com/FormidableLabs/spectacle
ReactJS based Presentation Library
tectonic - A declerative REST data loader for react + redux
https://github.com/tonyhb/tectonic
Tectonic is a small library that makes loading REST API data a one-liner within your redux apps. You’ll write 80% less data loading code: no more action, reducer, normalizr, reselect boilerplate. Tectonic handles all actions, reducer data management, and prop injection for you &emdash; with one line. Plus you can swap out real data for fake data using a mock driver with one line. Overall, it’s fast to write and maintain, plus it’ll save your sanity.
Nachos UI Kit for React Native
https://avocode.com/nachos-ui/
Nachos UI is a React Native component library.
Jimp - The JavaScript Image Manipulation Program
https://github.com/oliver-moran/jimp
An image processing library written entirely in JavaScript for Node, with zero external or native dependencies.
jsmpeg
http://jsmpeg.com/
用纯 JS 实现的 mpeg 解码
injection-js
https://github.com/mgechev/injection-js
Dependency injection library for JavaScript and TypeScript in 6.6K. It is an extraction of the Angular’s dependency injection which means that it’s feature complete, fast, reliable and well tested.
Breakdance - a node.js library for converting HTML to markdown
http://breakdance.io/
Breakdance uses cheerio to parse HTML, and snapdragon for rendering, which provides comprehensive coverage of HTML 4 and 5 elements, and granular control over the entire conversion process in a way that is easy to understand, reason about, and customize.
Exploring ES2016 and ES2017
http://exploringjs.com/es2016-es2017/index.html
This book is about ECMAScript 2016 and ECMAScript 2017, new versions of JavaScript. It only covers what’s new in those versions.
Visual Studio Code 1.9
https://code.visualstudio.com/updates/v1_9
依旧是大量看起来很有用的更新
Element
http://element.eleme.io/#/zh-CN
VUE 的 UI 库
mJS: Restricted JavaScript engine
https://github.com/cesanta/mjs
mJS is designed for microcontrollers with limited resources.
vstest
https://github.com/Microsoft/vstest
Visual Studio Test Platform is the runner and engine that powers test explorer and vstest.console.
产品及其它
企鹅智库 - 2017必读报告:中国互联网未来5年趋势白皮书
http://tech.qq.com/a/20170111/002574.htm#p=1
了解下行业趋势,好帮助我们去储备面向未来的技术。
新时代的知识演绎者们
https://www.huxiu.com/article/179893.html
并非是不存在能够解决问题的知识,而是这些知识没有被很好的组织起来,形成更加实用、易于理解的形式。如果有一个专业的团队,帮助用户从各种资料中,找到答案,并加工成更易理解和使用的形式呢?可能每个人只需要花费20分钟以内的时间就可以解决自己的问题。所以关于知识类产品的一个机会是,在现在的时代背景下我们似乎缺少知识的“演绎者”。
开源如何影响程序员
http://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2650995350&idx=1&sn=466a315fd3c87763eb6076845733c1c3
Apple 核心系统高级工程师 Asta 谢(谢孟军)就《开源如何影响程序员》这一主题,结合自身经历、从开源中得到的自我提升,详细阐述了自己对开源的理解,如何在国内做开源,并成为 github 上 Go 语言领域中国排名第一,以及如何同国内外开源者一起参与开源的过程。
职场中脱颖而出的成长秘诀
https://mp.weixin.qq.com/s?__biz=MzA3NTYzODYzMg==&mid=2653578530&idx=1&sn=299b065ccc211d12f0f034744d1037f5
挺实在的经验:自我管理、培养自驱力、建立自己的不可替代性、好善乐施 & 知恩图报。
[译]Uncle Bob:如何成为一名优秀的软件架构师?
http://mp.weixin.qq.com/s?__biz=MzA5Nzc4OTA1Mw==&mid=2659598924&idx=1&sn=5e08adfa73d03b17d3d8e16d790a35ef
关于架构非常生动形象的一篇文章。一名软件架构师真正要做的重要决定都在数据库、Web服务器和框架之外。
年终总结 - 码农篇
http://mp.weixin.qq.com/s?__biz=MzA3MDA2MjE2OQ==&mid=2650096758&idx=1&sn=528fc29907c87f0b01b62b74bd3f433c
这是来自黑夜路人技术微信群里的年终总结,一起体味下码农的冷暖人生。