《程序员修炼之道》第一二章读书笔记

最近在看《程序员修炼之道:通向务实的最高境界》这一本书,记录一下看书时的一点浅薄感悟。

        务实程序员不仅是一种技能水平的体现,更是一种持续修炼、不断反思并主动承担责任的过程。对自己的行为负责是务实哲学的基石之一。

        在重构CRM时面对文档缺失、逻辑混乱的旧代码,数据来源不清楚时,我的职责不再仅仅是写出符合预期的效果的代码结果,更应该让代码便于他人理解、便于维护、经得起时间的考验。于是,我在关键逻辑节点上撰写了详细注释,并将核心业务流程文档化。

        继续阅读第二章时,“DRY——不要重复自己”的原则让我印象最深。在多个项目中我常看到同一个业务逻辑被以不同方式在多个模块中重复实现,改动某一处时却遗漏了其他地方,最终导致数据不一致或 Bug 频出。其实违反DRY并不只是代码的冗余,更是变相的增加了风险和维护成本。

        其中有一个观点:并非所有的代码重复都是知识的重复,提到了一个例子:需要校验用户的订单数量和年龄,然后写了两个方法来进行校验。实际上这并没有违背DRY原则,代码虽然重复了,但是他们的业务完全不相干,只是校验逻辑恰好一样而已。在DRY-不要重复自己观念中需要深刻去理解需求,理解“重复”的本质,必须从业务需求层面深入分析,而不能仅仅从表象的代码结构出发。

        总结来说,《程序员修炼之道》前两章看似讲的是哲学与方法论,但其实处处贴近开发的实际内容。它不是要告诉我们“怎么写代码”,而是教会我们“怎么思考问题、怎么定义自己的职业角色”。结合自身实践,我更加明白,成为一个真正“务实”的程序员,是一种习惯的养成,是提高自己的职业综合素养。

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

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

相关文章

ArcGISPro应用指南:使用ArcGIS Pro创建与优化H3六边形网格

H3 是由 Uber 开发的一个开源地理空间分析框架,旨在通过将地球表面划分为等面积的六边形网格来支持各种地理空间数据分析任务。每个六边形单元在 H3 系统中都有一个独一无二的标识符,即 H3 指数。这种网格系统不仅能够覆盖全球,而且适用于任何…

xss-dom漏洞

目录 靶场搭建 第一关 第二关 第三关 第四关 第五关 第六关 第七关 第八关 靶场下载地址:https://github.com/PwnFunction/xss.pwnfunction.com 靶场搭建 将文件用clone 下载到ubuntu, 然后进入 cd xss.pwnfunction.com/hugo/ 这个目录下 hu…

BPE(字节对编码)和WordPiece 是什么

BPE(字节对编码)和WordPiece 是什么 BPE(字节对编码)和WordPiece 是自然语言处理中常用的子词分词算法,它们通过将文本拆分为更小的语义单元来平衡词汇表大小和表达能力。 BPE(Byte Pair Encoding,字节对编码) 原理 初始化:将文本按字符(或Unicode字节)拆分为最小…

Java行为型模式---状态模式

状态模式基础概念状态模式(State Pattern)是一种行为型设计模式,其核心思想是允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。状态模式将状态相关的行为封装在独立的状态类中,并将状态转换逻辑…

重学Framework Input模块:如何实现按键一键启动Activity-学员作业

需求背景: 近来vip群里学员朋友有问道一个需求,大概需求就是他们做TV的Framework开发,想要遥控器有一个新定义的儿童节目按键,想要实现这个按键按下后就跳转到儿童节目的Activity。需求拆解及作业要求: 针对上面需求&a…

bmp图像操作:bmp图像保存及raw与bmp转换

