分享地址:https://m.qlchat.com/topic/details?topicId=2000001564254694&auditStatus=A
饿了么前端架构师
组件是一种编程抽象,目的是复用。有通用性组件库和业务型组件库。
抽象:什么时候应该抽象成组件?有如下原则(可借鉴但不必完全遵守,视具体业务而定):
DRY原则:Don't repeat yourself——《程序员修炼之道-从小工到专家》 比较极客的一种方式,重复工作工具化
三次原则:rule of three——《重构-改善已有代码的设计》 重复了三次后,才去抽象。因为抽象成本很高,如果一定的重复次数,可以让你更好发现其中的复用规律,更好去抽象。因此也需要平衡抽象和成本之间的关系。
至于如何做组件设计和拆分,实际做法可以先做起来,实际情况中再去迭代修改,最终达到我们想要的效果。
CRP——共同复用原则 The Common Reuse Principle 一个组件尽可能只去做一件事
CCP——公用封闭原则 The Common Closure Principle 一个组件不应该包含多个引起变化的原因
=> 那么一个组件应不应该引用另一个组件?
理论上是最好不要,依赖的弊端:耦合(高维护成本、不稳定性) => 代码的可维护性大于复用性
但是实际业务中不可能不引用,那如何做到引用的情况下,且保持一定的稳定性呢?
稳定
=> 父子组件如何依赖?
hollywood Principle
Don't call us, we'll call you.
子组件的初始化和调用由父组件容器负责。
Convention over Configuration
设计禁区
设计规范先行 设计规范先行以保持组件库表现的一致性。
样式分离 需求:主题定制、样式差异化
辅助平台/工具
组件管理方案
需求:多组件、多人参与、社区参与、私密性
分享几个案例:
(本篇完)