FEX 技术周刊 - 2020/01/06
业界会议
SEE Conf 2020 - 蚂蚁金服体验科技大会
https://seeconf.antfin.com/
https://mp.weixin.qq.com/s/JcyltMcC2tNm9yY6tvt09w
玉伯的主题演讲:体验科技与好的产品。欢迎围观:https://www.zhihu.com/question/363807174 期待演讲视频和相关文章。
深阅读
Good times create weak men
https://tonsky.me/blog/good-times-weak-men/
In Software Disenchantment we’ve seen how software has degraded in the past two decades. Recently Jonathan Blow gave a talk where he explained why it might be happening. In programming, we are developing abstractions at an alarming rate. When enough of those are stacked, it becomes impossible to figure out or control what’s going on down the stack. This is where my contribution begins: I believe I have found some pretty vivid examples of how the ladder of abstractions has started to fall and nobody can do anything about it now because we all are used to work only at the very tip of it.
Drawing In Code: Pencils, Pixels, Process
https://www.artnome.com/news/2019/12/29/drawing-in-code-pencils-pixels-process
We must expect great innovations to transform the entire technique of the arts, thereby affecting artistic invention itself and perhaps even bringing about an amazing change in our very notion of art.
The 2010s in Software Development
https://blog.pragmaticengineer.com/the-decade-in-review-in-software-development/
As I am doing a lookback on 2010-2020, here are the major changes I’ve observed on software engineering. If this decade proves anything, it is that technology keeps changing and evolving. But, there is still some stability: Java and JIRA. Let’s see if they will survive the next decade as well, and where the trends of 2020 will end up that time.
A WebAssembly Powered Augmented Reality Sudoku Solver
https://blog.scottlogic.com/2020/01/03/webassembly-sudoku-solver.html
The Christmas holidays are a great time for pursuing ‘pet’ projects and trying out new things. This past year I’ve been watching WebAssembly evolve and wanted to create a fun project that allowed me to put it to good use. Over the past couple of weeks I created an Augmented Reality Suduko solver: This project makes use of the WebAssembly build of OpenCV (a C++ computer vision library), Tensorflow (a machine learning library) and a solver written in Rust. It neatly demonstrates how WebAssembly allows you to write performance-critical web-based applications in a wide range of languages.
How To Use Correctly JavaScript Utility Libraries
https://dmitripavlutin.com/javascript-utility-libraries/
The big JavaScript bundle is a common performance problem in Frontend development. Nobody likes slow, heavy applications and looking at the loading spinner. An impact on the bundle size has the utility libraries: collections of functions implementing common tasks (finding uniq items of an array, formatting dates, etc). Examples of utility libraries in JavaScript are Lodash, Ramda, Date-fns, Math.js. Let’s discuss when it makes sense to use utility libraries. And importantly, how to integrate libraries to minimally affect the bundle size.
Scaling React Server-Side Rendering
https://arkwright.github.io/scaling-react-server-side-rendering.html
I had the opportunity to work on scaling a React rendering service, adapting a fixed hardware provision to deal with increasing load. Over the course of many months, incremental improvements were made to the system to enable it to cope with demand. I thought it might be useful to share the more interesting insights that I gained during this process.
The Power of Simplifying Large Components in React
https://medium.com/better-programming/the-power-of-simplifying-large-components-in-react-c0d15fa88f70
Simplification is an enhancement
Why Android Developers should pay attention to Flutter in 2020
https://blog.codemagic.io/why-android-developers-should-pay-attention-to-flutter-in-2020/
https://blog.codemagic.io/why-ios-devs-should-pay-attention-to-flutter-in-2020/
https://blog.codemagic.io/flutter-vs-ios-android-reactnative-xamarin/
Native Android has been in the market for a really long period of time. Also it is very stable and gives a great performance across various sizes of Android devices. So, why should you look at some cross-platform solution, like Flutter? Though native Android provides a satisfying performance, but it comes at a cost of huge amount of boilerplate code, which restricts the innovation and creativity of a developer. Let’s discuss it in more details.
了解什么是微前端
https://mp.weixin.qq.com/s/AeJrrvXGTOiIvOcxEQLHrQ
作为前端开发人员,这些年来你一直在开发单体应用,即使你已经知道这是一个不好的做法。您将代码划分为组件,使用 require 或 import 并将package.json中定义的npm包或已安装的子git仓库添加到项目中,但最终构建了一个整体。是时候改变它了。
llhttp是如何使Node.js性能翻倍的?
https://zhuanlan.zhihu.com/p/100660049
如果你关注 Node.js 社区,那么你一定记得 Node.js v12 一个非常重磅的功能就是,内核的 HTTP Parser 默认使用 llhttp,取代了老旧的 http-parser,性能提升了 156%。 但知其然也要知其所以然,llhttp 是如何做到这一点的呢?
小程序跨框架开发的探索与实践
https://aotu.io/notes/2020/01/02/gmtc/index.html
随着小程序开发的热度上升,小程序开发框架也层出不穷。但目前每个框架都会绑定一个专属 DSL,如类 React 或者类 Vue,在一个框架内,开发者无法根据团队技术栈自由选择 DSL,同时也无法共享框架本身的生态与工具。本次分享将为大家介绍 Taro 如何将各种语法的前端框架运行在小程序上,讨论一个框架支持多 DSL 的实现探索,使得开发者可以使用任意热门框架/语法/DSL 来编写小程序应用,同时复用相关生态。
Storybook Docs for new frameworks
https://medium.com/storybookjs/storybook-docs-for-new-frameworks-b1f6090ee0ea
Best practice docs for Vue, Angular, Web components, and Ember.
Uber Visualization Highlights: Displaying City Street Speed Clusters with SpeedsUp
https://eng.uber.com/visualization-city-speeds-machine-learning-speedsup/
Uber’s Data Visualization team builds software that enables us to better understand how cities move through dynamic visualizations. The Uber Engineering Blog periodically highlights visualizations that showcase how these technologies can turn aggregated data into actionable insights.
Dealing with links in Next.js
https://blog.logrocket.com/dealing-with-links-in-next-js/
In this article, I’m going to explain two of my techniques for isolating routing in your application. I use Next as an example, but they can be applied to pretty much all routing libraries: Use a custom Link component, Have all paths in a single file.
The Power of Elm in JavaScript
https://medium.com/javascript-in-plain-english/the-power-of-elm-in-javascript-816b127e4553
Since first learning of Elm, I’ve only heard good things. I’m convinced Elm could become the future of front-end development in the coming years(or maybe Reason?). Here are some blog posts in the Elm community that have particularly stuck out to me
What a Year of Learning and Teaching Accessibility Taught Me
https://www.24a11y.com/2019/what-a-year-of-learning-and-teaching-accessibility-taught-me/
Use HTML. Enhance with CSS. Leverage the power of JavaScript. And include your users in your design process as early as possible. And always look at your work through the lens of inclusion. This will take you far ahead. Then learn more, iterate, and improve. And don’t forget, we’re all just temporarily abled.
Format Your <input>
Content While Typing with Cleave.js
https://levelup.gitconnected.com/format-your-input-content-while-typing-with-cleave-js-b249f9686c9a
Automatically transform your input content in your Angular application.
Making the LinkedIn experimentation engine 20x faster https://engineering.linkedin.com/blog/2020/making-the-linkedin-experimentation-engine-20x-faster
At LinkedIn, we like to say that experimentation is in our blood because no production release at the company happens without experimentation; by “experimentation,” we typically mean “A/B testing.” The company relies on employees to make decisions by analyzing data. Experimentation is a data-driven foundation of the decision-making process, which helps with measuring the precise impact of every change and release, and evaluating whether expectations meet reality.
Rock it: A Cradle Story — An Arduino-powered Baby Crib Rocker
https://codeburst.io/rock-it-a-cradle-story-an-arduino-powered-baby-crib-rocker-c2edb79a3bd7
When a software developer becomes a parent, he/she doesn’t stop being a geek.
Build an 8-bit computer from scratch
https://eater.net/8bit
I built a programmable 8-bit computer from scratch on breadboards using only simple logic gates. I documented the whole project in a series of YouTube videos and on this web site. Watch this video for an introduction.
新鲜货
Popular articles of JavaScript 2019
https://javascriptweekly.com/issues/469
Dive into Deep Learning
https://d2l.ai/
An interactive deep learning book with code, math, and discussions, based on the NumPy interface.
IncludeOS - Run your application with zero overhead
https://www.includeos.org/
IncludeOS allows you to run your application in the cloud without an operating system. IncludeOS adds operating system functionality to your application allowing you to create performant, secure and resource efficient virtual machines. IncludeOS applications boot in tens of milliseconds and require only a few megabytes of disk and memory.
Godot Engine - Free and open source 2D and 3D game engine
https://godotengine.org/
Godot provides a huge set of common tools, so you can just focus on making your game without reinventing the wheel. Godot is completely free and open-source under the very permissive MIT license. No strings attached, no royalties, nothing. Your game is yours, down to the last line of engine code. 另附:Godot Engine - A decade in retrospective and future.
Apache Pulsar
https://pulsar.apache.org/
Apache Pulsar is an open-source distributed pub-sub messaging system originally created at Yahoo and now part of the Apache Software Foundation
A New Decade. Any Predictions?
https://news.ycombinator.com/item?id=21941278
2010: https://news.ycombinator.com/item?id=1025681
Rhasspy
https://rhasspy.readthedocs.io/en/latest/
Rhasspy (pronounced RAH-SPEE) is an open source, fully offline voice assistant toolkit for many languages that works well with Home Assistant, Hass.io, and Node-RED.
BBC Sound Effects - Research & Education Space
http://bbcsfx.acropolis.org.uk/
These 16,000 BBC Sound Effects are made available by the BBC in WAV format to download for use under the terms of the RemArc Licence. The Sound Effects are BBC copyright, but they may be used for personal, educational or research purposes, as detailed in the license.
设计
Why This UX Role Will Grow Fastest In 2020
https://uxmag.com/articles/why-this-ux-role-will-grow-fastest-in-2020
The rise in hiring conversational designers seems to be happening at a much faster clip than when companies started hiring internal UXers 10 years ago
5 Things To Stop Doing In Mobile App Design
https://www.smashingmagazine.com/2019/12/things-stop-doing-mobile-app-design/
Have you ever looked at the design techniques and elements you use to build mobile apps and evaluated whether or not they’re still useful or relevant? If you haven’t done this in a while (or ever), stop what you’re doing and read this. We’re going to look at the 5 things mobile app designers should stop doing so they can create more streamlined and positive user experiences.
Top software and hardware recommended by designers in 2019
https://www.uxpin.com/studio/blog/top-software-and-hardware-recommended-by-designers-in-2019/
The end of the year is a good time for summaries, recommendations, and plans for the future. You’ve probably spent some time using a lot of different types of tools – both software and hardware. Some of them might have made your life miserable, others might have become good candidates to your usual toolset. Some you’re throwing out (or replacing) next year, and with the others, you just can’t wait to make more magic.
2019腾讯科学WE大会背后的设计思考
https://cdc.tencent.com/2019/12/31/%e3%80%8c%e5%b0%8f%e5%ae%87%e5%ae%99%e3%80%8d%e7%9a%84%e5%ad%b5%e5%8c%96%e4%b9%8b%e8%b7%af-2019%e8%85%be%e8%ae%af%e7%a7%91%e5%ad%a6we%e5%a4%a7%e4%bc%9a%e8%83%8c%e5%90%8e%e7%9a%84%e8%ae%be/
Enterprise UX – Challenges and Solutions
https://www.koruux.com/blog/enterprise-ux-challenges-and-solutions/
What if you get the opportunity to design a product which will willingly, wholeheartedly be used by thousands of users, no questions asked? That’s Enterprise UX (eUX) for you. And as with all good things, there’s a catch here as well. These willing, wholehearted users are actually employees who have no choice but to use that very product designed by you. Thus with eUX, the challenge is not so much as gathering an audience; it’s more about impressing them even when impressing them isn’t really what you’re asked to do.
Don’t Underestimate The Value of Even the Most Common UX Deliverables
https://uxplanet.org/most-common-ux-deliverables-for-ux-designers-a2d53e4d5344
A UX designer works in different environments — from agile environments and lean startups where teams contribute with little documentation to consulting engagements for third-parties, or large companies and government entities with strict documentation obligations.
产品及其它
who are you trying to impress with your deadlines?
http://jatins.gitlab.io/me/why-deadline/
Obsessing over customers is important, but there is another thing a lot of companies obsess over internally - deadlines. And deadlines are good. “It gets done when it gets done” might be a great (and even recommended) strategy for 2 people working on an app but when you are a 200+ employee company, you need some sense of where things are; a rough idea of when your users will actually get to use the new fart app in their cars. But I’d argue that hard - set in stone - deadlines are bad and if you have those in your company you should probably go ahead and remove the “customer obsession” bullet from your leadership principles. Because believe it or not, your users don’t care about a missed sprint. Hard deadlines are not user first, they are management first.
Just Build the Product
https://davnicwil.com/just-build-the-product/
It’s the last day of the decade and I’m taking the opportunity to reflect on the most important lessons I’ve learned regarding work. I want to talk about the most important of them all. The one I would emphasise to anyone coming into a career even vaguely related to software today, if I could only choose one. Just build the product.
阿里达摩院2020十大科技趋势发布:模块化让造芯像搭积木一样简单
https://mp.weixin.qq.com/s?__biz=MzIzNjc1NzUzMw==&mid=2247535734&idx=1&sn=330b1414671543c528f22cbb09e89a19
“扫地僧”如何看待2020科技趋势?刚刚,阿里达摩院2020十大科技趋势发布,涵盖人工智能、芯片制造、量子计算、工业互联网、机器协作、区块链、隐私保护、云计算等多个领域,勾勒新一年科技走向。
B站正在做一件前无古人的事情
https://mp.weixin.qq.com/s/MHDTuiFFem710YlN74GEUA
从2019年下半年起,B站就在做一件前无古人的事情:既要大幅度扩张用户基数,又要保持二次元和Z世代社区的调性。它希望在未来几年内,将MAU(月活用户)扩张到2亿以上,将营业收入扩张到100亿人民币以上;与此同时,它仍需保持“中国最佳”的内容社区调性,以及活跃而忠诚的核心用户群体。上述目标看上去自相矛盾。事实上,以前有很多人尝试过,可惜都不太成功。“用户基数”和“垂直调性”似乎是天然互斥的——你的用户基数越大,用户调性就越是庞杂,就越无法聚焦于垂直品类,也越难以维持良好的社区调性。另附:对话bilibili陈睿:在中国太少企业把用户当一个平等的人。
对数据可视化有兴趣的可以阅读由 AntV 带来的 墨者修齐 2020-01-03·火星地图、NBA Spelling Bee、实时网络威胁世界地图可视化、一带一路故事地图讲述中国文化