项目遇到的坑

142 阅读2分钟

这几天做业务代码,发现自己封装之差,甚至有点怀疑当时写的时候是不是脑残。这里写一下心得。 拿我这个项目中的样式举例,如图所示,这是一个简单的权限购买的样式头

image.png 我当时写的时候,犯了如下几个错误

  • 封装范围过大。我将四个框全都当成了应该被封装在一起的对象,从而导致了后面封装的时候,这个当前版本的加入使得代码的逻辑复杂度直线上升,如果开头弄的时候,九江当前版本这一个踢出去,自己写样式,单独封装前三个,将会好很多很多
  • 过度封装。我将标题分为一块,金额+按钮又分成了一块。然后按钮又单独提出来分了一块,当时这么分是因为想做sticky布局的时候将样式变动成如下图,显得好分

image.png 但是因为各种用户对应的权限是不同的,这个button的展示形式也就不同,有的会写购买,有的会写续费,有的会写升级,而本身button就是收到免费版,高级版,豪华版三个版本下各种情况的干扰,所以展示起来的逻辑会非常麻烦,现在想想当时如果采用sticky+(abslution && realtive)布局,不再将button单独封装,逻辑结构会好很多

  • 封装的时候采用的逻辑太多,全是if else,尽管试图简化逻辑了,但是导致代码很难懂,以后我是记住了,凡是逻辑复杂度超过两层的,通通使用数组去判断展示
  • 数组的使用。数组我写的也不行,如图所示

image.png

一个简单的数组居然写了三层以上,导致取数据的时候极其麻烦,我往往还不知道哪个是note,哪个是brand,后来全部改成了数组+array,一个数组的内容搞定

image.png 这样逻辑复杂度瞬间就下去了,真可说之前写的时候是失了智。 用了两天时间,改善了我之前写的屎山,感受是尽量还是要多用ts,类型方面得加强,不然很多Bug根本就不会出现