《程序员修炼之道》阅读笔记1

news/2025/10/17 18:41:22/文章来源:https://www.cnblogs.com/Ceoberus/p/19148666

读《程序员修炼之道》时,书中 “DRY 原则” 这部分内容,几乎是一下子就抓住了我的注意力 —— 原来 “别重复写代码” 这件事,不是随口说说的习惯,而是有明确逻辑支撑的实践准则。​
书里把 DRY 原则解释为 “不要重复你自己”,但不只是简单说 “别复制粘贴代码”。它强调的是 “避免重复的知识”,比如一段实现某个核心功能的逻辑,要是在代码里反复出现,不仅会让代码变臃肿,更麻烦的是以后要改这个逻辑时,得把所有重复的地方都改一遍,很容易漏改出错。这一点我特别有体会,之前写作业时总觉得 “这段代码短,复制过去省事”,现在才明白,图一时方便的背后,藏着后续维护的大麻烦。​
书中还举了例子,比如把重复的逻辑抽成一个通用的函数或模块,用的时候直接调用就行。这让我突然想起老师上课总说 “写代码要‘偷懒’,把重复的活交给一个‘工具’做”,原来这就是 DRY 原则的实际用法。之前我总觉得 “自己写的代码自己能看懂就行”,但书里说,DRY 原则不只是为了自己方便,也是为了和别人协作 —— 要是大家都重复写逻辑,团队项目里的代码会乱得像 “一团麻”,谁都没法快速接手。​
现在再看自己之前的代码,发现好多地方都踩了 “不遵守 DRY” 的坑:比如处理用户输入验证,在登录、注册、修改信息三个地方各写了一遍;计算成绩排名,在 “成绩查询” 和 “报表导出” 里又各写了一遍。要是早懂 DRY 原则,把这些重复的逻辑抽出来,代码会清爽很多,改的时候也不用到处找。​
这本书里关于 DRY 原则的解读,让我意识到编程不是 “写出来就行”,而是要 “写得巧”。以后做项目时,我第一件事会先想 “这段逻辑会不会再用到”,尽量不做 “重复劳动”—— 毕竟谁也不想改代码时,对着好几处一样的地方挨个修改,既费时间又容易出错。​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/939095.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言单向链表操作

