写点什么

React 采用新的 RFC 流程

  • 2017-12-18
  • 本文字数:1043 字

    阅读完需:约 3 分钟

Facebook 已经决定采用一种新的征求意见(Request for Comments,RFC)流程,来帮助指导 React 的设计,同时使从想法到实现的过程更加顺利。

新的流程要求,对于 React 的重大变更需要在开发工作开始前经过一个审核流程。这些重大变更包括:

  • 新增功能,这项功能会创建新的 API 模块并且如果引入该功能会需要一个 feature flag(feature flags 是软件开发的一种最佳实践,通过 feature flag,你可以控制一个功能的完整生命周期)。
  • 删除功能,这项功能已经作为发布渠道的一部分进行了交付。
  • 引入新的惯用做法或约定,即使这些并不包含对 React 本身的代码修改。

上述列表引自 RFC 流程的 README 文档

作为流程的一部分,开发者需要创建一个 RFC 文档,向 RFC 仓库提交一个 pull request,然后将社区的反馈包含在提案中。是否接受这个 RFC,由 React 核心团队做最终决定。

这似乎是 React 项目曾经采用的非正式的惯用流程的正规化。一个 GitHub 上的 React 项目的调查显示,有许多 issue 都是开始于伴随不同层次讨论的 RFC。

Facebook 将 Rust RFC 流程作为他们流程的灵感来源,因此两者的 RFC 主页有许多相同的内容和步骤。当然, RFC 并不新鲜,它们是互联网工程任务组(Internet Engineering Task Force,IETF)完成的许多工作的基础。

Juan Pablo Buritica 说,开源项目使用 RFC 流程的好处之一是人们更有融入感:

我从未发现,有比让人们参与决策更好的方法,来让人们获得团队归属感。如果我们参与重要的决定,我们的工作可能会更有影响力,而这也让我们更有工作的动力。通过给予团队成员机会去评论其他人提出的决策,RFC 成为增强团队融入感和成员参与度的非常好的工具,而这也会形成工作中的影响力。

RFC 流程会为开源项目维护人和想要为开源项目做贡献的人都节省时间。对一个代码库做了一个大型的改动,然后提交了一个 pull request,却只是被代码维护人拒绝,这完全是浪费时间。Jeff Geerling 说,没有经过讨论的大型改动是他拒绝许多 pull request 的原因之一:

我曾经收到过一些将整个项目架构或测试架构替换了的 PR。我不会合并像这样的 PR,除非这个 PR 已经先在一个 issue 中被彻底地讨论过(并经过了核准)。通常,事出必有因(事实上,原因还不止一个)。

目前 RFC 中的文档列表包括一些由React 核心团队成员撰写的文档。

查看英文原文: React Adopts RFC Process


感谢罗远航对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-12-18 18:004253

评论

发布
暂无评论
发现更多内容

数据驱动的前提,数据质量

奔向架构师

数据治理 9月日更

字符串池化,减少了三分之一的内存占用

newbe36524

C# string 内存

架构实战营 - 模块八作业

李东旭

「架构实战营」

B站就是一个神奇的地方

IT蜗壳-Tango

9月日更

网络攻防学习笔记 Day134

穿过生命散发芬芳

网络安全 9月日更

如何应对老板项目?

石云升

项目管理 9月日更

极客时间架构实战营作业三

jjn0703

架构实战营

Golang 接受 Interfaces, 返回 Structs

baiyutang

设计模式 Go 语言 构架 9月日更

外包学生管理系统架构文档

穿裤子的云

架构实战营

看好创业项目,避免藏在乐观下的无知状态

boshi

创业

在线JSON转Rust工具

入门小站

工具

Typora+PicGo+Gitee搭建博客写作环境

Simon郎

Typora PicGo markdown编辑器 免费图床

☕【Java技术指南】「并发编程专题」CompletionService框架基本使用和原理探究(基础篇)

洛神灬殇

Java CompletionService Executor 9月日更

浏览器缓存之强缓存和协商缓存

Augus

浏览器 9月日更

redis主从实践(二)

风翱

redis 9月日更

CentOS 7 小技巧合集

耳东@Erdong

centos Centos 7 9月日更

坚决抵制造星炒星等畸形价值观,资本是如何通过造星收割粉丝的

石头IT视角

模块三作业

Geek_fc100d

「架构实战营」

linux之chroot命令

入门小站

Linux

深入理解rtmp(四)之协议实现分析

轻口味

android 音视频 RTMP 9月日更

【VueRouter 源码学习】第十篇 - 全局钩子函数的实现

Brave

源码 vue-router 9月日更

【架构图话说】我们怎么就做上了“中台”

超哥图话说

架构 中台 复杂 增长

架构实战营模块八作业

老猎人

架构实战营

如何将集合中的数据List,对比写入系统中

卢卡多多

集合 同步 9月日更

架构实战营模块7作业

技术是伙伴

架构实战营

WEB 剪切板操作navigator.clipboard的使用

devpoint

Blob 9月日更

中秋节快到了,确定不爬点月饼送岳母娘?

Regan Yue

爬虫 后端 Go 语言 引航计划 月饼

架构训练营模块七作业(补)

老实人Honey

老师偷偷塞给我一份资料,封面写着《操作系统》,下面一行小字

梦想橡皮擦

9月日更

外包学生管理系统架构设计

陈家豪

架构实战营

Python——内置模块中的内置函数

在即

9月日更

React采用新的RFC流程_JavaScript_David Iffland_InfoQ精选文章