FEX 技术周刊 - 2020/04/20
2020.04.20 - Azure：世界的电脑
Microsoft Online Tech Forum
Microsoft Online Tech Forum 微软在线技术峰会是一场面向技术专业人群与生态合作伙伴的前沿科技交流大会。围绕“数字化转型加速度”主题，以微软自身技术发展和数字化转型实践为引，从云，生产力、商业应用及数字化转型实践层面助力企业及个人提升自身技术实力，加速数字化转型，成就智能未来。强烈推荐两个主题演讲：炉边对谈及技术愿景解读、微软 Azure：世界的电脑。对 Low Code 感兴趣的同学可以关注 Power Platform。
Refactoring: This class is too large
An example of refactoring from a real (flawed) code base. In this article I walk through a set of refactorings from a real code base. This is not intended to demonstrate perfection, but it does represent reality.
Reusable Code: The Good, the Bad, and the Ugly
The mythical “reusable code” idea has existed for decades. It showed up shortly after the first lines of code were written. We preach re-usability and sometimes strive for it but it rarely becomes a reality. I’ve seen various levels of success with this over the years. Everything from “we have a reusable library that 75% of us use” to “we have shared code libraries here, but never use them in your projects”. A recent discussion led me to think about this. Why don’t more software development organizations have shared code libraries?
前端生产方式：过去 10 年回顾和未来 10 年展望
在写这篇文章之前，我一直在思考该用什么的方式能讲清楚前端为什么要向智能化方向切换的理由，真的反复思考很久，后来决定还是以我做前端的过去 10 年的所见所闻来做个解答吧，这样让大家也都更有些体感。
几十年来我都在用面向对象的语言编程。我用过的第一个面向对象的语言是 C++，后来是 Smalltalk，最后是 .NET 和 Java。我曾经对使用继承、封装和多态充满热情。它们是范式的三大支柱。我渴望实现重用之美，并在这个令人兴奋的新天地中享受前辈们积累的智慧。想到将现实世界的一切映射到类中，使得整个世界都可以得到整齐的规划，我无法抑制自己的兴奋。然而我大错特错了。当然，面向对象在早期承诺了许多。而直到今天，这些承诺依然在教室里、博客上和网上资源中传授给青涩的程序员们。我花了多年才意识到面向对象的谎言。以前我也曾经青涩，曾经轻信。然后我发现被骗了。再见，面向对象编程。
33 line React
In this post, I’m going to make the smallest React-like thing that can do the above. It’s very mithril influenced.
Profiling React.js Performance
Today, we’ll look at measuring React component render performance with the React Profiler API, measuring interactions with React’s new experimental Interaction Tracing API and measuring custom metrics using the User Timing API.
Auto Effect Pattern with Redux and React Hooks
A pattern for managing HTTP requests with Redux and React hooks. It separates concerns of data fetching and binding logic from components into hooks to make it easier to use.
Best Practices With React Hooks
This article covers the rules of React Hooks and how to effectively start using them in your projects. Please note that in order to follow this article in detail, you will need to know how to use React Hooks.
Gain access to your functions with CORS
This post will show you how to gain access to your functions from a known endpoint through the use of CORS headers.
Userscripts Are Fun And Are Still Very Much Relevant
A userscript is a script that usually helps make the web a better place. Want to use J and K keys to scroll through the new Facebook UI? There’s a userscript for that! Need that YouTube video on your drive? Guess what? You can!
Comparing HTTP/3 vs. HTTP/2 Performance
we’re very excited to be allowed to help push this standard forward. Our implementation is holding up well, offering better performance in some cases and at worst similar to HTTP/2. As the standard finalizes, we’re looking forward to seeing browsers add support for HTTP/3 in mainstream versions. As for us, we continue to support the latest drafts while at the same time looking for more ways to leverage HTTP/3 to get even better performance, be it congestion tuning, prioritization or system capacity (CPU and raw network throughput). 另附：How HTTP/3 and QUIC aim to help the connections that need it most.
Object Stores Starting to Look Like Databases
Technically, any repository of data could be considered a ‘database’ but now object stores, such as those vast repositories of data sitting behind an S3 API, are beginning to resemble more structured, traditional databases in many ways. This feels a trend and market that will continue to grow in the near future.
TerminusDB: A Technical History
TerminusDB is an open source (GPLv3) full featured in-memory graph database management system with a rich query language: WOQL (the Web Object Query Language).
The Computer Scientist Who Can’t Stop Telling Stories
For pioneering computer scientist Donald Knuth, good coding is synonymous with beautiful expression.
Finally We May Have a Path to the Fundamental Theory of Physics… and It’s Beautiful
The most important thing—about which I’m extremely excited—is that I think we’re finally on the right track. Of course, perhaps not surprisingly, it’s still technically difficult. Part of that difficulty comes directly from computational irreducibility and from the difficulty of working out the consequences of underlying rules. But part of the difficulty also comes from the very success and sophistication of existing physics.
How to Rediscover the Joy of Programming?
A popular Hacker News discussion from this week about how to make programming really click for you, rather than being merely a daily slog.
Edge 81 稳定版亮点速览
经历了早前简短的 暂停 后，新版 Edge 浏览器近期向稳定版用户正式推送了 Edge 81 稳定版本，在这个版本中，不少 Edge 浏览器独有的特色体验悉数回归，总算是实现了 Web 标准兼容性和特色功能之间的完美平衡。在这篇文章中我们就来对 Edge 浏览器新版更新中的亮点进行汇总。
阮一峰老师的互联网文档计划中的 Bash 教程，介绍 Linux 命令行 Bash 的基本用法和脚本编程。
GitHub is now free for teams
This means teams can now manage their work together in one place: CI/CD, project management, code review, packages, and more. We want everyone to be able to ship great software on the platform developers love. 另附：npm has joined GitHub, So long, and thanks for all the packages!.
Announcing CodePen support for Flutter
CodePen has been a big fan of Flutter and the Dart programming language for years. We’re pretty pumped that Flutter now supports mobile and the web. The Flutter community is growing fast, which is why we’re excited to support Flutter with its own custom CodePen editor! Flutter is officially a first-class member of the CodePen community. We can’t wait to see what you build with Flutter on CodePen.
Puppeteer can now fetch a Firefox Nightly binary for you via PUPPETEER_PRODUCT=firefox npm install. Also, there’s now an example showing how to launch Firefox with Puppeteer.
What’s New in Swift 5.2
Swift 5.2 is now available as part of Xcode 11.4. In this article, you’ll get an overview of the changes you’ll see moving to Swift 5.2.
All 200+ Google Cloud products described in 4 words or less
Includes Google Cloud, Firebase, Google Maps Platform, G Suite APIs.
All your media player needs in one place - a modern alternative to Videojs and Plyr. Supports Html5, Hls, Dash, YouTube, Vimeo, Dailymotion and more to come.
React PDF viewer
A React component to view a PDF document. It’s written in TypeScript, and powered by React hooks completely.
Flip Counter Plugin
flip is the most advanced Flip counter plugin available on the web. It’s super easy to setup, amazingly flexible and beautifully animated.
node-libcurl - libcurl bindings for Node.js.
The fastest URL transfer library for Node.js.
Falcon: Free, open-source SQL client for Windows and Mac
Falcon is a free, open-source SQL editor with inline data visualization. It currently supports connecting to RedShift, MySQL, PostgreSQL, IBM DB2, Impala, MS SQL, Oracle, SQLite and more (for connecting to Oracle, please, see here the instructions to install the required free Oracle Instant Client). 另附：TablePlus - Database management made easy.
The Webpage, an online RSS reader and news aggregator, styled like a newspaper
RSS Feeds for the 20th century.
KolibriOS is a tiny yet incredibly powerful and fast operating system. This power requires only a few megabyte disk space and 8MB of RAM to run. Kolibri features a rich set of applications that include word processor, image viewer, graphical editor, web browser and well over 30 exciting games. Full FAT12/16/32 support is implemented, as well as read-only support for NTFS, ISO9660 and Ext2/3/4. Drivers are written for popular sound, network and graphics cards.
Your full computer in the cloud. Workstream is a super fast, virtual computer you can use for anything.
My favorite way to level up as a front-end developer is to do the work. Literally just build websites. If you can do it for money, great, you should. If the websites you make can help yourself or anyone else you care about, then that’s also great. In lieu of that, you can also make things simply for the sake of making them, and you’ll still level up. It’s certainly better than just reading about things!
The Decline of Usability
In which we delve into the world of user interface design.
Inclusive Design vs Accessible Design (with Infographic)
Every designer, regardless of their specialty, should aim to create digital products that can be used by the widest range of people. To do that, they must step away from preconceived notions of what a “typical” user is, and instead, look at people as unique, diverse individuals who have differing abilities at different times in their lives, based on their particular environment.
UI component patterns have evolved and stabilized but have not made their way to browsers or standards. Designers and developers reinvent the same components for every product they build. When building a web app or web page designers and developers should have a common set of components at their disposal. We shouldn’t have to rebuild a dropdown, modal dialog, split button, or other components before we build our products.
Google Wave 的失败给现代实时协作办公的一个重大教训
当Google Wave在2009年的I/O大会上首次亮相时，人们感到它是一种与众不同的工具。不仅是因为它是远程办公热潮出现之前的第一个统一办公区和协作平台，而且还在尝试解决如今我们面临的许多问题。然而，不到两年的时间，Google Wave就失败了。如果我们回顾该平台的推出方式，就不会对于为何它在Saas创新历史上的昙花一现感到奇怪了。该产品缺乏重点，涉及定位问题以及发布计划乏善可陈等等，而且这些只是其中的部分问题。如今，由于越来越多的公司采用分布式模型，因此从Wave的错误中吸取教训非常重要。随着实时协作工具的全面兴起，反思先驱的故事可以为未来提供宝贵的经验教训。
A New Hope
Are you glad you’re a programmer Dad? It’s an important job, Son. I never want to be anything else. Except, of course, your Dad.
对数据可视化有兴趣的可以阅读由 AntV 带来的 墨者修齐 2020-04-19 · 香港特别行政区行政长官林郑月娥的民众支持率、Space Junk、龙卷风迁移-可视化大数据移动、The flowing Vector Map
– THE END –