ChenPt / dailyNote

dailyNode for myself
https://github.com/ChenPt/dailyNote/issues
0 stars 0 forks source link

谈谈编写组件 #41

Open ChenPt opened 4 years ago

ChenPt commented 4 years ago

组件

什么是组件?

通常我们讲的组件是具有可复用性的,独立于系统的,具有一定职责的,由数据方法封装成的对象。

组件的类型

通用基础组件

通用组件,比如,表格,表单,手风琴,列表组件,一般来说,常见的UI组件库属于基础组件。

业务组件

业务组件,比如,文件上传/下载,省市区级联选择,拍照组件,固定的弹窗选择等。业务组件通常是在通用组件的基础上针对业务场景进行二次开发的。

编写组件的思路

明确组件的职责

在动手编写组件之前,需要先明确目前的痛点是什么,这个组件要解决什么问题,组件提供的功能有哪些。编写组件要符合单一功能职责,高内聚,低耦合。 高内聚:一个组件的功能方法数据,以及与所有与外界的耦合度极低的东西高度结合,构成了一个组件 低耦合:不同模块/组件之间的耦合度要低。

设计方案

设计技术方案

明确组件的接口

开发组件前,先预定好组件的接口,以及组件的使用方式。多人协作的时候,组件提供的能力和接口需要进行评审

编写组件的思考

组件拆分的颗粒度要根据业务场景来,当然也要考虑未来可能发生的情况。 在开发过程中,接触一些历史代码的时候,会发现前期为了快速上线,有蛮多模块的代码是相似的,甚至有的组件会在一个模块域里重复拷贝。重构改动这些代码时,抽出组件之前,需要严格评估重构的风险。主要包含但不局限于,

  1. 明确影响范围 统计多少页面/模块会受到影响。
  2. 制定对应的测试计划/编写测试用例
  3. 组件api需要重新设计的话,如何统一更改组件消费方的代码。