FEX 技术周刊 - 2017/09/11
微信搜索『FEX』关注我们的公众号,及时获得最新资讯。
深阅读
Announcing Yarn 1.0
https://code.facebook.com/posts/274518539716230
Yarn is now responsible for nearly 3 billion package downloads per month. Reduced install times are a big draw for many users. Twitter, as well as Microsoft on outlook.com, have seen improvements of 5x in install times. Expo, Kenzan, and Sentry have reported performance and stability improvements so they can ship code faster. Here at Facebook, Yarn has been adopted across many codebases including the main Facebook app and website, Instagram, Oculus, and WhatsApp. Yarn supports hundreds of thousands of package installs on our systems every day. It was designed to scale even when a project has hundreds or thousands of direct or transitive dependencies. 附:It’s OK to not use Yarn
DOM Attributes in React 16
https://facebook.github.io/react/blog/2017/09/08/dom-attributes-in-react-16.html
In the past, React used to ignore unknown DOM attributes. If you wrote JSX with an attribute that React doesn’t recognize, React would just skip it. In React 16, we are making a change. Now, any unknown attributes will end up in the DOM.
Nginx Unit
https://www.nginx.com/products/nginx-unit/
NGINX Unit is a new, lightweight, open source application server built to meet the demands of today’s dynamic and distributed applications. Deploy configuration changes with no service disruptions. Run code in multiple languages. Build the foundation of your service mesh.
Micro Frontends
https://micro-frontends.org/
Techniques, strategies and recipes for building a modern web app with multiple teams using different JavaScript frameworks. The idea behind Micro Frontends is to think about a website or web app as a composition of features which are owned by independent teams. Each team has a distinct area of business or mission it cares about and specialises in. A team is cross functional and develops its features end-to-end, from database to user interface.
Introducing Fastify, a Speedy Node.js Web Framework
https://thenewstack.io/introducing-fastify-speedy-node-js-web-framework/
Fastify is a new web framework inspired by Hapi, Restify and Express. Fastify is built as a general-purpose web framework, but it shines when building extremely fast HTTP APIs that use JSON as the data format. These are extremely common in both web and mobile software architectures, so Fastify could improve the throughput of the majority of applications.
[译]Node之父Ryan Dahl访谈录
https://mp.weixin.qq.com/s/GjJHWv84kkEINZny00D_4Q
Node也许不是构建大型服务的最佳选择
石墨表格之 Web Worker 应用实战
https://zhuanlan.zhihu.com/p/29165800
Web Worker 使得网页中进行多线程编程成为可能。当主线程在处理界面事件时,worker 可以在后台运行,帮你处理大量的数据计算,当计算完成,将计算结果返回给主线程,由主线程更新 DOM 元素。
监控平台前端SDK开发实践
https://tech.meituan.com/hunt-sdk-practice.html
本文主要介绍点餐终端技术组监控平台HUNT的前端SDK的实践经验
Let’s Build a Simple Database
https://cstack.github.io/db_tutorial/
从零开始实现一个类似 sqlite 的数据库
A 6-Step-Guide for Contributing to the Node.js Core
https://blog.risingstack.com/contributing-to-the-node-js-core/
The aim of this article is to help you land your first commit to the Node.js core! Contributing to Node.js can be done in a lot of different ways. You can start contributing to one of the working groups (like the Website, Diagnostics or Post-mortem group) or start teaching at Nodeschools, so your peers can learn from you. You can also start working directly on the Node.js Core, whether you do it by answering questions, or actually adding code to the project.
Diving deep into JavaScript array – evolution & performance
http://voidcanvas.com/javascript-array-evolution-performance/
The article is more about memory representation, optimization, behavior differences over syntaxes, performance and the recent evolution. Introduction of typed array in JavaScript is a great step. Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array etc are typed array views, who are in native byte order.
Optimizing web servers for high throughput and low latency
https://blogs.dropbox.com/tech/2017/09/optimizing-web-servers-for-high-throughput-and-low-latency/
The Dropbox edge network is an nginx-based proxy tier designed to handle both latency-sensitive metadata transactions and high-throughput data transfers. In a system that is handling tens of gigabits per second while simultaneously processing tens of thousands latency-sensitive transactions, there are efficiency/performance optimizations throughout the proxy stack, from drivers and interrupts, through TCP/IP and kernel, to library, and application level tunings.
Rapid release at massive scale
https://code.facebook.com/posts/270314900139291/rapid-release-at-massive-scale/
We decided to move facebook.com to a quasi-continuous “push from master” system in April 2016. Over the next year, we gradually rolled it out, first to 50 percent of employees, then from 0.1 percent to 1 percent to 10 percent of production web traffic. Each of these progressions allowed us to test the ability of our tools and processes to handle the increased push frequency and get real-world signal. Our main goal was to make sure that the new system made people’s experience better — or at the very least, didn’t make it worse. After almost exactly a year of planning and development, over the course of three days in April 2017 we enabled 100 percent of our production web servers to run code deployed directly from master.
LogDevice: a distributed data store for logs
https://code.facebook.com/posts/357056558062811/logdevice-a-distributed-data-store-for-logs/
The relaxed data model of LogDevice allowed us to reach more optimal points in the trade-off space of availability, durability, and performance than what would be possible for a distributed file system strictly adhering to the POSIX semantics, or for a log store built on top of such a file system.
The State of the Web - A guide to impactful performance improvements
https://medium.com/@fox/talk-the-state-of-the-web-3e12f8e413b3
Only 46% of 7.4 billion people on this planet have access to the Internet. The average network speed caps at unimpressive 7Mb/s. More importantly, 93% of Internet users are going online through mobile devices — it becomes inexcusable to not cater to handhelds. Our websites aren’t in a perfect shape either — the average site is the size of original Doom game (approx. 3 MB).
Rise of Functions as a Service: How PHP Set the “Serverless” Stage 20 Years Ago
https://medium.com/@keithwhor/rise-of-functions-as-a-service-how-php-set-the-serverless-stage-20-years-ago-ccb560c5f422
With all of this innovation, it’s worthwhile to take a step down memory lane and look at how an unlikely candidate, PHP, brought us all the way to modern “serverless” architecture.
How is ARCore better than ARKit?
https://medium.com/super-ventures-blog/how-is-arcore-better-than-arkit-5223e6b3e79d
I think as a technical solution they are very very close in capability. Effectively indistinguishable to users when it comes to the user experiences you can build today. ARKit has some tech advantages around hw/sw integration and more reliable tracking. ARCore has some advantages around mapping and more reliable recovery. Both of these advantages are mostly only noticeable by Computer Vision engineers who know what to look for. 附:四分钟内明白 ARCore + 上手
Every Programmer Should Know
https://github.com/mr-mig/every-programmer-should-know
A collection of (mostly) technical things every software developer should know. You don’t need to know all of that by heart to be a programmer. But knowing the stuff will help you become better!
A Guide To Virtual Reality For Web Developers
https://www.smashingmagazine.com/2017/09/guide-virtual-reality-web-developers/
Recently, there has been a proliferation of virtual reality (VR) web browsers and VR capabilities added to traditional browsers. In this article, we’ll look at the state of browsers in VR and the state of VR on the web via the WebVR APIs.
Working with Schemas in WordPress
https://css-tricks.com/working-with-schemas-wordpress/
If you’re unfamiliar with schemas, they are HTML attributes that help search engines understand the content structure and know how to display it correctly in search engine results. We’re going to dig into the concept of schemas a little more in this post and then walk through a real-life application of how to use them in a WordPress environment.
Flat UI Elements Attract Less Attention and Cause Uncertainty
https://www.nngroup.com/articles/flat-ui-less-attention-cause-uncertainty/
Flat interfaces often use weak signifiers. In an eyetracking experiment comparing different kinds of clickability clues, UIs with weak signifiers required more user effort than strong ones.
新鲜货
The React license for founders and CTOs
https://medium.com/@ji/the-react-license-for-founders-and-ctos-b38d2538f3e5
I worked at Facebook several years ago during some influential events, including a major patent lawsuit and the open-source release of React. To my knowledge, Facebook has never proactively sued anyone for infringing its patents. I’ve heard some concerns that the BSD+Patents license might make companies using React less attractive as acquisition targets, but most of the top tech acquirers are already using React and other Facebook open source in some way.
New in Chrome 61
https://developers.google.com/web/updates/2017/09/nic61
JavaScript modules, navigator.share, WebUSB API
The Incredible Growth of Python
https://stackoverflow.blog/2017/09/06/incredible-growth-python/?cb=1
In this post, we’ll explore the extraordinary growth of the Python programming language in the last five years, as seen by Stack Overflow traffic within high-income countries. The term “fastest-growing” can be hard to define precisely, but we make the case that Python has a solid claim to being the fastest-growing major programming language.
General availability of App Service on Linux and Web App for Containers
https://azure.microsoft.com/en-us/blog/general-availability-of-app-service-on-linux-and-web-app-for-containers/
Azure App Service is now generally available on Linux, including its Web App for Containers capability. With this, we now offer built-in image support for ASP.NET Core, Node.js, PHP and Ruby on Linux, as well as provide developers an option to bring their own Docker formatted container images supporting Java, Python, Go and more.
React-PDF
https://github.com/wojtekmaj/react-pdf
Easily display PDF files in your React application.
PDFXKit - A drop-in replacement for PDFKit
https://pspdfkit.com/blog/2017/introducing-pdfxkit/
We are open sourcing PDFXKit, a drop-in replacement for Apple’s PDFKit that uses our industry-proven PSPDFKit SDK under the hood. Our frameworks on the other hand go much further. With PSPDFKit, you get a drop-in solution with a superior feature set, far greater customization options, and consistent high-fidelity rendering on all major platforms.
React Idle
https://github.com/ReactTraining/react-idle
When the user is idle you can do things like preload some code-split bundles, download images that haven’t been scrolled to, etc. Also useful to automatically log them out of a sensitive website.
Lozad.js
https://github.com/ApoorvSaxena/lozad.js
Highly performant, light ~0.5kb and configurable lazy loader in pure JS with no dependencies for images, iframes and more, using IntersectionObserver API
worker-nodes
https://github.com/allegro/node-worker-nodes
A node.js library to run cpu-intensive tasks in a separate processes and to not block the event loop.
Security.txt
https://github.com/EdOverflow/security-txt
Security.txt is a “standard” which allows websites to define security policies. This “standard” sets clear guidelines for security researchers on how to report security issues, and allows bug bounty programs to define a scope. Security.txt is the equivalent of robots.txt, but for security issues.
innerself
https://github.com/stasm/innerself
A tiny view + state management solution using innerHTML.
AssemblyScript
https://github.com/AssemblyScript/assemblyscript
AssemblyScript defines a subset of TypeScript that it compiles to WebAssembly.
JavaScript Studio publicly available
https://medium.com/javascript-studio/javascript-studio-publicly-available-28522e325037
分析项目错误的平台,不过需要把代码都上传上去
What is NextQL
https://codeburst.io/what-is-nextql-5ca4193795ea
NextQL is a JSON query language for APIs and an extensible runtime for fulfilling those queries. It equivalent with Facebook’s GraphQL but much simpler. There are a lot of topics about GraphQL and GraphQL vs REST. I’m not going say it again. In short, FB’s GraphQL or Netflix’s Falcor or my NextQL or REST serve a same purpose. It is a tool for client query and manipulate data efficiently.
产品及其它
我研究了微信的121处离线交互逻辑
http://www.yixieshi.com/93707.html
在这整个过程中,作为一枚产品狗,我得到了如下的一些启发,且这些信息可以应用到我的工作中,希望也可以对你有帮助:对于成本控制的意识,应该纳入产品方案中去,也许我们做不到像微信那么极致,但是有意识的往这方面考虑,也许会有更好的产品方案; 对于核心功能花多大精力去优化,都不为过,因为这才是我们安身立命的根本; 不要一味追求逻辑正确,可能有些时候逻辑合适才是更重要的。
一个开发者就这样离开了
https://mp.weixin.qq.com/s?__biz=MzA4NTQwNDcyMA==&mid=2650663385&idx=1&sn=a09d436ea95f5437e7a1bf7c4dca3cf6
WePhone (一款国际网络电话 App)的开发者苏享茂被其前妻翟欣欣威胁,被索赔 1000 万,最后被逼无奈,选择自杀。好不值哦,默哀…
Swift 之父 Chris Lattner 访谈录
https://mp.weixin.qq.com/s?__biz=MjM5NTIyNTUyMQ==&mid=2709545508&idx=1&sn=53836f7ceef0a5564e0346377a20ac21
Chris Lattner 是谁?Xcode 的编译器 LLVM 背后有怎样的故事?Swift 诞生的前世今生,封闭的苹果为何要拥抱开源?说好的 ABI 稳定性何时能推出?
智慧教育产业成为新风口,唯不忘初心者方得始终
https://mp.weixin.qq.com/s?__biz=MjM5NzY2OTE2MQ==&mid=2652217080&idx=1&sn=a1749b5f0e116e9c7ff64c399a89b060
随着市场规模不断扩大,不仅有政策号召为教育领域步入新时代指明了发展方向,以OKAY智慧教育为代表的智慧教育产业已经成为了值得行业借鉴的一个标杆,作为一个政策影响和导向起到决定性作用的领域,协助完成教育信息化或许才是企业拥有更大想象空间的关键。而正如教育仍需回归本质,只有在发展中不忘初心者,方能做到有始有终。
阿里年会马云演讲全文:可以失去一切,不能失去理想
http://www.cnbeta.com/articles/tech/649883.htm
阿里巴巴坚持18年的是阿里的理想主义,他最担心的就是员工看到现在拥有的一切,就失去了理想。如果一个组织失去理想,每天思考的就是赚钱,那就变成了赚钱的机器。“这个世界上永远有公司比阿里更赚钱,但需要知道自己有什么,要什么。阿里巴巴可以失去一切,但不能失去理想主义。” 附视频:http://www.iqiyi.com/w_19rv5uww45.html
– THE END –