1. 保存bmp图像&保存一张正弦图像到D:\1.bmp /********************************************** * fileName bmpinc.h * brief 对bmp文件的操作,包括: * - saveBmp:保存bmp文件 * - Save…

SpringAI——提示词(Prompt)、提示词模板(PromptTemplate)

Prompt 是引导 AI 模型生成特定输出的输入格式,Prompt 的设计和措辞会显著影响模型的响应。最开始Prompt只是单纯的文本文字,后面可以包含占位符,可以识别消息的角色。比如包含占位符的Prompt,也就是我们讲的消息模板(PromptTemplate)&#x…

【深度学习笔记 Ⅰ】5 参数和超参数

在深度学习中,参数(Parameters) 和 超参数(Hyperparameters) 是模型训练中两个核心概念,它们共同决定了模型的性能,但作用方式和优化方法截然不同。以下是详细对比与解析:1. 参数&am…

Linux 阻塞等待框架

在 Linux 设备驱动开发中,阻塞机制 是处理资源暂时不可用(如设备未准备好数据、缓冲区满等)的核心手段。驱动程序可以将被阻塞的进程设置成休眠状态,然后,在资源可用后,再将该进程唤醒。 在 Linux 驱动开发…

PCIe RAS学习专题(3):AER内核处理流程梳理

目录 一、AER内核处理整体流程梳理 二、AER代码重要部分梳理 1、AER初始化阶段 2、中断上半部 aer_irq 3、中断下半部 aer_isr 3.1、aer_isr_one_error 3.2、find_source_device 3.3、aer_process_err_devices 3.4、handle_error_source 3.5、pcie_do_recovery 整体逻…

​HAProxy负载均衡集群概述

前言: 在现代分布式系统中,负载均衡和高可用性是保障服务稳定性和性能的关键技术。HAProxy 作为一款高性能的 TCP/HTTP 负载均衡器,凭借其轻量级、高并发处理能力和灵活的配置机制,成为构建高可用架构的核心组件之一。通过智能的流…

ELN:生物医药科研的数字化引擎——衍因科技引领高效创新

在生物医药研究领域,实验数据的准确记录与管理是科研成败的关键。想象一个场景:某顶尖医学院实验室,研究员小张正为一项抗癌药物实验焦头烂额。纸质记录本中,数据混乱、协作困难,导致实验重复率高达20%。引入衍因科技的…

暑假---作业2

学习目标&#xff1a;xss-1abs 1-8关python美现自动化布尔自注的2、代码进行优化(二分查找)学习内容&#xff1a;1.xss-1abs 1-8关1<h2 align"center">欢迎用户test</h2>2 <script> alert (1)</script&gt<center> <form action&…

【Tensor数据转换】——深度学习.Torch框架

目录 1 Tensor与Numpy 1.1 张量转Numpy 1.2 Numpy转张量 1 Tensor与Numpy 1.1 张量转Numpy 调用numpy()方法可以把Tensor转换为Numpy&#xff0c;此时内存是共享的。 使用copy()方法可以避免内存共享 import torch import numpy as np# tensor转numpy:numpy() def test0…

基于Tranformer的NLP实战(5):BERT实战-基于Pytorch Lightning的文本分类模型

文本分类作为自然语言处理中的基础任务&#xff0c;能够帮助我们将海量医学摘要自动归类到具体疾病领域中。本文将基于NVIDIA NeMo框架&#xff0c;构建一个用于医学疾病摘要分类的深度学习应用&#xff0c;支持将摘要划分为三类&#xff1a;癌症类疾病、神经系统疾病及障碍、以…

14-链路聚合

链路聚合技术 一 链路聚合概述链路聚合定义链路聚合是把多条物理链路聚合在一起&#xff0c;形成一条逻辑链路。应用在交换机、路由器、服务器间链路。分为三层链路聚合和二层链路聚合。二 链路聚合的作用 1. 链路聚合模式静态聚合模式 端口不与对端设备交互信息。选择参考端口…

学习C++、QT---28(QT库中使用QShortcut类对快捷键创建和使用的讲解)

每日一言 所有的努力&#xff0c;都是为了让未来的自己感谢现在的你。 QShortcut 我们的记事本肯定要有通过快捷键对字体的放大和缩小进行控制的功能啊&#xff0c;那么我们这边就这个问题我们需要先学习一下QShortCut 我们这个类就是专门做快捷键的 老样子我们刚开始学习这个…

Web Worker:让前端飞起来的隐形引擎

目录 Web Worker&#xff1a;让前端飞起来的隐形引擎 一、什么是 Web Worker&#xff1f; 1、为什么需要 web worker 2、什么是 web worker 二、基本使用方法 1、创建一个 Worker 文件&#xff08;worker.js&#xff09; 2、主线程引入并使用 三、实战案例&#xff1a;…

关于在VScode中使用git的一些步骤常用命令及其常见问题:

输入 gitee用户 gitee绑定邮箱git config --global user.name "automated-piggy-senior" git config --global user.email "1323280131qq.com"克隆远程库到本地 git clone https://gitee.com/automated-piggy-senior/20250717-test.git常见问题1&#xff1…

LeafletJS 性能优化:处理大数据量地图

引言 LeafletJS 作为一个轻量、灵活的 JavaScript 地图库&#xff0c;以其高效的渲染能力和模块化设计深受开发者喜爱。然而&#xff0c;当处理大数据量&#xff08;如数千个标记、复杂的 GeoJSON 数据或高分辨率瓦片&#xff09;时&#xff0c;LeafletJS 的性能可能面临挑战&…