红宝书第五十四讲:设计原则SOLID与DRY:写出优雅代码的秘密


红宝书第五十四讲:设计原则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):

  1. 单一职责原则(S)
    每个模块只做一件事(资料6建议每个对象分到独立文件1):

  2. 开闭原则(O)
    扩展而非修改已有代码(示例基于资料2的可维护性思路2):

// ✅通过继承扩展功能,避免修改原类
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):像写笔记一样自动生成说明书

脚注


  1. 《JavaScript高级程序设计(第5版)》建议分文件避免代码冗余,促进单一职责 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  2. 《JavaScript高级程序设计(第5版)》强调可读性对维护性的重要性 ↩︎ ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kovlistudio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值