FEX 技术周刊 - 2018/02/12
微信搜索『FEX』关注我们的公众号,及时获得最新资讯。
深阅读
Why Developers Love Node.js & what’s their main issue with it?
https://blog.risingstack.com/why-developers-love-node-js-2018-survey/
Fast development, great performance & the easiness of Node.js makes it a favorite. Node.js is Used Mainly for Developing API’s, Backends/Servers & WebApps. Most Node.js Developers Face Performance & Security Problems in Production. Security is the most underexplained topic for Node.js Developers.
An Overview of JavaScript Testing in 2018
https://medium.com/welldone-software/an-overview-of-javascript-testing-in-2018-f68950900bc3
TL;DR; Use Jest for unit and integration tests and TestCafe for UI tests.
JavaScript’s a mess – and that’s a good thing
http://2ality.com/2018/02/js-backward-compatibility.html
JavaScript never removes old features – new versions are always backward compatible. I wish we could clean it up, but staying compatible has too many benefits, as I’ll explain in this blog post.
Vue on 2018 — Interview with Evan You, author of the Vue.js framework
https://blog.hackages.io/https-blog-hackages-io-evanyoubhack2017-cc5559806157
Will it continue its impressive flight to the top in 2018? Is Vue going to overtake React and Angular? Wondering if you should switch to Vue.js?
Workers at Your Service
https://webkit.org/blog/8090/workers-at-your-service/
另附:Release Notes for Safari Technology Preview 49
Modern CSS Explained For Dinosaurs
https://medium.com/actualize-network/modern-css-explained-for-dinosaurs-5226febe3525
The goal of this article is to provide a historical context of how CSS approaches and tooling have evolved to what they are today in 2018. By understanding this history, it will be easier to understand each approach and how to use them to your benefit. Let’s get started!
另附:Using Media Queries For Responsive Design In 2018
做煎饼果子的N种方式——From Sequential to Reactive
https://mp.weixin.qq.com/s?__biz=MzAxNDEwNjk5OQ==&mid=2650401119&idx=1&sn=47867810ce1ccfe2a7637d5805954f90
以煎饼果子为例子介绍编程模式是如何一步一步地从传统的方式,变成Reactive 化的方式。通过Reactive 的方式,我们可以方便的实现服务编排,有了服务编排之后,我们可以做更多的事情,服务将会是更加智能化的,而非一成不变,提升了客户体验、资源利用率,并降低了资源的浪费。
有货移动Web端性能优化探索实践
https://mp.weixin.qq.com/s?__biz=MzIwNjQwMzUwMQ==&mid=2247485780&idx=1&sn=849fb035a0ed4d9b94e00210b72d24f7
在移动互联网的时代里,对于一个 web 站点来说,移动端的用户体验尤为重要。现代 web 站点的设计和开发都是以移动优先作为第一原则,我们也专门为了移动端的 web 站点做了相应的优化和提升。而网页的打开速度和页面的流畅度,对于用户是否长时间访问至关重要。我们在移动端的站点通过一系列的方法,最终为了快速打开页面展示网页内容,触达用户,同时能流畅的浏览网页。
[译]从业近20年,我对于软件架构这件事的一些思考
https://mp.weixin.qq.com/s?__biz=MzIwMzg1ODcwMw==&mid=2247487435&idx=1&sn=e44deef950d293de5a511c5dca13a8b1
在过度设计和毫无设计之间,我们应该把注意力放在对软件系统有重大影响的决策和权衡上。好的架构师应该是团队的活跃分子,不仅能够进行代码协作,还能为团队提供技术指导。软件架构中的沟通环节极具挑战性。C4 模型对软件架构中的沟通环节进行了结构化,从一个上下文图表开始,再逐步深入到系统的各个技术层面。实际上,可以多花一些时间实现好的架构,好的架构能够带来敏捷。
In web design, everything easy is hard again
https://frankchimero.com/writing/everything-easy-is-hard-again/
We enjoyed the work, but were utterly confused and overwhelmed by the rapidly increasing complexity of it all. What the hell happened?
My Accessibility Journey: What I’ve Learned So Far
http://alistapart.com/article/my-accessibility-journey-what-ive-learned-so-far
Making accessible sites forces you to engage with all of these variables—and pushes you, in the process, to do a great job as a developer. For me, making accessible sites means making fast, resilient sites with great UX that are fun and easy to use even in conditions that aren’t ideal.
Designing Windows 95’s User Interface
https://socket3.wordpress.com/2018/02/03/designing-windows-95s-user-interface/
The development of the user interface for a large commercial software product like Microsoft® Windows 95 involves many people, broad design goals, and an aggressive work schedule. This design briefing describes how the usability engineering principles of iterative design and problem tracking were successfully applied to make the development of the UI more manageable. Specific design problems and their solutions are also discussed.
Automatic visual diffing with Puppeteer
https://meowni.ca/posts/2017-puppeteer-tests/
I did a little song-and-dance that sets up Puppeteer* , takes screenshots of your app (like, all the routes you care about), and then compares them to the “golden” ones. If they match, your test passes! Yes, it only works on Chrome.
The Kubernetes Effect
https://www.infoq.com/articles/kubernetes-effect
Designing for, implementing and running applications on Kubernetes gives you the freedom to move your applications between the different cloud providers, kubernetes distributions and service providers. It gives you the opportunity to find Kubernetes certified developers to kickoff a project and support personnel to continue running it afterward. It is not the VM, it is not the JVM, it is Kubernetes that is the new application portability layer. It is the common denominator among everything and everybody.
另附:阮一峰老师的 Docker 入门教程.
Language Framework Popularity: A Look at Go
https://redmonk.com/fryan/2018/02/07/language-framework-popularity-a-look-at-go/
Gin and Beego rule the roost for Go based web application frameworks, go-kit and micro are the most popular microservices toolkits. The dependence on single contributors is a concern for several frameworks.
Migrating to Python 3 with pleasure
https://github.com/arogozhnikov/python3_with_pleasure
Python ecosystem co-exists in Python 2 and Python 3, and Python 2 is still used among data scientists. By the end of 2019 the scientific stack will stop supporting Python2. As for numpy, after 2018 any new feature releases will only support Python3. To make the transition less frustrating, I’ve collected a bunch of Python 3 features that you may find useful.
The Best UX is No User Interface at All
https://css-tricks.com/best-ux-no-user-interface/
But as a user, one thought has been recurring for me during the past few years: the best user experience is really no user interface at all. Even a perfect UI would be less than ideal. The ideal is to have no middleman at all. No translation layer. Historically speaking, this hasn’t been possible because we can’t “speak” to computers. Until now. Natural-language processing (NLP) is the field of computing that deals with language interaction between humans and machines.
AVA: The Art and Science of Image Discovery at Netflix
https://medium.com/netflix-techblog/ava-the-art-and-science-of-image-discovery-at-netflix-a442f163af6
As our Original content slate continues to expand, our technical experts are tasked with finding new ways to scale our resources and alleviate our creatives from the tedious and ever-increasing demands of digital merchandising. One of the ways in which we do this is by harvesting static image frames directly from our source videos to provide a more flexible source of raw artwork.
The Instant Motion Tracking Behind Motion Stills AR
http://research.googleblog.com/2018/02/the-instant-motion-tracking-behind.html
We are excited to announce the new Augmented Reality (AR) mode in Motion Stills for Android. With the new AR mode, a user simply touches the viewfinder to place fun, virtual 3D objects on static or moving horizontal surfaces (e.g. tables, floors, or hands), allowing them to seamlessly interact with a dynamic real-world environment. You can also record and share the clips as GIFs and videos.
新鲜货
Mozilla announces an open gateway for the internet of things
https://techcrunch.com/2018/02/06/mozilla-announces-an-open-framework-for-the-internet-of-things/
Mozilla just announced that anybody can now create an open gateway to control the internet of things. The organization also confirmed that it is still working on a set of frameworks and open standards so that we don’t end up with an internet of things controlled by big tech companies.
另附:Forging Better Tools for the Web.
Fast-forwarding media support on the Web
https://www.w3.org/blog/2018/02/fast-forwarding-media-support-on-the-web/
Media Source Extensions (MSE) and Encrypted Media Extensions (EME), published as W3C Recommendations in 2016 and 2017, added the missing blocks to address video on demand (VoD) requirements on the Web, making it possible to implement adaptive streaming mechanisms and to control playback of encrypted content across browsers.
另附:First Public Working Draft
Eloquent JavaScript - 3rd edition
https://eloquentjavascript.net/3rd_edition/
This is a book about JavaScript, programming, and the wonders of the digital.
JavaScript in the Internet of Things: JerryScript and the Fitbit Ionic
https://js.foundation/blog/2018/02/07/javascript-internet-things-jerryscript-fitbit-ionic
With the continued increase of adoption of open source technologies, JavaScript is now making a name for itself in the world of IoT. Recently, Fitbit introduced its newest smartwatch, Fitbit Ionic™, which is the first production device to ship with the JS Foundation project, JerryScript, since the Pebble. JerryScript is a lightweight JavaScript engine built to power the Internet of Things. It’s capable of running on microcontrollers with less than 64KB of RAM, making it ideal for compact smart devices. It supports on-device compilation and execution for very resource-constrained devices.
Open Design: Freeware tools for Designers
https://uxplanet.org/open-design-freeware-tools-for-designers-f7bdde99f2e0
Free and Open-Source Software for Designers & Creative People
Latest CSS Animations 2017
http://codecondo.com/latest-css-animations-2017/
In this article, we are going to take a look at some of the latest CSS animations that have been released in the last 3 months of 2017.
Announcing CodeSandbox 2.5
https://hackernoon.com/announcing-codesandbox-2-5-be767d15ffd
CodeSandbox is an online editor that helps you create web applications, from prototype to deployment.This update is packed with new features, I believe this is the biggest update to date, by far. And the best part is that many contributors helped with this update!
Introducing Rekit Studio: a real IDE for React and Redux development
https://medium.com/@nate_wang/introducing-rekit-studio-a-real-ide-for-react-and-redux-development-baf0c99cb542
Rekit Studio, a complete IDE for React, Redux and React Router development! Though it’s maybe new to some of you, it has helped us build complicated web apps for more than one year.
Web Assembly Studio
https://webassembly.studio/
Learn, Teach, Work and Play in the Web Assembly Studio
Run Angular CLI repos directly in your browser
https://blog.angular.io/run-angular-cli-repos-directly-in-your-browser-41332fd80901
We created StackBlitz, a lightning fast online IDE that allows you to live edit Angular CLI projects in-browser. It also now powers all of the official Angular.io documentation examples! Wouldn’t it be great if you could instantly run any Angular CLI project on Github directly inside StackBlitz by simply changing the URL?
CanJS
https://github.com/canjs/canjs
CanJS is an evolving and improving set of client side JavaScript architectural libraries that balances innovation and stability. It targets experienced developers building complex applications with long futures ahead of them. CanJS is an evolving and improving set of client-side JavaScript architectural libraries that balances innovation and stability. It targets experienced developers building complex applications with long futures ahead of them.
附:CanJS 4.0: A Suite of Frontend Architecture Libraries
Proton
https://github.com/a-jie/Proton
Proton is a lightweight and powerful javascript particle engine. With it you can easily create countless cool effects.
npm rank
https://gist.github.com/anvaka/8e8fa57c7ee1350e3491
This gist is updated daily via cron job and lists stats for npm packages: Top 1,000 most depended-upon packages; Top 1,000 packages with largest number of dependencies; Top 1,000 packages with highest PageRank score.
Announcing Formik 0.11.0
https://medium.com/@jaredpalmer/announcing-formik-0-11-0-78e55666fffa
Build forms (with nested state and arrays) in React, without tears.
Next.js 5: Universal Webpack, CSS Imports, Plugins and Zones
https://zeit.co/blog/next5
With every new release we are committed to retaining backwards compatibility, offering simple upgrade paths and only making API changes when absolutely necessary. Next.js 5.0 is no exception. Under the hood, however, Next.js has undergone a radical transformation to enable powerful new use cases and extensibility. We started by making Next.js share a universal Webpack pipeline for both server and client code.
Font-Awesome - Version 5
https://github.com/FortAwesome/Font-Awesome
the iconic SVG, font, and CSS framework.
Automerge
https://github.com/automerge/automerge
A JSON-like data structure that can be modified concurrently by different users, and merged again automatically.
Winamp2-js
https://github.com/captbaritone/winamp2-js
A reimplementation of Winamp 2.9 in HTML5 and JavaScript.
Perspective
https://github.com/jpmorganchase/perspective
A streaming data visualization engine for Javascript, Perspective makes it simple to build real-time & user configurable analytics entirely in the browser.
fbs - Create cross-platform desktop apps in minutes, not months
https://github.com/mherrmann/fbs
In recent years, Electron has seen a lot of interest as a technology for creating cross-platform desktop apps. The problem is, it is very resource intensive and its performance is not good enough for many use cases. An alternative to Electron is Qt. It has been around for many more years and can be much faster than Electron. Qt is written in C++, but bindings are available for other languages. A popular choice for Python is PyQt. This project addresses the above problems for applications written with PyQt.
Nuklear - A single-header ANSI C gui library
https://github.com/vurtun/nuklear
This is a minimal state immediate mode graphical user interface toolkit written in ANSI C and licensed under public domain. It was designed as a simple embeddable user interface for application and does not have any dependencies, a default render backend or OS window and input handling but instead provides a very modular library approach by using simple input state for input and draw commands describing primitive shapes as output. So instead of providing a layered library that tries to abstract over a number of platform and render backends it only focuses on the actual UI.
LCUI
https://github.com/lc-soft/LCUI
A small C library for building user interfaces with C, XML and CSS.
产品及其他
Google 硬件业务的艰难救赎
https://www.leiphone.com/news/201802/RxbUy7FevM3K752n.html
Google 正靠 Rick Osterloh 重写其硬件战略,核心目标是:把 Google Assistant 用于人们生活的方方面面。作为 Google 硬件业务的总负责人,Rick Osterloh 不仅要面临硬件经验不足的问题,还要对抗 Google 根深蒂固的【反硬件基因】。
写在开源运动 20 周年
https://tonghuix.io/2018/02/open-source-20-anniversary/
1998 年的 2 月 5 日,一场小型聚会正在美国加州的 VA 研究中心举行,与会的人包括了 Eric Raymond、Larry Augustin 等人还有通过电话参与的 Jon “maddog” Hall。正是在这场会上,大家同意了 Christine Peterson 女士提出的用“开放源代码”(Open Source)一词来替代容易在英语人士中引起歧义的“自由软件”(Free Software)一词,而表达的是同样的软件和意思,却更方便理解更容易获取更多支持。从那一天开始,“开源”正式诞生,而今年二月正是开源运动发起二十周年!
用户体验是玄学吗?
https://mp.weixin.qq.com/s?__biz=MzI3MTQ2NzgwMw==&mid=2247487038&idx=1&sn=6b7d648630481f3fa8db7e6ccde602ab
一个用户体验相关的综述:UI设计师的基本技能是精确的信息视觉传达,不是视觉炫酷的界面!UI设计师的基本技能是精确的信息视觉传达,不是视觉炫酷的界面!UI设计师的基本技能是精确的信息视觉传达,不是视觉炫酷的界面!
傅盛2018 - 凡杀不死我的,必使我更强大
https://mp.weixin.qq.com/s?__biz=MjM5NjgzMzkwMQ==&mid=2653646477&idx=1&sn=a5d8713ae95aa4da05659ce9ebbc3bcf
公司也是一个独立的生命体。它自己会成长,会进化,我们只是它中间的一层哺育者,而已。我们一起参与过它的创建,已非常幸运。就像一个孩子,你把他生下来,他的每一个细胞,都由你,分裂而来,但有一天,他会和你不一样,他也会有他自己的独特性。当我真正想清楚这个问题时,更加不在意外界的质疑了。太多人没有深度思考的能力,常常会把最外面的一层——收入做成公司的本质;或者把第二层——业务做成公司的本质。进化中的猎豹基因:积极进取、彪悍执行、突破自我;反脆弱、充满好奇、理性客观。
另附:张一鸣-不甘平庸的年轻人,全都有同一个特质:延迟满足感