React实战
上QQ阅读APP看书,第一时间看更新

1.5 团队的React

现在对React中的组件有了更多的了解。对于个人开发者,React能让他们的生活更轻松。但在团队中呢?总的来说,React对个人开发者具有如此吸引力的原因也是使它成为团队最佳选择的原因。无论炒作或狂热的开发者如何鼓吹,同任何技术一样,对每个案例或项目来说,React并不是适用于每种情况或每个项目的完美解决方案。正如已经看到的,有很多事情React都没有做,但只要是React做的事情,它都做得非常好。

是什么使React成为大型团队和大型应用的优秀工具?首先,使用它很简单。简单和简易不是一回事。简易的方案往往又脏又快,最糟糕的是,它们可能欠下技术债。真正简单的技术是灵活和健壮的。React既提供了能够掌控的强大抽象,也提供了在必要时可下降到底层细节中去的方法。简单的技术更容易理解和使用,因为简化和删除不必要东西的困难工作已经完成了。在很多方面,React都让简单变得容易做到,它提供了有效方法却没有引入有害的“黑魔法”或不透明的API。

所有这些对个人开发者来说都很棒,但这种效应在更大的团队和组织中会被放大。尽管React肯定有改进和持续增长的空间,但使其成为一种简单灵活的技术的艰苦工作使工程团队们得到了回报。具有良好的思维模型的更简单的技术往往能减轻工程师的思维负担,让他们行动更快,这会产生更大的影响。作为额外的收获,一套更简单的工具对新员工来说更容易学习。尝试让一个团队新成员加入一个过于复杂的技术栈不仅要花时间培训工程师,还可能意味着新的开发者在一段时间内无法做出有意义的贡献。由于React力图仔细重新思考已建立的最佳实践,因此范式转换会有初始成本,但那之后通常是大而长期的收益。

与同一领域中的其他工具相比,React是一个相当不同的工具,但在职责和功能方面,React却是一个非常轻量的库。像Angular这样的框架要求使用者为更全面的API买单,而React却只关注应用的视图。这意味着将它与使用者当前的技术集成起来要简单得多,并且在其他方面为使用者留下了选择的空间。一些功能固化的框架和库要求使用者在要么全盘接受要么彻底不用之间进行抉择,但React“仅是视图”的范畴以及与JavaScript的全面互操作性意味着情况并非总是如此。

与其一下子全扑上去,使用者可以将不同的项目或工具逐步转换为React而又不必对其结构、构建技术栈或其他相关领域进行重大改变。对几乎所有技术来说,这都是理想的方式,而这正是React开始在Facebook尝试时的方法——在一个小项目上使用。从那里,随着越来越多的团队看到并体验到React的好处,它逐渐成长并扎根。这一切对使用者的团队意味着什么?这表示使用者无须冒险用React完全重写产品就可以评估React。

React的简单、非固化的本质以及性能让它非常适合大大小小的项目。随着使用者不断探索React,你将看到它是如何适合团队和项目的。