当前位置: 首页 > news >正文

ABAP设计模式之---“童子军法则(The Boy Scout Rule)”

法则介绍

The Boy Scout Rule,中文一般翻译为“童子军法则”,是一个简单却非常有意义的软件开发原则,它最早由软件开发大师 Robert C. Martin (Uncle Bob) 在他的《Clean Code》一书中提出。

这条法则的核心思想非常简单: “确保你离开代码的时候比你发现它时更干净。”

在这里插入图片描述

这条规则借鉴了童子军的一种行为习惯:在露营时,童子军团员会遵循一种纪律: 收拾营地时必须比他们到达时更干净整洁,再离开。我们在编写和改动代码时,也可以应用类似的理念。

这并不要求你每次改动代码时都去对整个代码库进行改造或重构,而是尽力让你涉及的那部分代码变得更好,比如更易读、更清晰、更少问题、更优雅。

简单概括就是:通过日积月累的小改进,逐步提升代码质量。


举个例子

场景

假设你是一位开发人员,正在修复一个在上市产品中的bug。你定位问题时,发现这个bug所在的代码片段是一个结构非常混乱的函数,看起来充满了臃肿的逻辑、重复代码和混乱的命名,比如:

CLASS lcl_calculator DEFINITION.PUBLIC SECTION.METHODS calcIMPORTINGp TYPE fy TYPE it TYPE iRETURNINGVALUE(result) TYPE f.
ENDCLASS.CLASS lcl_calculator IMPLEMENTATION.METHOD calc.CASE t.WHEN 0.result = p + p * 0.03 * y.WHEN 1.result = p + p * 0.05 * y.WHEN OTHERS.result = 0.ENDCASE.ENDMETHOD.
ENDCLASS.

从代码上你能看出来,这个函数的目标是根据用户选择的投资类型 (t) 来计算利息。但阅读这段代码时,你可能感到困惑,因为变量命名模糊,且写法欠优雅。


应用

按照这个法则,你在修复 bug 的同时可以顺手将你看到的代码稍作优化改进!比如,你可以:

  1. 改进命名:把模糊的变量命名替换为易理解的名称,提高代码可读性。
  2. 去掉魔法数字:把01这些数字抽取为具有含义的枚举值或常量。
  3. 提取重复逻辑:简化代码分支。

经过一个简单的重构,不额外引入新的逻辑,你的代码可能会变成下面这样:

TYPES: BEGIN OF ENUM investment_type.
TYPES low_risk VALUE '#LOW_RISK',high_risk VALUE '#HIGH_RISK'.
TYPES END OF ENUM investment_type.CLASS lcl_interest_calculator DEFINITION.PUBLIC SECTION.METHODS calculate_interestIMPORTINGprincipal TYPE fyears TYPE iinvestment_type TYPE investment_typeRETURNINGVALUE(result) TYPE f.
ENDCLASS.CLASS lcl_interest_calculator IMPLEMENTATION.METHOD calculate_interest.DATA: interest_rate TYPE f.CASE investment_type.WHEN investment_type-low_risk.interest_rate = 0.03.WHEN investment_type-high_risk.interest_rate = 0.05.WHEN OTHERS.RAISE EXCEPTION TYPE cx_sy_illegal_argumentEXPORTINGtextid = 'Unknown investment type'.ENDCASE.result = principal + (principal * interest_rate * years).ENDMETHOD.
ENDCLASS.

优化后的好处:
  • 更好的可读性和维护性:变量名和常量的引入让代码一目了然,其他开发者将来再看这段代码时理解起来更轻松。
  • 捕获潜在问题:通过改进代码,你可能发现原代码中的隐含错误(例如未处理未知投资类型的情况)。
  • 逐步改善代码库质量:这种点滴的改进积累起来,整个系统的代码质量就会越来越好。

为什么它重要?

  1. 技术债务的治理 : 代码往往随着时间的推移越来越混乱,甚至积累大量“技术债务”。The Boy Scout Rule 就像是日常的清洁和整理,能让技术债务得到缓慢但持续的处理,避免问题堆积成“无法维护的大山”。

  2. 提升团队效率 : 每个人在修改代码时稍微做点力所能及的改进,整个团队的代码质量就会发生质变。未来在调试或扩展功能时,大家能够更高效地完成工作。

  3. 防止“破窗效应” : 如果代码长时间得不到维护,每次有新开发人员碰到一段糟糕的代码时都会想“反正没人改正,我也懒得管”,久而久之问题会更严重。The Boy Scout Rule 提倡每次改进一点点,从而避免这种情况。


总结

The Boy Scout Rule 是一种轻量级、长期有效的代码管理策略,它强调 “每日清理” 的意识。在日常开发中,我们不能总是追求完美,但至少可以在我们触碰的地方,尽可能地让它变得更好一点点。

Remember: “Leave the code better than you found it.” 👌

http://www.xdnf.cn/news/957493.html

相关文章:

  • animate.css详解:轻松实现网页动画效果
  • 制作一款打飞机游戏68:地面敌人
  • CopyOnWriteArrayList和CopyOnWriteArraySet :并发安全的写时复制机制
  • 新手指南:如何轻松将文件压缩为RAR格式
  • Android多媒体——音/视频数据播放(十八)
  • 如何实现高可用评论服务
  • gtxe2_channel内部参数和寄存器配置-CPLL超频设计,超过6.6Gbps的最高速率
  • OpenHarmony按键分发流程(60%)
  • 4.redis集群
  • rk3568的data分区修改
  • 以太网PHY布局布线指南
  • Houdini POP入门学习07 - 分组
  • 热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁
  • 论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
  • 游戏开发中常见的战斗数值英文缩写对照表
  • ubuntu中安装conda的后遗症
  • 3439. 重新安排会议得到最多空余时间 I
  • vue3 报错Missing semicolon
  • Yolov8 目标检测蒸馏学习记录
  • 【2025】pycharm 安装
  • 详解什么是One-Hot Encoding (独热编码)
  • PH热榜 | 2025-06-08
  • Ascend NPU上适配Step-Audio模型
  • C语言数据结构笔记4:子函数中使用的sizeof 指针无法获取数组的实际大小
  • 学习经验分享篇(3)——电机驱动电力电子方向投稿经历
  • 职场生存发展指南 | 边界 / 责任 / 社交 / 情绪
  • 个人自用debian启动
  • C语言 学习 宏命令(预处理) 2025年6月9日14:41:39
  • 【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?
  • 机器人模仿学习调研