FEX 技术周刊 - 2019/04/15
业界会议
Google Cloud Next ’19
https://cloud.withgoogle.com/next/
https://www.geekpark.net/news/240349
- Google makes the power of BigQuery available in Sheets
- Bringing the best of open source to Google Cloud customers
- Announcing Cloud Run, the newest member of our serverless compute stack
深阅读
Code caching for JavaScript developers
https://v8.dev/blog/code-caching-for-devs
In this blog post, we offer a few pieces of advice for JS developers who want to make the best use of code caching to improve the startup of their websites. This advice focuses on the implementation of caching in Chrome/V8, but most of it is likely transferable to other browsers’ code caching implementations too.
jQuery 3.4.0 Released
https://blog.jquery.com/2019/04/10/jquery-3-4-0-released/
So many of us owe so much to jQuery that I just have to feature any of its key updates (even if you might not need it). 3.4 is focused on bug fixes and performance improvements, but we’re told a serious overhaul is on the way for jQuery 4.0. 另附:jQuery Terminal Emulator - web based terminal.
Design patterns in modern JavaScript development
https://levelup.gitconnected.com/design-patterns-in-modern-javascript-development-ec84d8be06ca
Thoughts on effective communication in the design of software projects.
Ryan Dahl. Deno, a new way to JavaScript. JS Fest 2019 Spring
https://www.youtube.com/watch?v=z6JRlx5NC9E
From async-await to ArrayBuffers, the JavaScript language has changes significantly in the decade since Node.js was designed. Deno takes advantage of these developments and incorporate lessons learned in the development of Node to provide a new JavaScript platform built on V8 and Rust. This talk will teach the audience how to get started with Deno.
Reasons Why JavaScript is Omnipresent in Modern Development
https://snipcart.com/blog/why-javascript-benefits
Therefor , I want to use this post to answer these questions: What is JavaScript? Why is it so important? Why we use JavaScript? (or JS benefits)? What’s coming for JS? Even for experienced developers, it’s nice to stop for a second and remember where the tools you’re using are coming from and why you’re using them.
在阿里云做前端
https://zhuanlan.zhihu.com/p/61127760
前端是个资源型角色,在认知里对业务的理解深度不够,加上通常负责业务领域很广,比较难有积累和沉淀。如果你问一个毕业10年的JAVA老司机,他跟你谈的一定是大流量下的分布式架构,而前端可能还是昨天茶余饭后讨论vue和react,或者是angular谁更强。如何突破,如何提供业务更多价值,前端们一直在苦苦探寻。网上很多文章,给人启发,但每个人面对的环境,负责的业务不同,不一定都适用。结合自己过去几年在阿里云的前端经验,也做个总结。
前端核心代码保护技术面面观
https://zhuanlan.zhihu.com/p/61651310
本文首先适当回顾目前流行的前端核心代码保护的相关技术思路及简要的实现,后具体讲述一种更为安全可靠的前端核心代码保护的思路(SecurityWorker)供大家借鉴以及改进。当然,作者并非专业的前端安全从业者,对部分技术安全性的理解可能稍显片面及不足,欢迎留言一起探讨。
阿里毕玄:我在系统设计上犯过的 14 个错
https://mp.weixin.qq.com/s?__biz=MzIxMzEzMjM5NQ==&mid=2651031744&idx=1&sn=3cf979f5c111d1553d47aa122a66a825
在上篇《架构师画像》的文章中提到了自己在系统设计上犯过的一些错,觉得还挺有意义的,这篇文章就来回顾下自己近八年来所做的一些系统设计,看看犯的一些比较大的血淋淋的错误(很多都是推倒重来),这八年来主要做了三个基础技术产品,三个横跨三年的大的技术项目(其中有两个还在进行中),发现大的错误基本集中在前面几年,从这个点看起来能比较自豪的说在最近的几年在系统设计的掌控上确实比以前成熟了很多。
写了十几年代码,我为什么还没有被拿去“祭天”?
https://mp.weixin.qq.com/s/9TnZy6LKTNCQJb-8n9y-6w
十几年来,我一直坚持在编码岗位,经历了普通开发人员、TL、MDE、MDEL、SDM(云化团队)、Committer、软件专家等各种岗位。然而我却深知,不算大牛的我,从事编码这个“高危”职业十几年而没有被拿去“祭天”,依靠的是一个程序员的自我修养——扎实的基础软件能力、如履薄冰的工作态度、对技术孜孜不倦的追求。
Native image lazy-loading for the web!
https://addyosmani.com/blog/lazy-loading/
In this post, we’ll look at the new loading attribute which brings native <img>
and <iframe>
lazy-loading to the web!.
Digging Into The Display Property: The Two Values Of Display
https://www.smashingmagazine.com/2019/04/display-two-value/
We talk a lot about Flexbox and CSS Grid Layout, but these layout methods are essentially values of the CSS display property, a workhorse of a property that doesn’t get a lot of attention. Rachel Andrew takes a better look in a short series.
Javascript vs. CSS – More control means more responsibility
https://christianheilmann.com/2019/04/11/javascript-vs-css-more-control-means-more-responsibility-video-interview/
A few weeks ago I was in Paris, France to visit Prismic and they interviewed me about the JavaScript vs. CSS debate. In 10 minutes we covered a lot :).
JSON as configuration files: please don’t
https://arp242.net/weblog/json_as_configuration_files-_please_dont
I’ve recently witnessed the rather disturbing trend of using JSON for configuration files. Please don’t. Ever. Not even once. It’s a really bad idea. It’s just not what JSON was designed to do, and consequently not what it’s good at. JSON is intended to be a “lightweight data-interchange format”, and claims that it is “easy for humans to read and write” and “easy for machines to parse and generate”.
When To Use TypeScript - A Detailed Guide Through Common Scenariosr
https://khalilstemmler.com/articles/when-to-use-typescript-guide/
Strap yourself in. In this guide, we compare when it’s absolutely vital to be using TypeScript, the strictly-typed programming language, and when it makes sense to stick to vanilla JavaScript. 另附:Learn more programming languages, even if you won’t use them.
Don’t trust the locals: investigating the prevalence of persistent client-side cross-site scripting in the wild
https://blog.acolyer.org/2019/04/10/dont-trust-the-locals-investigating-the-prevalence-of-persistent-client-side-cross-site-scripting-in-the-wild/
In an analysis of the top 5000 Alexa domains, 21% of sites that make use of data originating from storage were found to contain vulnerabilities, of which at least 70% were directly exploitable using the models described in this paper. 另附:How bad can it git? Characterizing secret leakage in public GitHub repositories
Aroma: Using machine learning for code recommendation
https://code.fb.com/developer-tools/aroma/
Thousands of engineers write the code to create our apps, which serve billions of people worldwide. This is no trivial task—our services have grown so diverse and complex that the codebase contains millions of lines of code that intersect with a wide variety of different systems, from messaging to image rendering. To simplify and speed the process of writing code that will make an impact on so many systems, engineers often want a way to find how someone else has handled a similar task. We created Aroma, a code-to-code search and recommendation tool that uses machine learning (ML) to make the process of gaining insights from big codebases much easier.
How eBay Governs its Big Data Fabric
https://www.ebayinc.com/stories/blogs/tech/how-ebay-governs-its-big-data-fabric/
At eBay, nearly everything we do is based on data. We deal with structured, unstructured, and semi-structured data, where Hadoop, as a big data platform, has provided key technology features. Keeping pace with the speed of innovation while continuing to help data consumers easily find and consume the data they need guides our architecture and investment in building out eBay’s Big Data Fabric.
Org-Mode Is One of the Most Reasonable Markup Languages to Use for Text
https://karl-voit.at/2017/09/23/orgmode-as-markup-only/
This is about Org-mode syntax and its advantages even when used outside of Emacs. You can type Org-mode in vim, notepad.exe, Atom, Notepad++, and all other text editors out there. And in my opinion it does have advantages compared to the other, common lightweight markup standards such as Markdown, AsciiDoc, Wikitext or reStructuredText.
新鲜货
Launching the Front-End Tooling Survey 2019
https://medium.freecodecamp.org/launching-the-front-end-tooling-survey-2019-4cb2b72f0b42
How have our front-end tooling habits changed since last year’s results? React and Vue.js made large gains across all of these areas. In fact, in a change from the previous set of results, React was considered the most essential tool in this category for the first time — knocking jQuery off the top spot–with almost a third of respondents replying as such (28.47%). 附:The Stack Overflow Developer Survey 2019 Results .
Front-end Developer Handbook 2019
https://frontendmasters.com/books/front-end-handbook/2019/
This is a guide that everyone can use to learn about the practice of front-end development. It broadly outlines and discusses the practice of front-end engineering: how to learn it and what tools are used when practicing it in 2019. It is specifically written with the intention of being a professional resource for potential and currently practicing front-end developers to equip themselves with learning materials and development tools. Secondarily, it can be used by managers, CTOs, instructors, and head hunters to gain insights into the practice of front-end development. 另附:前端九部 - 入门者手册2019。
Launching a YouTube dataset of user-generated content
https://youtube-eng.googleblog.com/2019/04/launching-youtube-dataset-of-user.html
We are excited to launch a large-scale dataset of public user-generated content (UGC) videos uploaded to YouTube under a Creative Commons license. This dataset is intended to aid the advancement of research on video compression and quality evaluation. We created this dataset to help baseline research efforts, as well as foster algorithmic development. We hope that this dataset will help the industry better comprehend UGC quality and tackle UGC challenges at scale.
Statement from npm
https://medium.com/@npmjs/statement-from-npm-9bdf4eae05a9
In bringing on a new leader to the role of Chief Executive Officer at npm, Inc., we were all aware of the rapid changes we would have to make in order to set the company up for long term success. Our mission is to sustainably support the npm registry and our open source tools so that they live on forever. That depends on our ability to embrace a changing environment. 附:Nice People Matter? NPM may stand for Not Politely Managed – job cuts leave staff sore、Introducing the Node.js Enterprise Focus Group、The OpenJS Foundation is Official! Now What?.
Microsoft Edge preview builds: The next step in our OSS journey
https://blogs.windows.com/windowsexperience/2019/04/08/microsoft-edge-preview-builds-the-next-step-in-our-oss-journey/
We’re embarking on the next step in this journey – our first Canary and Developer builds are ready for download on Windows 10 PCs. Canary builds are preview builds that will be updated daily, while Developer builds are preview builds that will be updated weekly. Beta builds will come online in the future. Support for Mac and all supported versions of Windows will also come over time. 附:Edge Goes Chromium: What Does it Mean for Front-End Developers?.
Twitter Emoji (Twemoji)
https://github.com/twitter/twemoji
A simple library that provides standard Unicode emoji support across all platforms. Twemoji v12.0 adheres to the Unicode 12.0 spec and supports the Emoji 12.0 spec. The Twemoji library offers support for 3,071 emojis.
react-redux v7.0
https://github.com/reduxjs/react-redux/releases/tag/v7.0.1
React-Redux version 7 resolves the performance issues that were reported with version 6, and lays the groundwork for us to design and ship a public useRedux()-type Hooks API in a later 7.x release. The major change for this release is that connect is now implemented using Hooks internally. Because of this, we now require a minimum React version of 16.8.4 or higher.
reactstrap
https://github.com/reactstrap/reactstrap
Simple React Bootstrap 4 components.
MDX 1.0 Released: Seamlessly Write JSX in Markdown
https://mdxjs.com/blog/v1/
MDX is an authorable format that lets you seamlessly write JSX in your Markdown documents. You can import components, such as interactive charts or alerts, and embed them within your content. This makes writing long-form content with components a blast.
pm2 3.5.0 Released
https://github.com/Unitech/pm2/releases/tag/3.5.0
Node.js Production Process Manager with a built-in Load Balancer. 另附:Forever 1.0 - A simple CLI tool for ensuring that a given script runs continuously.
EdgeDB 1.0 Alpha 1
https://edgedb.com/blog/edgedb-1-0-alpha-1/
The next generation database. EdgeDB combines the simplicity of a NoSQL database with relational model’s powerful querying, strictness, consistency, and performance. EdgeDB is an open-source object-relational database that bakes in support for working with semi-structured data in an attempt at bringing the simplicity of NoSQL to the relational world. PostgreSQL is used under the hood with Edge’s own SQL-esque query language (EdgeQL) compiled to SQL behind the scenes, and this post is a great introduction to EdgeQL and how it works from a developer’s perspective.
Netlify
https://www.netlify.com/docs/
Build, deploy, and manage modern web projects. An all-in-one workflow that combines global deployment, continuous integration, and automatic HTTPS. And that’s just the beginning.
Hugo 0.55.0: The early Easter Egg Edition!
https://gohugo.io/news/0.55.0-relnotes/
Faster, virtualized Output Formats, revised shortcodes, new return keyword, and much more… 另附:Docusaurus · Easy to Maintain Open Source Documentation Websites.
Elasticsearch 7.0.0 released
https://www.elastic.co/blog/elasticsearch-7-0-0-released
Elasticsearch 7.0.0 has something for everyone. At Elastic, we constantly talk about speed, scale, and relevance: it’s in our source code. Elasticsearch 7.0 goes to exemplify this, as it’s the fastest, safest, most resilient, easiest to use version of Elasticsearch ever, and it comes with a boatload of enhancements and new feature.
Announcing Rust 1.34.0
https://blog.rust-lang.org/2019/04/11/Rust-1.34.0.html
he Rust team is happy to announce a new version of Rust, 1.34.0. Rust is a programming language that is empowering everyone to build reliable and efficient software.The largest feature in this release is the introduction of alternative cargo registries.
Announcing Building Git
https://blog.jcoglan.com/2019/04/08/announcing-building-git/
Building Git is a deep dive into the internals of the Git version control system. By rebuilding it in a high-level programming language, we explore the computer science behind this widely used tool. In the process, we gain a deeper understanding of Git itself as well as covering a wide array of broadly applicable programming topics.
设计
Monotype launches the first redesign in 35 years of the world’s most ubiquitous font, Helvetica
https://www.creativeboom.com/resources/monotype-launches-the-first-redesign-in-35-years-of-the-worlds-most-ubiquitous-font-helvetica/
Consisting of 48 fonts and three optical sizes, the typeface has been produced from size-specific drawings and with size-specific spacing and is the first redesign in 35 years of what many argue is the world’s most ubiquitous font, Helvetica. Every character has been redrawn and refit, and a host of useful alternates have been added to help brands meet modern-day branding challenges.
Accessibility Before Aesthetics
https://blog.marvelapp.com/accessibility-before-aesthetics/
It’s time we start addressing accessibility before aesthetics in our design processes to create meaningful products for our diversified societies and cultures. Before diving into the why, how and what of it, let’s revisit the definitions of these terms to set the context.
The lifecycle of a redesign: Making Reddit more welcoming
https://www.invisionapp.com/inside-design/reddit-redesign/
“We could’ve taken the approach of the designer as a magician—‘Ta-da! Here it is!’” says Zavani. “But we’ve seen other site re-designs that are so extravagant or so far from reality that they never actually become a reality. At the end of the day, we wanted to make sure that people use Reddit the way they’ve always used Reddit, because it’s a magical, weird, and wonderful place.”
全面掌握设计系统中「颜色规范」的建立方法
https://www.uisdc.com/establish-color-standard-for-design-system
本文基于目前两大设计体系:安卓端的谷歌设计规范和iOS人机交互指南对颜色的定义和规范,参考了部分 Ant Design 的色板生成原理,为大家带来「米庄APP」设计系统颜色规范的建立过程。
Secrets to a Successful Designer 🤝 Developer Handoff
https://www.sitepen.com/blog/secrets-to-a-successful-designer-developer-handoff/
Let’s be honest, getting designs from your UX team into the hands of your engineering team in a way that makes sense is rarely easy. Add tight deadlines, team changes, and miscommunication to this process and your application will likely end up looking very different than what you expected. The handoff between design and development is no easy task.
产品及其它
996, Github, and China’s Digital Workers Rights Awakening
https://chanind.github.io/china/2019/04/10/github-996-china-digital-workers-rights.html
Tech workers of the world, unite! 附:如果请德鲁克评价一下“996”,他会怎么说?、马云再谈“996”:真正的996不是简单的加班.
How we think about product at Gatsby
https://www.gatsbyjs.org/blog/2019-04-03-how-we-think-about-product-at-gatsby/
As a company grows, it will eventually start offering products or services to the community it’s trying to serve. It’s an exciting time filled with near constant changes. At Gatsby, we realized that this meant we needed to have a better understanding and core philosophy around the products we create.
Slack Is Not Where ‘Deep Work’ Happens
https://blog.nuclino.com/slack-is-not-where-deep-work-happens
How did you start your day today? Probably reached for the phone. Turned off the alarm. Glanced at the time. Scrolled through the Slack notifications. Went through the emails. You will likely continue doing it throughout the day, approximately 2,617 more times, according to some studies. We all do it, and despite all the virtues of digital minimalism, completely giving up those habits is extreme and, arguably, unnecessary. Yet we live in a culture obsessed with productivity and these harmless distractions are wreaking havoc on it.
听编程猫 CTO 孙悦讲教育科技公司如何用编程影响社会未来
https://www.geekpark.net/news/240520
学英语是为了跟外界交流,那么学编程就是和物联网、人工智能、计算机发生交互。三十多年前,英语作为一门学科改变了一代人甚至一个国家的面貌;而孙悦认为,编程也会在下一个时代,给社会带来更多积极的影响。特别喜欢这句:图形化编程,与世界的交互新方式。
真正的高手,都有对抗“熵增”的底层思维
https://mp.weixin.qq.com/s?__biz=MjM5NDI2NDU5Mw==&mid=2655261042&idx=2&sn=a5fc8e7ac7014725f6088e61e42c4d77
在1998年亚马逊致股东信里,贝佐斯说:“我们要反抗熵(We want to fight entropy)。”管理学大师彼得·德鲁克说:“管理要做的只有一件事情,就是如何对抗熵增。在这个过程中,企业的生命力才会增加,而不是默默走向死亡。”物理学家薛定谔说:“自然万物都趋向从有序到无序,即熵值增加。而生命需要通过不断抵消其生活中产生的正熵,使自己维持在一个稳定而低的熵水平上。生命以负熵为生。”这么多人都在谈论熵,说要反抗熵,然而到底什么是熵?
腾讯市值反超阿里,现实主义PK长期主义
https://mp.weixin.qq.com/s/X92pWViZL7KTt1MF1zlVLw
今天变得很大的创业者无不是坚持了“用户/客户第一”:有的是现实主义,如字节跳动;有的是长期主义,如快手。去年,智联招聘CEO郭盛曾介绍,在中国中小企业存活年龄只有2.5年,而这一数字在日本是12.5年,在美国8年;大型企业平均寿命中国是7年,日本是58年、美国是40年,这与商业发达程度有关系,但与“机会主义”的盛行也有关系。要想基业长青,企业可以现实主义也可以长期主义,但机会主义,显然是没什么机会的。另附:腾讯“偷塔”。
对数据可视化有兴趣的可以阅读由 AntV 带来的 墨者修齐 2019-04-15 · 趋势解读的 Stroytelling、Digital Attack Map、色彩工具库 chroma.js