《程序员修炼之道:从小工到专家》笔记3

news/2025/10/27 23:27:55/文章来源:https://www.cnblogs.com/houjinkang/p/19170446

1最重要的原则:DRY - “Don't Repeat Yourself”。
其核心是:“每一项知识都必须在系统内具有单一、明确、权威的表述。”
重复的代码(或文档)是“邪恶”的根源。当你需要在多处修改同一逻辑时,极易出错且效率低下。
2重复的类型:
强加的重复:开发者觉得无法避免的重复,通常源于信息不足或设计缺陷。
无意的重复:开发者未意识到自己在重复。
无耐性的重复:开发者因懒惰而复制粘贴,认为以后会改(但通常不会)。
开发者之间的重复:团队沟通不畅,导致多个开发者实现了相似的功能。
3如何贯彻DRY:
使用函数、生成器、模板、元数据等工具来消除重复。
让代码变得“正交”,即改变一个模块不会对其他模块产生连锁反应。

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

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

相关文章

2025.10.27总结

今天进行软考知识点+刷题复习, 原码、反码、补码的概念 定点数,浮点数 校验码重点是海明码,公式为 2(k阶)-1=n+k 一般会给出n求k是多少 然后是计算机硬件组成,计算机系统的基本硬件由运算器、控制器、存储器、输…

Huggingface 禁止XET后端

export HF_HUB_DISABLE_XET=1

对Grid绑定移动

在WPF中,一般移动在Window中写 this.DragMove();但是这样可能会污染View的纯净性质,如果不喜欢这样的写法,可以自己扩展代码 1、使用Command在ViewModel绑定 2、使用方法在Grid中自定义完成 总体思路都是一样的 现在…

Day5div与span标签以及字体实体

div块级标签,span是行内标签 即div是大盒子,span是小盒子 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" conte…

CCUT应用OJ题解——贪吃的松鼠

题目简介来源:1033 贪吃的松鼠 - CCUT应用OJ 题意:给定长度为 \((n-1)\times m+k\) 的序列,其中 \(n-1\) 个数出现 \(m\) 次,有且仅有 1 个数字出现 \(k\) 次,输出这个出现 \(k\) 次的数字。其中序列值域上界为 \…

噪声点验证码的图像处理与识别思路

在验证码的防护设计中,随机噪声点是一种常见的干扰方式。通过在字符周围加入大量随机像素点,验证码能有效增加机器识别的难度。但对于图像处理方法来说,这类噪声并不是无法消除的。本文将介绍如何处理噪声点验证码并…

Java流程控制——Scanner进阶使用

Java流程控制——Scanner进阶使用Scanner流程控制进阶 scanner.hasNextInt(); scanner.hasNextFloat(); ...... import java.util.Scanner;public class demo3 {public static void main(String[] args) {Scanner sc=n…

go构建sse服务端

package mainimport ("context""errors""fmt""log""net/http""os""os/signal""syscall""time""github.com/ThinkIn…

结对编程心得

电梯调度系统项目文档项目仓库地址:https://z.gitee.cn/zgca/repos/zgca/elevator_arrange/blob/develop/ 队友博客参考:CSDN 博客链接1. 项目简介 本项目作为《现代软件工程》课程核心大作业,由三人团队采用结对编…

关于结对编程的一些感悟

为期一个月的结对编程落下帷幕。 看到其他组的合作,了解到了团队合作的重要性。 助教京哥真的是相当负责,我是个新手,很多问题都请教了助教,助教总是帮助我解决了很多问题。 可惜结对编程没做太好,下面进行项目总…

关联子查询

关联子查询是一种依赖外部查询结果的子查询,它的核心特点是:子查询中会引用外部查询的表或字段,因此会针对外部查询的每一行数据,动态执行一次子查询,形成“内外联动”的关系。 关键特点:依赖外部查询:子查询的…

AI概念

LLM 大型语言模型(Large Language Model)的缩写。是一种通过海量文本数据训练,能够理解和生成人类语言的人工智能系统token AI大模型调用中,模型处理文本的基本单位。各家算法切字逻辑,但是大致一个token约等于一个…

工控modBus TCP, 服务端或客户端, 均可以与PHP 通讯

一. 搭建socket服务器,地址是:192.168.18.83,端口是4444;二. 或TCP网络助手, 地址是:192.168.18.83,端口是:4444;三. 在PHP服务器中, cURL模拟发送POST, 请求参数为: {"a":"b"};四. 请求一次PHP, …

[Mirror] LinuxMirrors: Linux 一键换源项目

[Mirror] LinuxMirrors: Linux 一键换源项目$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");目录01 简介1.1 项目地址1.2 官方网站02 更换 Linux 镜像源03 安…

10月27日日记

1.今天学习java 2.明天工程实训 3.Spring 等框架中,依赖注入失败

20232326 2025-2026-1 《网络与系统攻防技术》实验三实验报告

一、实验内容与问题回答 1.1 实验核心内容 (1)使用msfvenom及编码器生成多格式恶意文件,验证编码免杀效果; (2)通过Veil-Evasion工具生成自定义免杀Payload; (3)手动编写C语言加载器执行Shellcode,实现底层免…

20232309 2025-2026-1 《网络与系统攻防技术》实验三实验报告

1.实验内容 1.1学习内容 1.msfvenom的使用 2.veil的下载和使用 1.2问题回答 1.杀软是如何检测出恶意代码的?特征码检测:通过比对文件或程序的静态特征(如特定字符串、哈希值、代码片段)与病毒库中的已知恶意代码特…