红宝书第五十四讲:设计原则SOLID与DRY:写出优雅代码的秘密
编程原则 = 可维护性 + 可扩展性,让代码像积木一样灵活组合。用参考资料中的案例解释核心概念:
资料取自《JavaScript高级程序设计(第5版)》。
查看总目录:红宝书学习大纲
一、DRY原则(不要重复自己)
核心思想:同样的代码不要重复写!
案例演示(基于资料6的代码拆分建议)1:
// ❌重复代码(违反DRY)
function calcAreaCircle(r) {
return 3.14 * r * r;
}
function calcVolumeSphere(r) {
return (4/3) * 3.14 * r * r * r;
}
// ✅遵循DRY:把重复的π提取为常量
const PI = 3.14;
function calcAreaCircle(r) {
return PI * r * r;
}
function calcVolumeSphere(r) {
return (4/3) * PI * r * r * r;
}
二、SOLID原则(五大模块化设计)
重点掌握两个核心(结合资料中的代码组织实践1):
// ✅通过继承扩展功能,避免修改原类
class Animal {
makeSound() { /* 基础声音 */ }
}
class Dog extends Animal {
makeSound() { /* 狗的叫声 */ }
}
实际场景对比
未遵循原则的代码:
// 一个函数处理多个任务(违反单一职责)
function processUser(user) {
validateUser(user); // 验证
saveToDB(user); // 存数据库
sendEmail(user); // 发邮件
}
遵循SOLID的代码:
// 拆分职责(每个函数做一件事)
validateUser(user);
saveUserToDB(user);
sendWelcomeEmail(user);
关键原则总结
原则 | 目标 | 参考资料关联 |
---|---|---|
DRY | 减少重复代码,提升维护性 | 资料6的代码拆分建议 1 |
SOLID(SRP) | 每个模块单一职责,解耦代码 | 资料6的文件组织结构 1 |
SOLID(OCP) | 扩展而不修改原有代码 | 基于资料2的可维护性思路 2 |
目录:总目录
上篇文章:红宝书第五十三讲:Google JavaScript代码规范(简化版):让代码像乐高一样整齐
下篇文章:红宝书第五十五讲:文档生成(JSDoc vs ESDoc):像写笔记一样自动生成说明书
脚注
《JavaScript高级程序设计(第5版)》强调可读性对维护性的重要性 ↩︎ ↩︎