重构 改善既有代码的设计(读书笔记2)

《重构 改善既有代码的设计》读书笔记及心得体会 《重构 改善既有代码的设计》读书笔记及心得体会第一章 重构 第一个案例 重构的第一步,为即将修改的代码建立一组可靠的测试环境。 过程和方法对于项目的结果只有次要的影响,首要的影响是人 没有可靠的测试环境就不要进行代码的重构,那么问题来了: - 什么是可靠的测试环境? 在第四章给出回答 重构时,每次修改的幅度要小,这样便于进行测试发现错误。 这是本书中贯穿始终的 阅读详情



        // 什么时候执行重构——代码的坏味道

// 1.重复的代码

// 2.过长的方法(当一段代码你觉得别人看起来困难,你可能需要添加注释的时候,其实你可以抽取成一个方法,然后标注一个优雅的方法名)

// 3.庞大的类(很有可能职责过多,职责单一是一种很好的设计)

// 4.过长的参数列表(让使用者很疲惫)

// 5.发散式变化(添加一个功能,可能引起多处变化)

// 6.依恋情节(一个类中的方法,对自己类的关注少于其他类,比如这个方法多次调用另外一个类的方法,那么,可见这个方法的位置有问题)

// 7.大量的switch语句,可以使用多态代替。

// 8.平衡继承体系(当你在一个类簇中增加一个子类,则必须在另外一个类簇中增加子类),让一个类簇子类引用另外一个类簇子类。???这里没有搞明白

// 9.可恶的临时变量(有一些实例变量,只是在很少的情况下使用),这个时候,可以把它抽取成一个单独的类。

// 10.长长的消息引用链,这个很危险,修改一个地方,则可能修改很多地方,而且代码看起来很累。

// 11.两个类过度耦合,不断的去探索别人的private,这个时候三种方案:1.移动属性,2.移动方法,3.抽取新类。

// 12.纯数据类是很幼稚的行为,程序中其他类可能大量的访问它。我们应该给它增加一些方法,让它实用。

// 13.注释的真正作用应该是思想的延续,而不是代码功能的解释。
gsplat在windows本地部署 3DGS的cuda提效和优化内存的版本gsplat,使得在有一定GPU计算能力的电脑上也能够尝尝3DGS的效果。我在2025年的开年之初尝试配置过gsplat,由于过程中遇到很多问题,最终还是有一些windows上字符编码的问题,没有跑通,最近看gsplat的github更新了3DGUT,优化了反射和二次折射,以及适用于非线性相机模型,如鱼眼相机等。在data目录下下载好了360_v2的数据,进入之后images文件夹是原始分辨率的图像,images_2是下采样系数为2的数据,以此类推。 阅读详情

相关推荐

从零到一:RK3588嵌入式开发中的SDK与MPP集成实战解析

本文详细解析了RK3588嵌入式开发中SDK与MPP(Media Process Platform)的集成实战,涵盖开发环境构建、SDK架构解析、MPP集成关键技术点及常见问题诊断。通过Qt5.12.10交叉编译环境配置和硬件加速优化,帮助开发者高效完成嵌入式视觉项目开发,特别适合边缘计算应用场景。

weixin_29189381的博客 510

重构,改善既有代码的设计(第2版)读书笔记

背景 如同改代码、阅读代码,我们需要明确自己所工作的GIT仓库对应的分支一样,我们也记录下所阅读的书籍信息。 书名:《重构,改善既有代码的设计(第2版)》 作者:【美】马丁•福勒(Marthin Fowler)著 译者:熊节 林从羽 译 出版社:中国工信出版集团 人民邮电出版社 印刷版次:2019年5月第1版 说明 在阅读本笔记时如果发现有任何不合适的地方欢迎评论,因为每个人对同一...

妙法化城 708

CocosCreator3.8.2实战:5分钟搞定多分辨率适配与横竖屏自动翻转(附完整Demo)

