FIRST

本文翻译自FIRST

组件必须职责单一(Focused),独立(Independent),可重用(Reusable),小(Small)并且可测试(Testable) (FIRST)

无论它是一个客户端或是服务器端的组件,一个Node模块或是一小块视觉设计UI,那些足够的组件天生就会比那些小组件更加复杂,以至于很难维护。

事实上,高效地构建“大”组件的秘诀一般来说首先就是尽量地避免去构建它。相反,应该将一些更小的,职责更加单一的组件组合成你所需要的“大组件。这样一来就可以更加容易看清楚这些小组件在一个更宽广的视野里如何在一起工作的。这些概念也适用于一些已经存在的构建组件的技术上,包括Web Components。

在Node社区里,职责单一和模块化已经取得一定程度上的成功,并且与我们所知领域的其它东西同等重要,原因如下:

总的来说,在构建组件时,时刻谨记模块化和职责单一,可以增加组件重用性,简化维护并且提高可扩展性。

如果你正在构建的组件需要与社区或是仅仅是在你的团队里面分享,那么问问你自己,在你的API里面的这些功能是否会被90%以上的用户使用。如果答案是肯定的,那么它很有可能就是核心功能并且应该保留。如果一个功能将会被10%的启用使用,那么它很有可能就是一个单独的组件或是模块。避免代码膨胀。

某些人也许读到这篇文章时会想,“太好了!…但是从实践上来说,从一开始就实现模块化往往不太现实”。这样说也是有道理的。一些开发者会认为从一开始就构建一个完整的解决方案,然后再抽取出可用的模块,如此这样做会更加容易一些。这样做的话,可以在设计一些公共接口时节约出很多时间,特别是当这些公共接口有可能是往错误方向前进时。但是无论你选择哪种方案,最终都会导致相同的目的:你将拥有一大堆的可以在以后的项目中重用的组件。

当你尝试准备去构建一个组件时,无论它是视觉化的或是非视觉化的组件,请尽量记住以下五件事:

或者简言之,FIRST

Related Posts

Xin(Khalil) Zhang 30 December 2016
blog comments powered by Disqus