专栏首页鱼头的Web海洋『周五摸鱼』前端写代码真的有必要封装太好么?

『周五摸鱼』前端写代码真的有必要封装太好么?

•作者:陈大鱼头•github: KRISACHAN[1]

正文

之前在知乎上看到这么一个问题:

前端写代码真的有必要封装太好么? [2]

我的回答

这是鱼头的回答:

我就是那种会统一管理api的人,其实我比较喜欢将功能分类。

例如api放一个文件夹,store放一个文件夹,公共组件放一个文件夹,页面放一个文件夹。

但是封装还是必要的,只是过度封装比不封装后果还惨。

但是怎么封装的合适,这个跟个人功力以及项目情况有关,有的时候不一定能把握好边界。

例如你页面有两个样式差不多的button,而且你的项目只是短期或者跟别的项目相性较差的,就没有封装的必要。

但是如果是这个button可能在很多地方都用得上,这个时候就应该考虑封装。

但是无论是封装还是不封装,首先要明白的一点就是,代码是先给人看再给机器看的。

所以应当力求代码清晰,干净可维护。

过度封装就有可能导致代码看不懂。

其实在npm里,就有很多这种过度封装的毛病,一个Array.isArray都能独立成库,我个人是极其反感这种形式的。

但是对于一些公共的lib来说,例如lodash,他里面也不乏isFunc,isObj等的代码,其实也可以不封装,但是有大量判断的场合,这种if (isFunc)的代码就能让你一下子明白这下面的逻辑是干啥的。

所以封装不封装,封装得好不好也是见仁见智的。

当然从题主的问题来看,封装太好肯定是好的,但是这个“太好”确实一个比较感性的词,是自己觉得好,还是一部分人觉得,还是大部分人觉得好,这就见仁见智了。

不同意见

当然也看到有人给鱼头回复,其中有这样的内容:

『确实 npm 上有不少「一行成库」的模块,而且还很多人用,感觉挺讽刺的。抛开那些纯粹为了好玩,或者「智商税」型的模块,有些模块是因为历史原因留存至今。创立之初作为某个非标准特性的 polyfill,后来特性被标准化了,polyfilll 就变得没必要了。等到兼容性足够之后,作者干脆就把库的实现改成标准语法了。毕竟这些古早的库,新项目未必会再用,但老项目中可能还有依赖,所以也不好直接下掉。』

你的看法?

那么看到本文的各位读者,你们是怎么看待这个问题的呢?

欢迎在下面留言区域回复你的看法,一同交流意见。

References

[1] KRISACHAN: https://github.com/KRISACHAN [2] 前端写代码真的有必要封装太好么? : https://www.zhihu.com/question/397593209/answer/1261843953

本文分享自微信公众号 - 鱼头的Web海洋(krissarea),作者:陈大鱼头

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 忍法,scroll 翻滚之术!

    但其实随着时间的推移, web api 以及 css 规范的不断改进,那些我们曾经认为实现起来很麻烦的功能也变得简单了起来。下面我们可以一起来探讨一下这些改进的...

    陈大鱼头
  • 五分钟看懂 Nginx 负载均衡

    对于电商平台而言,随着业务的不断发展壮大,网站访问量和数据量也随之急剧增长,该情况的产生给服务器带来了一定的负担。从用户体验层面而言,由于服务器端数据处理带来的...

    陈大鱼头
  • 像监听页面一样监听戈多的动态

    不知道各位童鞋有木有看过 《等待戈多》 这部出名的荒诞戏剧 。其剧情大概就是 戈戈 与 狄狄 等待 戈多 的过程中发生的一些琐事,一共两幕。等了这么多年,也不知...

    陈大鱼头
  • PCB封装欣赏了解之旅(下篇)—— 常用集成电路

    上一篇文章(PCB 封装欣赏了解之旅(上篇)—— 常用元器件)带大家欣赏了常用元器件的 PCB 封装,接下来 PCB 封装欣赏之旅下半程开启,随我一起踏上剩下的...

    Mculover666
  • Protel怎么批量修改元件封装?

    回到正题,今天说的是技巧是:在Protel 99中如何批量的修改元件的封装。我们在自己设计电路板时,一个板子上的同一类元件的封装一般都是一样的,比如可能板子上...

    单片机技术宅
  • 脱掉电子元件的外衣---封装

    在大学里上单片机课程的时候,老师给的试验箱上的单片机可能是上图中圈里那样的。

    单片机技术宅
  • 【Java提高一】三大特性-封装

    【Java提高】三大特性-封装 三大特性之---封装 封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的...

    奋斗蒙
  • PCB封装欣赏了解之旅(上篇)—— 常用元器件

    直插电阻长这样,它的封装名称一般是 AXIAL-xx,AXIAL 意为轴状物体,xx 表示两个引脚之间的间距,单位为英寸,通俗的来说:

    Mculover666
  • JAVA:自定义套件...

    各位亲爱的小伙伴们大家好,最近很多伙伴都问我该怎么做自定义套件封装,我在这里做了一个教程分享给大家。

    哲洛不闹
  • 【架构】355- 花椒移动端基础框架架构

    随着公司业务需求的不断增加、三方合作不断接入、新APP快速产出,就会出现想在原有的代码中想增加新的业务和功能,怕影响老逻辑,想不影响老逻辑,去扩展又扩展不了的局...

    pingan8787

扫码关注云+社区

领取腾讯云代金券