本文针对CocosCreator3.8.2开发者,提供了一套5分钟快速集成、开箱即用的多分辨率屏幕适配与横竖屏自动翻转解决方案。通过封装好的ScreenAdapter组件,开发者无需处理复杂计算,即可实现等比缩放或拉伸全屏两种主流适配模式,并自动响应设备旋转,有效解决移动端UI在不同屏幕比例和方向下的显示问题。文末附完整Demo。

z4a5b6的博客 723

重构改善既有代码的设计—— 读书笔记2

重构改善既有代码的设计的第三章—— 代码的坏味道 书中也提到,重构是不存在精确衡量标准的。根据作者的观点,没有任何规则比得上一个见识广博者的直觉。当然我们也必须培养出自己的判断力。 下面根据书中给出的规则结合自己工作经验,做个总结: 如果遇到以下情况,则意味着可以着手进行重构优化工作啦。 1. 重复代码(Duplicated Code) 涉及到重复代码的问题,在实际的开发过程中,稍有常识的开...

BertKing的专栏 258

PyTorch生成式人工智能(7)——生成对抗网络(Generative Adversarial Network, GAN)实践详解

生成对抗网络 (Generative Adversarial Network, GAN) 最早由 Ian Goodfellow 于 2014 年提出,其中生成器试图创建与真实样本无法区分的数据样本,而判别器则试图区分生成器生成的样本与真实样本。在本节中,我们将介绍 GAN 的理论基础。然后,介绍如何使用 PyTorch 从零开始构建 GAN,以便了解所有细节,深入理解 GAN 的内部工作原理,为后续讨论 GAN 的其他更高级内容奠定基础,比如生成高分辨率图像或逼真的音乐。

盼小辉丶的博客 1万+

随机优化 (Stochastic Optimization) 算法详解及案例分析

随机优化是一种用于处理包含随机变量的优化问题的方法。其目标是通过考虑随机变量的概率分布,找到一个在期望意义下最优的解。

闲人编程的博客 4178

读书笔记 -《重构-改善既有代码的设计》Part2

文章目录读书笔记 -《重构-改善既有代码的设计》Part1什么是重构重构 - 第一个案例重构原则为何重构何时重构何时不该重构**为什么重构有用 - Kent Beck**如何与产品经理沟通重构的事情间接层和重构重构与设计重构与性能 读书笔记 -《重构-改善既有代码的设计》Part1 什么是重构 重构是这样一个过程:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。 为什么编码后还需要改进程序内部结构,不是先设计而后编码吗? 在软件版本迭代的过程中,随着特性的增加,开发人员的流动等客观原因,

whose book 的博客 373

[EdgeAI] NXP eIQ 机器学习Toolkit (二):模型篇

eIQ™机器学习(ML)软件开发环境支持在恩智浦EdgeVerse™微控制器和微处理器(包括i.MX RT跨界MCU和i.MX系列应用处理器)上使用ML算法。eIQ ML软件包括称为eIQ Toolkit的ML工作流工具以及推理引擎、神经网络编译器和优化库。......

HowieXue 薛永浩的博客 1万+

[读书笔记] 重构改善既有代码的设计(2)

整理第三章的内容,关于代码的坏味道,这些往往也是可以进行重构的信号。 1. 重复代码。这个是非常常见的代码结构问题,这样的代码问题也很明显:难以维护,重复代码意味着当一份代码改动时,另一份也必须做出相应的改动,否则就会出现不一致的问题。这种情况应该提取共同代码。 2. 过长函数。函数过长意味着函数很复杂,处理了好多内容,违背单一职责,同时,程序愈长愈时难以理解,也很难为其起一个合适的可以表其意的

beyongwang的博客 719

FastGPT智能体开发:FastGPT OpenAPI 知识库接口

FastGPT OpenAPI 知识库接口

王国平的博客 323

二、Windows安装Docker到非C盘的全新教程(Windows版)

Windows安装Docker到非C盘的全新教程(Windows版)

funfan的博客 4万+

重构-改善既有代码的设计读书笔记 2

