程序员修炼之道从小工到专家第五章读书笔记

news/2024/11/28 19:15:57/文章来源:https://www.cnblogs.com/wjhfree/p/18575006
  1. 重构的定义
    重构:在不改变软件外部行为的前提下,对代码进行修改以改善其内部结构的过程。重构的目的是提高代码的可读性、可维护性和可扩展性。
    重构的动机:面对遗留代码或快速开发的代码,重构可以帮助我们清理技术债务,避免代码腐化。
  2. 何时进行重构
    三的法则:当一个功能被重复三次时,就应该考虑重构。这个法则提醒我们,重复的代码往往意味着抽象不足,应该通过重构来消除重复。
    代码异味(Code Smells):代码异味是指那些表明代码可能存在问题的征兆,如长方法、过长的参数列表、魔法数字等。识别代码异味是重构的第一步。
  3. 重构的步骤
    小步前进:每次重构只进行一小部分修改,确保每一步都是可测试的、可回滚的。小步前进有助于减少重构带来的风险。
    编写测试:在重构之前,确保有足够的自动化测试覆盖代码。测试可以帮助我们在重构过程中快速发现问题。
    保持可运行状态:确保重构后的代码仍然可以通过所有测试,保持代码的可运行状态。
  4. 常见的重构技巧
    提取方法:将一段代码提取成一个新的方法,提高代码的可读性和复用性。
    内联方法:将与方法体等价的代码直接替换方法调用,减少不必要的间接层。
    引入参数对象:将多个相关的参数组合成一个对象,简化方法签名。
    重命名:通过重命名变量、方法、类等,使代码更具表达力。

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

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

相关文章

为何不呢?

你很强吗? 你很菜吗? 你紧张吗? 你会输吗? 你能别挂分吗? 你可以别焦虑吗? 你能对得起父母吗? 你能对得起自己吗? 你对自己有自信吗? 你能保持头脑清醒吗? 你能做到不留遗憾吗? 你能把该拿的分都拿到吗? 你能真正的投入到比赛中吗? 你能把自己的水平发挥出来吗? …

三角比简介 (单位圆,弧度,毕达哥拉斯三角恒等式的证明)

定理直角三角形的三角比倒数三角比 我们还要考虑这3个 1. 2. 3. 例子: 单位圆 -0.5是cos,0.87是sin 弧度简介 弧度和度数 例子: 度数到弧度(弧数到度数) 例子: 弧度角和象限 毕达哥拉斯三角恒等式的证明 例子:逆时针方向: 通常表示正角。 顺时针方向: 通常表示负角…

20222407 2024-2025-1 《网络与系统攻防技术》实验五实验报告

1.实验内容 1.1 本周内容总结 使用了Metasploit框架,其是一个功能强大的渗透测试框架。在使用的过程当中,Metasploit 提供了种类繁多的攻击模块,涵盖了远程代码执行、服务拒绝、提权等多种攻击方式,支持对多种 操作系统和应用程序进行测试。除了漏洞利用,它还具备强大的后…

Mac打开指定路径的文件夹

访达中cmd+shift+G直接输入路径终端输入 open . 直接打开当前文件夹作者:iBrake出处:http://www.cnblogs.com/Brake/本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

20222404 2024-2025-1 《网络与系统攻防技术》实验五实验报告

1.实验内容 总结一下本周学习内容 了解了信息搜集在网络攻防中的重要性, 认识不同的信息搜集方法如WHOIS 查询、DNS 查询(dig、nslookup 等) 了解一些查询工具:dig 工具、nslookup 基于网络的信息搜集可以使用nmap,可使用端口、SYN、UDP等不通类型扫描。 2.实验过程 2.1获…

浅谈AXI协议及搭建自己的AXI IP核-01(协议解读)

一、什么是AXI协议? AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,AMBA包括以下几个部分:Advanced High-performance Bus (AHB):高性能总线,用于连接高性能主设备…

哈希表篇

哈希表 有效的字母异位词/*** 242. 有效的字母异位词 字典解法* 时间复杂度O(m+n) 空间复杂度O(1)*/ class Solution {public boolean isAnagram(String s, String t) {int[] record = new int[26];for (int i = 0; i < s.length(); i++) {record[s.charAt(i) - a]++; /…

windows下编程中的多用户、权限问题

编程中经常遇到windows相关的多用户问题,以下通过代码进行实际验证。 一、创建一个UserTest程序using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Security.Principal; using System.Text; using System.Threadin…

电力IEC103/2/1/4规约数据采集仪器网关通讯管理机测试软件工具客户端服务器 LFP/NZ94/N4F规约

www.daq-iot.com作为物联网数据采集解决方案专业提供商,数采物联网小编daq-iot在这里做以下内容介绍,并诚挚的欢迎大家讨论和交流。IEC103规约支持:工具完全适用于电力行业的各种通信测试采集需求。 串口和以太网通信:工具支持通过串口和以太网进行通信,灵活适应不同的电力通…

创新的在线音乐播放器-支持特别歌曲

音乐播放器开发学习笔记 项目简介 这是一个基于Web的音乐播放器练习项目,主要用于学习和实践Web开发技术。项目采用PHP开发,实现了基础的音乐播放功能。 在线体验实现功能 本项目目前包含以下基础功能:音乐搜索和播放 音频文件下载 歌词同步显示 音量调节控制 播放控制(暂停…

触觉智能亮相OpenHarmony人才生态大会2024

11月27日,OpenHarmony人才生态大会2024在武汉隆重举行。本次大会汇聚了政府领导、学术大咖、操作系统技术专家、高校及企业代表,围绕新时代背景下的操作系统人才培养进行了深入探讨,分享高校、企业在产学研融合方面的先进经验,全面展现了OpenHarmony在人才生态领域学-考-用…