浅谈过度封装Fudong Chen

浅谈过度封装

2 years ago
本期播客我们探讨了过度封装组件的现象,分析其产生的原因和对项目的影响。

Scripts

h

Leo

欢迎大家收听本期播客,今天我们要聊聊一个非常有趣的话题,那就是过度封装。很多开发者在项目中使用组件库的时候,可能会不自觉地进行过度封装,这样其实会带来不少麻烦。隔壁同学,你对这个话题有什么想法?

g

隔壁同学

确实,Leo。其实在我参与的项目中,组件封装的初衷通常是为了复用和统一维护,但过度封装却常常导致代码结构混乱。这让我想起当我接手一个即将离职的同事的代码时,看到很多二次封装的组件,真的是让人头痛。

h

Leo

没错,尤其是对于一些已经存在的组件,二次封装的情况屡见不鲜。有时候为了满足某个特定的需求,开发者选择再次封装,结果却让组件变得更加复杂,后续的维护工作量也大大增加了。我觉得这就是过度封装的一个典型表现。

g

隔壁同学

没错,尤其是当这个组件需要适应很多不同页面的个性化需求时,最终导致的props数量激增,几乎没有文档可供参考。后续的开发者不得不去阅读源代码,实在是非常不友好。

h

Leo

那你觉得在使用组件库的时候,怎样才能避免这种过度封装的现象呢?

g

隔壁同学

首先,我认为我们应该尽量利用组件库本身提供的组件,而不是自己去实现相似的组件。设计稿中出现的差别,不一定是组件库不适用,更多时候我们需要深入理解库中的功能,有时候小的差异完全可以通过调整参数来实现。

h

Leo

这点非常重要。很多时候开发者在实现组件时,忽略了已经存在的强大功能,反而选择手动实现,导致了重复造轮子。而且在方法封装方面也是这样,像lodash这些工具库提供了许多实用的功能,我们却偏偏不去利用,真是让人费解。

g

隔壁同学

对的,尤其是在样式封装方面,最终的结果往往是每个文件中都充斥着各种修改样式的代码,这种情况不仅让代码难以维护,还影响了开发效率。使用统一的样式管理方案是非常必要的。

h

Leo

说得好,样式管理的确是一个挑战。我也听说过一些开发者倾向于使用naiveUI等框架,因为它在样式处理上表现优秀。你对此有什么看法?

g

隔壁同学

我认为naiveUI确实是个不错的选择,它和vue3的结合自然流畅,开发体验也很不错。使用组件化的思想来管理样式,能够有效减少样式冲突和不必要的修改。这种方法可以极大地提升团队的开发效率。

h

Leo

总结一下,过度封装虽然是出于好意,但却常常导致更多的问题。我们应该在封装组件时,保持简洁,合理利用现有的组件库。通过有效的样式管理,能够让我们的代码更加优雅和易于维护。

Participants

L

Leo

播客主持人

隔壁同学

前端工程师

Topics

  • 组件封装
  • 过度封装
  • 代码维护