2.1 何谓重构? 首先要说明的是:视上下文不同,重构」这个词有两种不同的定义。 第一个定义是名词形式: 重构(名词):对软件内部结构的一种调整,目的是在不改变「软件之可察行为」 前提下,提高其可理解性,降低其修改成本。 「重构」的另一个用法是动词形式:重构(动词):使用一系列重构准则(手法),在不改变「软件之可察行为」前提下,调整其结构。 通过重构可以增强代码的可读性,可维护性...

iteye_8865的博客 98

Test-Time Adaptation Induces Stronger Accuracy and Agreement-on-the-Line

TTA不管是否提高了OOD的泛化性都增强了线性的趋势,TTA的初始目的是为了增强OOD的表现,一个人可能会觉得TTA使得ACL更强的原因是他消除了ID和OOD之间的差距,因此所有模型间ID vs OOD的准确率接近于y=x这条线,但是实际上这个解释不能够反映我们的经验发现,因为虽然TTA将分布之间的偏移简化为一种放缩的分布,但是这个放缩的因子幅值可能很大,也就是α<<1但是r>>1,这就会导致很偏离y=x这条线,而且理论分析也是,虽然ID和OOD的差距很大,但是线性关系还在。

m0_62673638的博客 148

『重构--改善既有代码的设计』读书笔记----第2章:重构的原则

1、何为重构 重构(名词): 对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。 重构(动词):使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。 重构的定义,有两方面: a.重构的目的是使软件更容易被理解和i需改。 b.重构不会改变软件可观察的行为——重构之后软件功能一如以往。 两顶帽子 添加新功能...

良月柒 486

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

重构(改善既有代码的设计)--读书笔记2

重构(改善既有代码的设计)–读书笔记1中,总结了什么是重构,为什么要重构,该在什么地方重构以及代码的坏味道。接着上一篇博客,本篇博客总结常用的重构手法,对于每一个重构手法,我将会做一个简要介绍,必要的时候我会再给出一个简单的示例加以说明。 一.重新组织函数 1. Extract Method(提炼函数)     你有一段代码可以被组织在一起并独立出来。     将这段代码放进一个独立的函数中

静墨的博客 541

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

《重构-改善既有代码的设计》读书笔记--第一章--2

继续我的重构之旅,Come On! 1.经过了之前的一次搬运Switch..Case语句,原来的statement函数体积掉了一小半,接下来要对后续的代码下手了。接着马上就看到了一句: ... //add frequent renter points frequentRenterPoints++; ... 这句代码往这里一放,不是自己写的人肯定...

dongguai5570的博客 211

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

《重构--改善既有代码的设计》读书笔记之三:分解并重组statement() part2

运用Replace Temp with Query把statement()中的totalAmount 和 frequentRenterPoints临时变量去掉: 用Customer类的getTotalCharge()取代totalAmount 用Customer类的getTotalFrequentRenterPoints()取代frequentRenterPoints 最后,我们

PBA_WORLD 927

『重构--改善既有代码的设计』读书笔记----代码坏味道【2】

接着昨天的继续说,废话不说,直接进入正题: 【3】Large Class(过大的类) 查看一个类是否“过大”,这里有一个小技巧分享给大家。就是看两点:1)这个类实例变量太多,必然会有Duplicated Code(重复代码) 2)类内如果有太多代码,也会产生Duplicated Code,让整个类看起来混乱并最终走向死亡。 因此当你察觉到这个类是一个...

weixin_30549657的博客 161

重构 改善既有代码的设计 第二版 读书笔记

文章目录前言第一个例子重构1、可靠的测试集2、分解函数statement2.12.22.32.42.52.62.72.83、拆分计算阶段与格式化阶段4、按类型重组计算过程 前言 在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。 设计不是在一开始完成的,而是在整个开发过程中逐渐浮现出来。 需求的变化使得重构变得必要。 第一个例子 有一个戏剧演出团,演员们经常要去各种场合表演戏剧。 通常客户(customer)会指定几出剧目,而剧团则根据观众(audience)人数及剧目类型来向客户收费

