从公司的code Review 中提升编码能力,发现与其他人的差距

前言

不知道大家有没有感觉, 一到三年工作经验的其实差距还是很大的 ,有的一年工作经验的能力的确比三年的更强点,难不成他们是天生编码能力强?非也!是因为他们会花更多的时间去学习去思考。

其中个人觉得 code Review 和 学习优秀的开源项目 会让你的编码能力提升的非常快..

仔细来说说 code Review 的好处吧:

  • 多人一起review 你的代码的时候 会迸发出更多 想法 让你知道 你又哪些方面没有考虑到
  • Review 水平比你高的 你可以在他的编码习惯中学习到 很多思路与设计
  • Review 水平比你低的 你可以看看那些错误是怎么发生的 从而以后去避免他
  • Review 和自己差不多的 你可以换位思考 看看自己和他的 实现方式的区别

分享一下我们Review 的代码

下面代码都是 伪代码 ,请勿较劲,并且每一家公司有自己的 规范与习惯 如果和你们的习惯不一样 ,那就是你们对 仅供参考~

1、对于只有一个 if else 并且简单赋值可以用三元表达式优化

修改之前:

优化后:

对于 不变的并且结构很长的这种对象或数组,可以放到一个 ts 文件,通过引入的方式,这样代码看起来会代码更简洁明了

2、用map 映射 替换重复判断的 if else

修改之前:

优化后:

对于重复的 if else 判断,可以用map 结构去优化,这种也是设计模式中的 策略模式 ,这样就会避免代码中大量的 if else 让人看代码的时候头疼

3、将forEach+splice的方式 替换成findIndex+splice

修改之前:

优化之后:

每次写代码的时候不应该只会使用 forEach, 这个场景就 通过 findIndex 直接找到索引, 删除那一项 这样不会像 修改之前那样 每次都要遍历完数组 复杂度会大大降低

4、将判断提前

修改之前:

修改之后

将判断提前,就不用if里面包裹大量逻辑,并且优化性能,当 dataNum 不存在的时候 就不会执行下面的代码了

5、太多重复的对象代码 可以用解构的方式

修之前:

修改之后:

params 参数就是 应用于 form 没必要一个个的赋值过去 可以 可以用 ... 的方式

6、对于大量的 重复类型可以用 Pick、Partial、Omit 等ts 的内置类型 对 一个类型去做 类型提取

修改之前:

修改之后:

这样的的话 尽可能就是对一个大的类型进行收敛 而不是分散的 各种重复的类型

7、避免使用 魔法数字 可使用一个常量 或者枚举去替代

修改之前:

修改之后:

将 魔法数字 120 改成一个常量 加上注释 这样会 清晰很多

8、尽量少的造轮子

修改之前:

修改之后:

这里逻辑是关闭elemnet 之外的 弹框 其实没必要自己手写这种逻辑 而且写不好还有可能有一些奇怪的bug 在vue3 中比较广泛使用的自定义hooks就是 vueuse 大家可以多看看 这种库 不仅提高开发效率 还有利于学习如何编写自定义hooks

总结

如果你是一个刚入行 并且公司只有你一个前端 其实个人觉得 会很难养成一个好的编码习惯 因为没有可以参考的地方,这种情况公司没有大佬 也没有机会组织code Review 那你就可以多看看开源项目 比如 vue3 的 elemnet-plusvbenvue3-admin-vite等等,如果你公司有 code Review 的活动请牢牢抓紧它 因为你可以从中获益匪浅!

相关推荐
jessezappy5 分钟前
jQuery-Word-Export 使用记录及完整修正文件下载 jquery.wordexport.js
前端·word·jquery·filesaver·word-export
旧林84332 分钟前
第八章 利用CSS制作导航菜单
前端·css
yngsqq44 分钟前
c#使用高版本8.0步骤
java·前端·c#
Myli_ing1 小时前
考研倒计时-配色+1
前端·javascript·考研
余道各努力,千里自同风1 小时前
前端 vue 如何区分开发环境
前端·javascript·vue.js
软件小伟2 小时前
Vue3+element-plus 实现中英文切换(Vue-i18n组件的使用)
前端·javascript·vue.js
醉の虾2 小时前
Vue3 使用v-for 渲染列表数据后更新
前端·javascript·vue.js
张小小大智慧2 小时前
TypeScript 的发展与基本语法
前端·javascript·typescript
hummhumm2 小时前
第 22 章 - Go语言 测试与基准测试
java·大数据·开发语言·前端·python·golang·log4j
asleep7012 小时前
第8章利用CSS制作导航菜单
前端·css