写点什么

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:004760

评论

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

Dataway 整合 Swagger2,让 API 管理更顺畅

哈库纳

Spring Boot DataQL Dataway Hasor

小谈校招offer选择

dongh11

职场 职业规划 应届毕业 心态 招聘

深入浅出Mysql索引的那些事儿

猿人谷

MySQL 性能优化 索引

XSKY发布XMotion纳管热迁移技术,OpenStack集群迁移效率提升超10倍

XSKY星辰天合

金灿灿的季节 - Apache DolphinScheduler收获5位新Committer

代立冬

不懂送女朋友什么牌子的口红?没关系!Python 数据分析告诉你。

JackTian

Python 程序员 数据分析 python 爬虫 口红

认识数据产品经理(四 与互联网产品经理的区别)

马踏飞机747

大数据 互联网 产品经理 职业规划

只用CSS实现响应式Full-Width img 2种方法

寇云

CSS css3

服务化构建-多维度的认识中台

图南日晟

软件工程 分层架构 架构设计

游戏夜读 | vim,vim,vim

game1night

珍藏已久的 OS 学习网站拿出来分享给大家

苹果看辽宁体育

操作系统

Rust 遇上 C/C++(二):函数传参

Coding Fatty

c c++ rust 编程语言

避免争执

孙苏勇

职场 随笔杂谈

解决版权难题,“豪横”字体自己做

zhoo299

设计 CG

服务化架构-状态码设计要点

图南日晟

微服务 RESTful 架构设计

安装R语言编译器:

唯爱

在培训机构花了好几万学Java,当了程序员还常被鄙视,这是招谁惹谁了?

四猿外

Java 学习 程序员 个人成长

Vol.9 Web前端发展历程及前端工程化

pyfn2030

大前端

时序数据库

pydata

ARTS|Week 1 第一次使用LeetCode

Puran

LeetCode ARTS活动

《中国互联网简史》系列笔记之P2P

dongh11

读书笔记

Eureka 实例注册状态保持 STARTING 的问题排查

张晓辉

spring Spring Cloud netflix

tput命令介绍

唯爱

超简单入门MyBatis,看了就会了~

程序员的时光

mybatis

Vol.7 聊聊我热爱的陕西省图书馆

pyfn2030

记录 生活,随想

【写作群星榜】5.22~5.28写作平台优秀作者&文章排名

InfoQ写作社区官方

写作平台 排行榜 热门活动

Vol.8 云栖小镇游记

pyfn2030

阿里云 随笔 数字化转型

控制 Pod 内容器的启动顺序

张晓辉

Kubernetes

MySQL死锁系列-常见加锁场景分析

程序员历小冰

MySQL

磁盘挂载

唯爱

Java 学习笔记(三)数据类型

杜朋

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