Appearance
永远不建议开发者封装组件
现在面试动不动就让手写一个Promise,手写一个xx算法,但实际上在工作中99%的朋友们都不会遇到这种程度的需求。大部分情况下我们都与增删改查较量,但是有些时候重复的业务开发多了就免不了想着减少一部分重复劳动,进行一系列的封装,大幅度减少工作量。
我个人是及其不建议大家这么做的!当然,用于个人提升除外。
为什么?
理由有三:
一、封装代码代价太大
封装代码代价是相当大的,首先是封装的时候要考虑到各种各样的场景,因为不是所有的业务都是增删改查,也不是每一个增删改查都是一模一样的逻辑。想要实现兼容处理,那就要考虑到很多种情况。
而且很多朋友说实话,水平真的有限。封装出来的代码有些地方写的非常冗余,而且大量的代码是无效代码,除了拉低系统的运行速度,没有任何优势。如果大家真的觉得封装会大大的减轻开发的劳力程度,那其实有些走弯路了。
封装代码的时间也需要非常久,甚至要比单独开发某个模块的时间还要长,得不偿失!
二、封装代码维护成本太高
由于封装代码的同学水平参差不齐,也就间接导致了封装的组件质量也水平不一。很多地方在复用的时候都无法做到完美运行,而封装出来的代码在调试的时候也很难快速定位到问题。
很多小公司热衷于搭建自己的框架,封装自己的UI库,搞自己的组件,其实在市场看来这都是自娱自乐。因为这些东西并不具备任何“产出”,也并不产生任何实质性的“价值”。
为什么这么说,这种低级别的代码封装并不会大大加快项目的开发进度,并且还会因为质量问题拖慢项目开发。也即是变相拉高了项目的开发成本,拉长了开发时间。
三、封装代码对自己没什么好处
如果说代码的封装对于自己的水平是一个检验和提升的话,那我建议大家将自己封装的组件开源到GitHub上,这样不但回馈了开源社区,而且还为自己带来了一定程度的声望。
但是在公司进行代码封装对自己可以说一丝一毫的好处都没有。首先说封装出来的代码不一定没有隐藏性质的问题,解决这些问题需要大量的时间,你自己的时间会不断地消耗在各个项目上,并且容易搞得同事们“怨声载道”,虽然他自己写不一定比你好,但是用你的组件出现了问题,那就妥妥是你的“锅”!
另外封装出来的代码必不可能100%覆盖了公司的需求,如果出现新的需求,这个新需求90%以上的可能性会要求你满足。理由也非常充分,组件是你封装的,你最了解,别人改怕改坏了。
所以,并不建议大家去对代码进行封装。但是,如果你是要开源,或者是提升自己,又或者是快速的接一些私活儿,那么封装是一种非常好的解决方案!