typedef struct nodes_t {int data;struct nodes_t* next; }nodes_t;static nodes_t* head_point = NULL;nodes_t* createNode(nodes_t *node) {nodes_t *p1;if (node == NULL) {return head_point;}if (head_point ==…

Unity3D中定义全局宏(不同于在unity设置中的)

一、准备 BuildSetting中查看使用的.Net版本。 二、创建宏文件 .Net3.5 ,在Asset目录下面创建一个.txt文件,名字修改成mcs.rsp。 可以用Vs Code打开,也可以用文本编辑器打开。具体书写格式为:-define:UNITY_5X .Ne…

第十七篇

今天是10月17号,今天没课多休息一整天,写完了离散作业。

AtCoder arc208 总结

AtCoder arc208 总结 A 猜想 SG 是 \(a_1\oplus a_2\oplus \cdots \oplus a_n \oplus (a_1 \or a_2 \or \cdots \or a_n)\)。然后发现过了。 B 发现当 \(a_i=\lfloor\dfrac{a_{i+1}}2\rfloor +1\) 时 \(\sum (a_{i+1}-…

OOP - 实验一

任务1:代码:#include <iostream> #include <string> #include <vector> #include <algorithm>template<typename T> void output(const T &c); void test1(); void test2(); void…

题解:qoj8329 Excuse

题意:给出一个数 \(n\),现在我通过下面这个算法生成一个长为 \(n\) 的序列 \(a\)。先进行 \(n\) 次随机扔一个硬币,然后如果你最后连续 \(k\) 次投出的是正面朝上,那么就将一个 \(k\) 加入序列末尾。问序列 \(a\) …

`uv run pytest` does not work

错误信息 uv初始化的python项目下,执行 uv run pytest 提示错误信息:❌Failed to canonicalize script path解决方法: 1,编辑 pyproject.toml,并保存: [tool.pytest.ini_options] pythonpath = ["."]2,…

VMware17.6图文安装教程(附安装包)VMware17.6

一、VMware17.6下载 1.官方正版VMware下载链接下载链接https://pan.quark.cn/s/6827b0764042 二、VMware17.6软件介绍 VMware Workstation Pro 17.6是一款功能强大的桌面虚拟化软件,以下是其相关介绍: 功能特性 多操…

Sourcetree - Git 备份

在 Sourcetree 中使用 git bundle 打开 Sourcetree 的内置终端: 在 Sourcetree 中打开你的仓库。 寻找 “终端”(Terminal) 标签页或相关功能。这通常在 Sourcetree 的主界面底部或某个侧边栏中。如果找不到,可以尝…

uni-app x实现上下拉动,动态加载数据

一、概述 上一篇文章,已经实现了商品列表组件封装以及使用。 但是商品列表页面,还需要实现,上下拉动,动态加载数据。 效果如下:二、onReachBottom onReachBottom是微信小程序页面生命周期中的回调函数,用于检测页…

HyperWorks许可状态监控工具

在现今日益复杂的工程设计与仿真环境中,对软件许可状态的有效监控已成为确保工作流程顺畅、资源高效利用的关键。为了满足这一需求,HyperWorks推出了强大的许可状态监控工具,帮助用户实时了解许可使用情况,优化资源…

mysql删除数据表某个日期之前的数据

DELETE FROM 表名WHERE 时间字段名称 < 2025-09-28 00:00:00; (如果是时间戳就填时间戳数字)每天进步一点点

从创作到分析:2025 公众号排版工具全维度测评榜单

从创作到分析:2025 公众号排版工具全维度测评榜单2025公众号工具测评:壹伴AI编辑器全链路优势深度解析 作为新媒体运营者,你是否常陷入这些困境:熬夜赶稿后排版格式反复出错,跨平台分发时样式全乱;拟标题时反复修…

企业微信ipad协议稳定防封的最新最全功能

企业微信ipad协议稳定防封的最新最全功能免费试用&&技术支持: const wx="mff031829" 企业微信ipad的技术特点:多端共存:iPad 协议独立运行,不影响 PC 端和手机端的登录状态,实现三端同步在线。…

企业微信协议ipad,稳定防封私有化部署私域流量聚合聊天,机器人实现方案

企业微信协议ipad,稳定防封私有化部署私域流量聚合聊天,机器人实现方案企业微信iPad协议是一种基于企业微信iPad版本的智能接口服务,通过API接口,企业可以实现对客户群的精细化管理和高效营销。以下是关于企业微信…

重新思考钓鱼攻击意识培训:网络安全的关键反思

本文探讨了钓鱼攻击意识培训的有效性与潜在风险,分析了当前企业安全培训中存在的误区,并提出了构建更有效网络安全防护体系的具体建议。在MGM事件发生后,我认为这是讨论钓鱼攻击意识的好时机。 据传闻,攻击者能够冒…

任务分解与小模型如何降低AI成本

本文探讨如何通过任务分解和使用小型专用语言模型替代单一大型模型来降低AI应用成本,分析系统复杂度与性能间的平衡,并展示个性化网站生成的具体案例。任务分解与小型语言模型如何让AI更经济 生成式AI应用的广泛使用…

spring事件监听的核心机制

spring事件监听的核心机制Spring 事件监听机制的核心是基于观察者模式(Observer Pattern) 实现的组件间解耦通信机制,通过事件(Event)、监听器(Listener)、事件发布者(Publisher) 三者的协作,实现 “发布 - …

直播软件开发搭建公司

作为专ye的直播软件开发公司,山东(泰安)布谷鸟网络科技有限公司深耕直播软件开发和搭建业务,致力于为客户提供稳定、高效的直播解决方案,推出布谷直播源码,满足不同业务场景的定制需求。本文将从多个角度解析直播软…

freeswitch的proxy_media模式下video流的问题与修正

概述 freeswitch是一款简单好用的VOIP开源软交换平台。 测试过程中发现fs的proxy_media模式的一个bug,就是video媒体流的转发处理有问题。 环境 CentOS 7.9 freeswitch 1.6.20 问题 fs配置为proxy_media模式,A路发起…