一起走进React核心团队

白癜风早期好治愈吗 http://pf.39.net/bdfyy/bdfrczy/190323/6987607.html

当我刚来Facebook的React团队工作时,我不确定接下来的工作会怎么样。表面看,React核心团队似乎很大!但事实证明,像EliWhite和SebastianMcKenzie这样的人都在ReactNative团队。考虑加上那些维护开源库的维护者,比如ChakraUI、FramerMotion,React核心团队人数似乎能填满整个体育场!但事实恰恰相反。React核心团队很小:

塞巴斯蒂安·马克巴奇(SebastianMarkbage)卢娜·阮(LunaRuan)丹·阿布拉莫夫(DanAbramov)安德鲁·克拉克(AndrewClark)布莱恩·沃恩(BrianVaughn)里克·汉隆(RickHanlon)塞思·韦伯斯特(SethWebster)克里斯汀·阿伯纳西(ChristineAbernathy)和我自己。

虽然Dan是大多数人想到React时会想到的人,但Sebastian其实是仅存的“创始”团队成员之一。尽管Sebastian并未发明React,但他仍然是团队的“指南针”——他负责考虑每个新功能如何更好的融入。Dan和Andrew共同建立了Redux。Brian建立了ReactDevTools。里克(Rick)是一位高数的布道者。Luna负责Relay,并且是团队中唯一主修计算机科学的人!克里斯汀(Christine)与大学合作,立足ReactNative的教育工作。塞思是我们的团队经理。我负责文档和教材的工作。如果你深入了解这个团队,你会很惊讶的发现:Andrew是麦霸,Seth曾是个音乐人,Brian也在录歌(加分项:他的猫是非官方吉祥物。)

Rick热衷于参加社会活动,Dan会跳夜店style的舞。Christine看过漫威的每部电影,Luna和我都喜欢普洱茶。Sebastian则花了很多时间学习木工!在Facebook内部,React是庞大软件生态的一部分。这些项目不断相互影响,有开源也有闭源的。Facebook的工程文化就像解决方案的反应堆。React本身是内部的几个UI库之一,但他很快脱颖而出并开源。现在,尽管React启发了公司的其他UI框架,库和解决方案,但React核心团队的运作就像一个独立的精密实验室。尽管与标准机构的工作并不完全相同,但是在React团队的经历会让我想起W3C的情况。它几乎就像一个致力于使开发人员更轻松地编写一致、可响应、可重用UI的工作组。

当考虑将新的规范引入浏览器时,规范作者在完成API前需要很谨慎。每个API都是多个浏览器开发人员的承诺——并且很可能是一个永久承诺。React团队会影响他们的工作,因此我们也需要很谨慎。一项功能的开发从深入的讨论和和谐的辩论开始。一旦功能完善,就会出现在Fackbook的“livinglab”中进行测试。每个纳入RFC的特性都在经过社区测试前在内部经过测试,这能排除很多坏主意。尽管新的规范可能“破坏互联网惯例”(参考命途多舛的XHTML2),是否升级新版React完全处于开发者自愿,重点是易于迁移以及与现有库的兼容性。尽管有些特性可能难产,但长远看,仍可能取得成果。在15年,团队尝试使用worker提升性能。

结果并不理想——数据传输的开销超出了预期。尽管实验失败,但他带来来很多启发——如果可以将组件划分为在主线程上执行的组件和在工作线程上执行的组件,为什么它们不能在服务器和浏览器之间拆分执行?

五年后,这个想法构成了React团队几天前宣布的ServerComponents提议的基础。同样,在年,React团队与Prepack团队合作——希望对组件进行编译时性能优化。这次合作耗时数月!最后,权衡利弊下,实验“失败了”。

prepack

但是,从那次实验中学到的东西为那一年晚些时候的Hooks设计提供了思路,它还显示仅靠编译时不足以优化性能。很多需要优化的代码都属于编译器可能不知道的动态条件。但是服务器可以!这也是两年后出现ServerComponents的另一种解读。当人们看到Dan上台演讲,或阅读Luna关于新JSX转换的release说明时,不会意识到:对于像Hooks这样的每一个完善的功能,能够成为release,在其背后还有许许多多特性甚至没到达RFC阶段。所有特性都必须等到完全准备就绪为止。

在此之前,只能给其他特性让路。在一个如此重视交付,并且交付的速度越来越快的行业,当你的承诺无法兑现时,这让人非常沮丧。但是这并不意味着没有进步:你有时间思考与计划,有时间实验与学习。即使暂时失败了,也会为成功的特性带来启发。即使你还没完成年初的预期工作,也要相信挫折和颠覆是常态,而不是例外,无论好坏,即使在React上也是如此。

React团队非常重视以正确的方式做正确的事。有时,这意味着无论是情感上还是技术上,都需要付出许多耐心。这也意味着向别人寻求帮助与建议,而不是试图独自做所有事情。这意味着要有信念,不能因为你没有新的特性产出,就意味着你没有提供价值。

-EOF-

推荐阅读点击标题可跳转

1、从0开始实现一个合成大西瓜

2、ReactNative原理与实践

3、修复React代码中烦人的Warning

觉得本文对你有帮助?请分享给更多人

推荐


转载请注明:http://www.aierlanlan.com/rzdk/201.html