技术月刊 | 2020.09 - Changing World, Changing Mozilla

189 阅读7分钟

Changing World, Changing Mozilla

This is a time of change for the internet and for Mozilla. From combatting a lethal virus and battling systemic racism to protecting individual privacy — one thing is clear: an open and accessible internet is essential to the fight. Mozilla exists so the internet can help the world collectively meet the range of challenges a moment like this presents. Firefox is a part of this. But we know we also need to go beyond the browser to give people new products and technologies that both excite them and represent their interests.

blog.mozilla.org/blog/2020/0…

A clean start for the web

The web is in need of some reinvention right now. The web’s evolution over the last decade has mirrored the American economy. All of the essential indicators are going “up and to the right,” a steady stream of fundamental advances reassure use that there “is progress,” but the actual experience and effects for individuals stagnates or regresses. The crisis affects platforms, creators, and consumers alike.

macwright.com/2020/08/22/…

Patterns of Distributed Systems

Distributed systems provide a particular challenge to program. They often require us to have multiple copies of data, which need to keep synchronized. Yet we cannot rely on processing nodes working reliably, and network delays can easily lead to inconsistencies. Despite this, many organizations rely on a range of core distributed software handling data storage, messaging, system management, and compute capability. These systems face common problems which they solve with similar solutions. This article recognizes and develops these solutions as patterns, with which we can build up an understanding of how to better understand, communicate and teach distributed system design.

martinfowler.com/articles/pa…

Tracing at Slack: Thinking in Causal Graphs

“Why is it slow?” is the hardest problem to debug in a complex distributed system like Slack. To diagnose a slow-loading channel with over a hundred thousand users, we’d need to look at client-side metrics, server-side metrics, and logs. It could be a client-side issue: a slow network connection or hardware. On the other hand, it could be a server-side issue: a request execution error or an edge case in code. Triaging and fixing these issues is a tedious process when we have to manually correlate all the logs and metrics for a single request across client devices, network devices, backend services, and databases.

slack.engineering/tracing-at-…

Are CRDTs suitable for shared editing?

CRDTs are often praised as the "holy grail" for building collaborative applications because they don't require a central authority to resolve sync conflicts. They open up new possibilities to scale the backend infrastructure and are also well-suited as a data-model for distributed apps that don't require a server at all. However, several text editor developers report not to use them because they impose a too significant overhead. In this article, I will introduce you to a simple optimization for CRDTs and examine the exact performance trade-off of using Yjs for shared editing. I hope to convince you that the overhead is actually very small even for large documents with long edit histories.

blog.kevinjahns.de/are-crdts-s…

How Figma’s multiplayer technology works

When we first started building multiplayer functionality in Figma four years ago, we decided to develop our own solution. No other design tool offered this feature, and we didn’t want to use operational transforms (a.k.a. OTs), the standard multiplayer algorithm popularized by apps like Google Docs. As a startup we value the ability to ship features quickly, and OTs were unnecessarily complex for our problem space. So we built a custom multiplayer system that's simpler and easier to implement.

www.figma.com/blog/how-fi…

浅谈低代码平台涉及的一些技术选型

前段时间,我写过一篇文章,侧重从产品角度去谈低代码平台的一些能做和适合做的事情,以及做这些事情的方式。在本篇中,会尝试从几个大方向出发,简单谈谈如何从技术视角看待模型驱动的低代码平台的整体架构,以及相关的部分选型。

www.yuque.com/xufei-coder…

「可视化搭建系统」——从设计到架构,探索前端领域技术和业务价值

这篇文章总结了业界在「可视化页面搭建」、「no/low code 平台」技术探索的方方面面,并整理了各种相关技术博客和分析文章。我们还介绍了编辑器技术和编辑器技术所能给「可视化页面搭建」带来的破局和创新。在此基础上,我们更是从知乎会员事业部前端一个自研的「可视化页面搭建系统」入手,就探索阶段到成熟阶段的演进历史进行了介绍。

zhuanlan.zhihu.com/p/164558106

Flume - Extract business logic into JSON graphs

As most apps grow and mature, developers are often faced with an important problem: How to present a user-interface to end-users for customizing business logic. Solving this problem gives rise to a large number of complex, bespoke UIs. This problem becomes especially apparent in apps designed to serve a wide variety of users with unique business logic needs. Flume helps developers standardize logic editing around a standard (albeit, customizable) user interface: a node editor.

flume.dev/

漫谈前端数据层

本文详细阐述了我关于前端数据层相关的研究和思考。业务系统前端,可以按照“视图层、逻辑层、数据层”进行结构分层。其中数据层在当下的前端领域被讨论的不多,但在我看来却非常重要。数据层本身也可以分为服务层和模型层,数据从源头(API 接口)到数据层,到逻辑层,到视图层,然后在回流回来,形成一个完整的闭环。

