blog: 代码评审

This commit is contained in:
xugaoyi 2021-08-01 14:05:56 +08:00
parent ec82c1ab51
commit 990c1fea1d
1 changed files with 80 additions and 0 deletions

View File

@ -0,0 +1,80 @@
---
title: 代码评审优化建议-210802
date: 2021-07-31 14:05:11
permalink: /review/210802/
article: false
sidebar: false
---
## 代码优化建议
1. `80`/`86`等行, `validator` 自定义验证函数是没有意义的。(`133` 行除外)
> 只需定义type为`Function`即可,如传入值非函数,在控制台都会有报错提示。
2. `135`string类型可改写成
```js
listType!: 'text' | 'picture'
```
> 直观的表达可选值。
3. `196`和`197`行,获取文件名和文件后缀的方法可以使用数组解构来简写:
```js
const [fileName='', ext=''] = '我最好看.jpg'.split('.');
```
4. `210`行,这一行代码似乎没起什么作用
5. `212`行,鉴于`209`行的match方法在匹配不到时会返回null, 因此`matchRes`的值有可能是`null`,直接把它当成数组去取值有可能会导致报错。
- `209`行是否可以使用同上面第3点的方法取值
6. `319`/`371`行 等多处判断参数是否为函数类型是没必要的因为props已经限制了参数必须是函数类型。
## 组件设计建议
1. 文件存入地址应由使用者传入。理由:
- 文件存入地址是有可能改变的。
- 通用组件的设计原则应该是不局限在只有我们自己公司用。
<img src="https://img2.baidu.com/it/u=895714060,705914695&fm=26&fmt=auto&gp=0.jpg" style="zoom:50%;" />
2. `getStsToken` 获取token的api应由使用者传入。理由
- 你已经是一个成熟的组件了要学会适应不同的api
<img src="https://cdn.jsdelivr.net/gh/xugaoyi/image_store@master/blog/xh.4k9nyou0jfu0.png" alt="xh" style="zoom:50%;" />
## 疑问🤔
1. Element-ui 的 `listType` 是有三种类型的text/picture/picture-card这里为什么只有两种text/picture 文档没有说明。
## 其他
1. `139`行,添加了`maxSize`配置没有在文档里写明。
2. 看了代码逻辑,只要`isMultipart`为true就会强制分片上传。所以
- `partSize` 配置说明应改为:**自动开启分片上传的临界点(单位M)。仅在`isMultipart`为false时生效。**
- `isMultipart` 配置说明应改为:**是否强制分片上传**