从公司的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 的活动请牢牢抓紧它 因为你可以从中获益匪浅!

相关推荐
东方翱翔7 分钟前
CSS的三种基本选择器
前端·css
Fan_web29 分钟前
JavaScript高级——闭包应用-自定义js模块
开发语言·前端·javascript·css·html
yanglamei196237 分钟前
基于GIKT深度知识追踪模型的习题推荐系统源代码+数据库+使用说明,后端采用flask,前端采用vue
前端·数据库·flask
千穹凌帝38 分钟前
SpinalHDL之结构(二)
开发语言·前端·fpga开发
dot.Net安全矩阵1 小时前
.NET内网实战:通过命令行解密Web.config
前端·学习·安全·web安全·矩阵·.net
Hellc0071 小时前
MacOS升级ruby版本
前端·macos·ruby
前端西瓜哥1 小时前
贝塞尔曲线算法:求贝塞尔曲线和直线的交点
前端·算法
又写了一天BUG1 小时前
npm install安装缓慢及npm更换源
前端·npm·node.js
cc蒲公英1 小时前
Vue2+vue-office/excel 实现在线加载Excel文件预览
前端·vue.js·excel
Java开发追求者1 小时前
在CSS中换行word-break: break-word和 word-break: break-all区别
前端·css·word