01.000000. 开篇词.html 01.325538. 开篇词 | 这一次,我们从“丑”代码出发.html 02.325594. 课前热身 | 这些需求给到你,你会怎么写代码?.html 03.000000. 13类典型坏味道.html 03.326166. 01 | 缺乏业务含义的命名:如何精准命名?.html 04.326179. 02 | 乱用英语:站在中国人的视角来看英文命名.html 05.325794. 03 | 重复代码:简单需求到处修改,怎么办?.html 06.327424. 04 | 长函数:为什么你总是不可避免地写出长函数?.html 07.327483. 05 | 大类:如何避免写出难以理解的大类?.html 08.331620. 06 | 长参数列表:如何处理不同类型的长参数?.html 09.332341. 07 | 滥用控制语句:出现控制结构,多半是错误的提示.html 10.333135. 08 | 缺乏封装:如何应对火车代码和基本类型偏执问题?.html 11.334390. 09 | 可变的数据:不要让你的代码“失控”.html 12.334992. 10 | 变量声明与赋值分离:普通的变量声明,怎么也有坏味道?.html 13.336166. 11 | 依赖混乱:你可能还没发现问题,代码就已经无法挽救了.html 14.336624. 12 | 不一致的代码:为什么你的代码总被吐槽难懂?.html 15.336652. 13 | 落后的代码风格:使用“新”的语言特性和程序库升级你的代码.html 16.000000. 延伸阅读.html 16.338742. 14 | 多久进行一次代码评审最合适?.html 17.339541. 15 | 新需求破坏了代码,怎么办?.html 18.340488. 16 | 熊节:什么代码应该被重构?.html 19.341180. 17 | 课前作业点评:发现“你”代码里的坏味道.html 20.000000. 结束语 & 结课测试.html 20.341595. 结束语 | 写代码是一件可以一生精进的事.html 21.340871. 结课测试|这些代码坏味道的知识你都掌握了吗?.html 22.000000. 加餐分享.html 22.404273. 第四季回归 | 通向高质量代码之路.html 23.730910. 私享直播|1小时参透程序员的AI三重境界.html 24.732918. 私享直播|程序员的上限、下限和第二曲线.html 25.822134. 第五季回归|让我们一起共赴 AI 时代!.html