c++小白的博客 1177

重构-改善既有代码的设计读书笔记(二)

重构原则2.1 重构 :对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。2.2 为何重构: 重构改进软件设计 代码的腐败是累积性的,经常性的重构可以帮助代码维持自己该有的形态。 重构使软件更容易理解 我们要考虑的不仅是计算机,更应该考虑以后的开发者。 重构帮助找到bug 通过重构,理解代码意图和程序结构,有助于找到bug。 重构提高编程速度 良

zhangxiaoyang0的专栏 548

【《重构 改善既有代码的设计》学习笔记2】重构原则

【《重构 改善既有代码的设计》学习笔记2】重构原则 本篇文章的内容来自《重构 改善既有代码的设计》一书学习笔记整理并且加上自己的浅显的思考总结! 上一篇通过一个简单的例子体验了一把重构过程,现在我们需要回过头看一下重构的一些背景、原理和理论。 并思考一下重构的关键原则是什么,以及重构时需要考虑哪一些问题? 一、什么是重构 1、 重构的定义 “重构” 这个词有两种不同的定义! 名称形式 重...

阿飞云漫步 1023

《重构 改善既有代码的设计》 读书笔记(二)

1.1 起点 实例 名称:影片出租店程序 功能:计算每位顾客的消费金额并打印详单。 需求:输入信息(哪位顾客租了哪些影片、租期多长),然后让程序计算费用。影片分为普通片、儿童片、新片。除计算费用外,还要为常客计算积分,积分根据是否是新片有所不同。 UML类图如下: /'在线作图(UML)网址: http://www.plantuml.com/plantuml/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000 如果要修改的的话,打开网址后,直接复制上图片链接(或者粘贴下方代码)修改

NewReErWen的博客 263

重构,改善既有代码的设计

本系列是用来记录《重构,改善既有代码的设计》这本书的读书笔记。方便自己查看,也方便大家查阅。 欲速则不达,欲达则欲速! 重构,绝对是写程序过程中最重要的事之一。在写程序之前我们不可能事先了解所有的需求,设计肯定会有考虑不周的地方,而且随着项目需求的修改,也有可能原来的设计已经被改的面目全非了。更何况,我们很少有机会从到到尾完成一个项目,基本上都是接手别人的代码,即使这个项目从头到尾参与,也有可...

学Java,找哪吒 7822

重构,改善既有代码的设计(理论篇)

本文是笔者毕业后的第一篇blog,将从三个方面讨论代码重构。即:1.代码重构是什么;2.常用的重构手法;3.代码中的“坏味道”。本篇blog是《重构,改善代码既有代码的设计》一文的读书笔记,读书笔记与书一起食用效果更佳哦。

云瀚的自习室 4476

《重构:改善既有代码的设计》读书笔记(持续更新中)

背景(我也不知道这个算不算读书笔记,书本知识点整理和个人理解内容可跳至下面正文): 最近过年加找工作一直没想起来整理学习内容, 时间都很零碎。回想一下, 的确一直以来都是为了完成项目去看知识点。 除了刚开始想转行做IT的时候跟着慕课网的两条前后端路线系统地学习了一下, 但是终究囫囵吞枣。 前几天刚好有被问到《重构》这本书的内容。这两天临时抱佛脚看一下。 有了一定量的代码量积累的现在, 带着些许...

yytoo2的博客 2459

重构,改善既有代码的设计(实战篇)

程序员必懂的代码重构(理论篇)一文介绍了代码重构是什么、常用的重构手法和代码中的“坏味道”。But talk is cheap. Show me the code,本文将从实战的角度来谈谈代码重构,共分为:题目、初步解法、重构实战和总结四部分。

云瀚的自习室 4982
上一篇: 重构 改善既有代码的设计(读书笔记1)
下一篇: 系统架构方面的博客
coding_or_coded
博客等级 码龄16年 216粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值