发布于 2024 年 2 月 26 日,星期一
“不愧是疑问解决神器(二)!你强任你强👍👍👍”强调了某工具或方法在解决前端开发问题上的高效性和强大能力。其本质在于突显该工具或方法的实用性和广泛适用性,能够在面对复杂或棘手的前端问题时,提供快速且有效的解决方案。通过“你强任你强”的表述,传达了无论问题多么复杂,该工具都能应对自如,体现了其强大的功能和灵活性。整体上,标题旨在赞扬该工具在提升开发效率和解决疑难问题方面的卓越表现。
1.神秘命令(Mysterious Name)?
2. 重复代码(Duplicated Code)?
3. 过长函数(Long Function)?
活的最长,最好的程序,其中的函数都较短。
函数越长,就越难理解
但其实小函数也会给代码的阅读者带来一些负担,因为要经常切换上下文,才能看明白函数在做什么。若能给函数起一个好名字,阅读代码的人就可以通过名字了解函数的作用,根本不用去看函数的实现。
3.1 如何提炼函数的参数和临时变量?
3.2 如何确定提炼某个文件下某一段的代码呢?
一个好技巧:寻找注释
遇到条件表达式和循环
4. 全局数据(Global Data)?
5. 可变数据(Mutable Data)?
6. 发散式变化(Divergent Change)?
7. 霰弹式修改(Shotgun Surgery)?
霰弹式的修改类似于发散式变化,但却恰恰相反。
7.1 何为霰弹式修改?
7.2 如何对霰弹式的程序进行修改?
8. 依恋情结(Feature Envy)?
依恋情结的情况:比如一个函数跟另一个模块中的函数或数据交流很频繁。
8.1 何为模块化?
8.2 有时候一个函数中往往会用到几个模块中的功能,那如何处理这种依恋情结呢?
9. 数据泥团(Data Clumps)?
数据项像小孩子一样,喜欢成群结队待在一起。
9.1 如何评判众多数据是否有价值?
10. 过长的消息链(Message Chains)?
何为过长的消息链?
如何针对过长的消息连进行重构?
11. 注释(Comments)?
1. 自测试代码的价值?
能够确保所有测试都完全自动化,让他们检查自己的测试结果。
当完成一个功能后,就开始编写测试代码可以更好的提高开发效率。
一套测试就是一个强大的bug侦测器,能够大大缩减查找bug所需的时间。
将测试代码的习惯提炼成一个技艺?
测试驱动开发的短循环?
2. 本章所讲的内容?
1. 重构的记录格式?
每个重构手法都有 5 个部分
牢记重构的一点:小步前进,情况越复杂,步子就要越小
https://mp.weixin.qq.com/s/xui2UBEtkJc46Q-ImWrv8g