首页 > 其他分享 >从公司的code Review 中提升编码能力

从公司的code Review 中提升编码能力

时间:2024-03-15 17:22:19浏览次数:21  
标签:编码 code Review 之前 else 修改 代码

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-plus 、vben、vue3-admin-vite等等,如果你公司有 code Review 的活动请牢牢抓紧它 因为你可以从中获益匪浅!

作者:前端摸鱼杭小哥
链接:https://juejin.cn/post/7303435124527185960

标签:编码,code,Review,之前,else,修改,代码
From: https://www.cnblogs.com/zdailwh/p/18075871

相关文章

  • linux硬件管理-dmidecode命令
    dmidecode命令主要用于获取主机的硬件信息,通常是在不打开计算机机箱的情况下使用该命令来查找硬件详细信息。其输出的信息包括BIOS、系统、主板、处理器、内存、缓存等等。常用用法[root@localhost~]$dmidecode#打印所有硬件信息[root@localhos......
  • Preview pipeline: Display_Out SetupTargetBuffer
    camx/src/core/hal/camxhaldevice.cppCamxResultHALDevice::ProcessCaptureRequest(Camera3CaptureRequest*pRequest){result=GetCHIAppCallbacks()->chi_override_process_request(reinterpret_cast<constcamera3_device*>(&m_c......
  • #pragma INITCODE
    #pragmaINITCODE//将driverEntry设在分页内存中,当驱动加载成功,此函数在内存中移除。 PAGED_CODE();//当例程所在的中断请求级超过APC_LEVEL时,会产生一个断言,断言会使程序终止。......
  • leedcode-用队列实现栈
    利用内置的listclassMyStack:def__init__(self):#初始化一个空列表用于存储栈的元素self.li=list()defpush(self,x:int)->None:#向栈中压入元素xself.li.append(x)defpop(self)->int:#从栈顶弹......
  • Dynamsoft Barcode Reader 9.6.40.NET Crack
    .NET版本-9.x发行说明9.6.40(03/14/2024)改进更新了DynamsoftBarcodeReader库和其他相应依赖库的安全性。改进并发实例License的多线程处理逻辑。提高了条码解码性能:提高了解码OneD和PDF417条形码时的准确性。提高了密集DataMatrix代码的可读性。固定的......
  • 【LeetCode 2312】卖木头块
    题目描述原题链接:2312卖木头块解题思路每次切割只能完全横切或者竖切,即切成更矮或者更窄的木块;每次切割后剩余的两部分木块都是更小规模的同类问题,典型的可以用动态规划求解的问题;具体到单个问题,高x宽y的木块能卖的最多钱数有三种情况:prices数组中正好有对应宽高的价格......
  • VS Code配置Vue3模板代码
    打开VSCode,file-Preferences-ConfigureUserSnippets{"Printtoconsole":{"prefix":"vue","body":["<scriptsetuplang=\"ts\">","i......
  • 代码随想录算法训练营第七天|LeetCode 344.反转字符串、541.反转字符串II、卡码网54.替
    344.反转字符串题目描述:​编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须**原地修改输入数组**、使用O(1)的额外空间解决这一问题。示例一:输入:s=["h","e","l","l","o"]输出:["o","l","l......
  • 代码随想录训练营第44天 | 动态规划:完全背包理论基础、​​​​​​LeetCode 518.零钱
    目录动态规划:完全背包理论基础文章讲解:代码随想录(programmercarl.com)视频讲解:带你学透完全背包问题!_哔哩哔哩_bilibili思路​​​​​​LeetCode518.零钱兑换II文章讲解:代码随想录(programmercarl.com)视频讲解:518.零钱兑换II_哔哩哔哩_bilibili思路​​​​​​Le......
  • BJDCTF2020[encode]
    题目:encode,地址:encode查壳发现时upx壳,使用工具脱壳命令"upx-d",如果遇到工具脱不了的壳就手动脱壳,手动脱壳请帅哥美女*们看这篇手动脱壳。使用ida打开,观察逻辑后重命名函数:逻辑为一个换表base64+异或+RC4。其中RC4可以根据函数传入key,进而生成Box盒子来判断:知道逻辑后......