zhuanlan.zhihu.com/p/165213964

浅谈 TypeScript 类型系统

在引入 TypeScript 的过程中,我们基本都可以感受到它的类型约束带来的种种益处。明确的接口契约,一方面有力加强了工程质量,弥补了 JavaScript 的最大软肋,另一方面,借助一些基于此构建的周边工具,开发效率也获得了明显提升。然而 TypeScript 的中高级进阶并非易事,我们时常困惑于某些具体特性的要义,纠结在一个复杂类型的实现。最终我们发现,欠缺的实际上是一个对 TypeScript 类型系统的深层次理解。

zhuanlan.zhihu.com/p/64446259

Leading-Trim: The Future of Digital Typesetting

In a standard text box, there’s almost always extra space above and below the actual text. Because of this, when you use a text box to measure and implement spacing, it ends up larger than you intended. The bigger the line height, the bigger the problem. Today, we’re excited to announce that Microsoft Design is sponsoring the authoring of this new spec. This article gives an introduction to this new CSS standard, leading-trim, and what it could mean for web designers and developers.

medium.com/microsoft-d…

GPT-3 袭来,前端又要失业?谈谈如何实现智能切图

3 年前,智能切图项目 pix2code 轰动了前端界,它的效果非常惊人,只需要输入一张图片就能生成前端代码,有了它任何人都能切图了,还要啥前端?看起来前途无量。不过和绝大多数论文一样,这个项目出道即巅峰,后来再也没升级和优化,一直停留在最初的状态,根本没法用,渐渐就被遗忘了。但最近 GPT-3 再次挑战前端,这次是直接输入自然语言就生成 HTML 代码,这下连图都不要了,说说话就能生成页面。于是国内有媒体直接评价说「前端群体心情估计比较复杂,特别是刚入门的同学们可能会再三思考:我奋斗下去能比 AI 强吗?」。作为「前端群体」中的一员,我也很关心自己的饭碗会不会像棋牌类游戏那样被 AI 抢走,所以本文就来分析一下 GPT-3 及各种可以实现智能切图的技术。

zhuanlan.zhihu.com/p/188437243

Designing a JavaScript Plugin System

WordPress has plugins. jQuery has plugins. Gatsby, Eleventy, and Vue do, too. Plugins are a common feature of libraries and frameworks, and for a good reason: they allow developers to add functionality, in a safe, scalable way. This makes the core project more valuable, and it builds a community — all without creating an additional maintenance burden. What a great deal! So how do you go about building a plugin system? Let’s answer that question by building one of our own, in JavaScript.

css-tricks.com/designing-a…

Why Write ADRs

Architecture decision records, also known as ADRs, are a great way to document how and why a decision was reached within a codebase. We’ve started to adopt them within the mobile team here at GitHub, documenting decisions that affect the iOS codebase and Android codebase, as well as decisions that affect both mobile clients.

github.blog/2020-08-13-…

Measuring engineering productivity at GitLab

One of the challenges in a rapidly growing engineering organization is determining how your organization’s productivity scales over time. Companies that grow quickly often face a slow down in output because of inefficiencies and communication challenges. For example, a task that you used to be able to ask another coworker to do may now need a comprehensive approval flow. In this article, I’ll do a deep dive into how we measure engineering productivity at GitLab using MR Rate, the challenges we’ve encountered, and what we do to increase this metric. I hope that through this, you’ll have a deeper understanding of how we operate at GitLab and inspire you to reflect on how your organization measures engineering productivity.

about.gitlab.com/blog/2020/0…

What's Accenture?

What’s Accenture? And why is it worth $140B? If you’re working at a tech company, you’ve probably thought about build vs. buy a lot — but what about build vs. outsource? Every year, companies spend more than $50B on tech and IT consulting. Particularly at larger companies and government organizations, tech problems can be big, complex, and annoying (would you want to re-do a data warehouse in Oracle?), and people don’t want to solve those problems themselves; so they’ll outsource it to companies like Accenture, who pulled in a cool $43B in revenue last year.

retool.com/blog/whats-…

Fintech+SaaS 带来的巨大机会

金融科技正在开启一个垂直 SaaS 的新时代,其中大部分收入来自金融服务。随着 SaaS 公司增加了金融服务,它们不仅增加了每个客户的收入(通常是2-5倍) ,而且在以前被认为太小、或者成本效益不高、无法获得客户的市场上开辟了机会。在这篇文章中,我们将探讨为什么金融科技会推动垂直 SaaS 的下一轮演化,为什么会开辟新的垂直市场,以及金融科技的不同商业模式在哪里以及如何应用。

mp.weixin.qq.com/s/F1dxp-G6d…