这是一个面试项目,赐教还有哪些需要优化的地方?

2020-12-16 10:00:12 +08:00
 mascteen

Table of Contents

  1. 这是一个面试项目,赐教还有哪些需要优化的地方?
  2. 项目需求
  3. 我的代码

这是一个面试项目,赐教还有哪些需要优化的地方?

这是一个公司的面试小项目,根据数据生成多选框,要有一个全选的选项目,这是我的代码,请问还有哪些需要改进的地方和不足?因为对方不回复,只能来这里求教。

项目需求

  1. 写一个多选框小组件;
  2. 需要有单元测试
  3. 有全选选项目
  4. 样式符合需求
  5. 用 react,typescript,jest 技术
  6. 全程不能出现中文
  7. 需要有意义的注释
  8. 代码尽量优美
  9. 取名优美
  10. 最后提交 PR 审核

我的代码

2812 次点击
所在节点    程序员
12 条回复
mascteen
2020-12-16 11:38:10 +08:00
很完美么?
tesguest123
2020-12-16 11:50:26 +08:00
交完后,你不适合我们公司 doge 。白嫖一波
mascteen
2020-12-16 11:52:22 +08:00
@tesguest123 对呀,所以来这里问问
aaronlam
2020-12-16 14:51:16 +08:00
这是个现场上机题?
Chrisssss
2020-12-16 17:54:06 +08:00
比如 `_getColumns` 不关乎业务的东西可以提到 FC 外面去,部分 any 定义使用泛型,有一些代码风格不太好,比如 `selectAll` 函数的 c 参数命名,其实可以用 `checked`,然后里面直接`{
label: "Select All",
value: "Select All",
checked
}` 就好。`‘Select All’` 可以定义一个常量。这些就是我作为面试官的话看了一眼会给你扣分的地方🐶
Chrisssss
2020-12-16 17:54:38 +08:00
其实还有很多问题😢
buhi
2020-12-16 17:59:26 +08:00
好好的 Array#map 不用, 造了个 any=>any=>(any[])=>any[], 一通下来全给你整 any 了
这就是你认为的函数式编程吗? 遇见我同事这么做直接打死了
mascteen
2020-12-16 18:41:33 +08:00
@aaronlam 不是,github
mascteen
2020-12-16 18:44:41 +08:00
@buhi 大哥这能一样么?
mascteen
2020-12-16 18:58:52 +08:00
@Chrisssss 没时间打字?
mascteen
2020-12-16 19:04:31 +08:00
@Chrisssss 是有一些不足,不过这是一道面试题,我不会花太多时间在上面的
yzbythesea
2020-12-16 19:09:59 +08:00
逻辑挺简单的,但是我就是读不懂你的代码。。。

为什么不用 array 存 option ?单独造一个 selectAll 的类干什么?为什么不把 selectAll 当作一个 option 加进去呢?

然后 checkbox 的逻辑都可以但写出 function,再套进里面,你这么写看着好晕。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/735873

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX