自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(315)
  • 收藏
  • 关注

原创 【Qt】《Qt 5.9 C++开发指南》笔记-Chapter16-应用程序设计辅助功能

有些软件需要开发多语言界面版本,如中文版和英文版,并且在软件里可以方便地切换界面语言。Qt为多语言界面提供了很好的支持,使用Qt的一些规则和工具,可以很方便地为应用程序开发提供多语言界面支持。用Qt开发多语言界面应用程序,主要包括以下几个步骤。(1)在程序设计阶段,程序代码中每一个用户可见的字符串都用tr()函数封装,以便Qt提取界面字符串用于生成翻译资源文件。用UI设计器可视化设计窗体时统一用一种语言,如汉语。

2026-09-23 06:15:00 544

原创 【Qt】《Qt 5.9 C++开发指南》笔记-Chapter15-多媒体

Qt多媒体模块提供了很多类,可以实现如下的一些功能:访问原始音频设备进行输入或输出;低延迟播放音效文件,如WAV文件;使用播放列表播放压缩的音频和视频文件,如mp3、wmv等;录制声音并且压制文件;使用摄像头进行预览、拍照和视频录制;音频文件解码到内存进行处理;录制音频或视频时,访问其视频帧或音频缓冲区;数字广播调谐和收听。如果在项目中使用视频播放功能,还需要加入下面的一行,以使用QVideoWidget或QGraphicsVideoItem进行视频播放。

2026-09-23 06:00:00 605

原创 【Qt】《Qt 5.9 C++开发指南》笔记-Chapter14-网络编程

TCP(Transmission Control Protocol)是一种被大多数Internet网络协议(如HTTP 和FTP)用于数据传输的低级网络协议,它是可靠的、面向流、面向连接的传输协议,特别适合用于连续数据传输。TCP通信必须先建立TCP连接,通信端分为客户端和服务器端(如原书的图14-2所示)。Qt提供QTcpSocket类和QTcpServer类用于建立TCP通信应用程序。服务器端程序必须使用QTcpServer用于端口监听,建立服务器;

2026-09-22 06:15:00 538

原创 【Qt】《Qt 5.9 C++开发指南》笔记-Chapter13-多线程

QThread类提供不依赖于平台的管理线程的方法。一个QThread类的对象管理一个线程,一般从QThread继承一个自定义类,并重定义虚函数run(),在run()函数里实现线程需要完成的任务。将应用程序的线程称为主线程,额外创建的线程称为工作线程。一般在主线程里创建工作线程,并调用start()开始执行工作线程的任务。

2026-09-22 06:00:00 490

原创 【Qt】《Qt 5.9 C++开发指南》笔记-Chapter12-自定义插件和库

Qt的UI设计器提供了很多GUI设计的界面组件,可以满足常见的界面设计需求。但是某些时候需要设计特殊的界面组件,而在UI设计器的组件面板里根本没有合适的组件,这时就需要设计自定义的界面组件。所有界面组件的基类是QWidget,要设计自定义的界面组件,可以从QWidget继承一个自定义的类,重定义其paintEvent()事件,利用Qt的绘图功能绘制组件外观,并实现需要的其他功能。

2026-09-21 06:15:00 497

原创 【Qt】《Qt 5.9 C++开发指南》笔记-Chapter11-数据库

Qt += sql这样会将Qt SQL模块中的所有类都包含进去,如果只使用其中的某些类,为避免冗余可以单独包含某个类。从原书的图11-2的SQL数据模型类的继承关系看,QSqlQueryModel是QSqlTableModel的父类。QSqlQueryModel封装了执行SELECT语句从数据库查询数据的功能,但是QSqlQueryModel只能作为只读数据源使用,不可以编辑数据。QSqlQueryModel类的主要接口函数见表11-10(省略了函数中的const关键字和缺省参数)。

2026-09-21 06:00:00 648

原创 【Qt】《Qt 5.9 C++开发指南》笔记-Chapter10-Data Visualization

Data Visualization的三维显示功能主要由3种三维图形类来实现,分别是三维柱状图类Q3DBars,三维空间散点类Q3DScatter,三维曲面类Q3DSurface。这3个类的父类是QAbstract3 DGraph,是从QWindow继承而来的,继承关系如原书的图10-1所示。Data Visualization与Qt Charts类似,都基于Qt的图形视图结构,所以一个三维图形也是由图表、序列、坐标轴等元素组成的。

2026-09-20 06:15:00 446

原创 【Qt】《Qt 5.9 C++开发指南》笔记-Chapter9-Qt Charts

Qt Charts模块是一组易于使用的图表组件,它基于Qt的Graphics View架构,其核心组件是QChartView和QChart。QChartView的父类是QGraphicsView,就是Graphics View架构中的视图组件,所以,QChart View是用于显示图表的视图。QChart的继承关系如原书的图9-1所示,可以看到,QChart是从QGraphicsItem继承而来的,所以,QChart是一种图形项。

2026-09-20 06:00:00 401

原创 【Qt】《Qt 5.9 C++开发指南》笔记-Chapter8-绘图

首先假设一个五角星的中心点是原点,第0个点在X轴上,五角星外接圆半径为100,计算出5个点的坐标,保存在points数组中。然后定义了一个QPainterPath类的变量starPath,用于记录画五角星的过程,就是几个点的连线过程,并且标注点的编号。使用QPainterPath的优点就是定义一个QPainterPath类型的变量记录一个复杂图形的绘制过程后,可以重复使用。虽然points数组中的点的坐标是假设五角星的中心点是原点,在绘制不同的五角星时只需将坐标平移到新的原点位置,就可以绘制不同的五角星。

2026-09-19 06:15:00 428

原创 【Qt】《Qt 5.9 C++开发指南》笔记-Chapter7-文件系统和文件读写

文本文件是指以纯文本格式存储的文件,例如用Qt Creator编写的C++程序的头文件(.h文件)和源程序文件(.cpp文件)。HTML和XML文件也是纯文本文件,只是其读取之后需要对内容进行解析之后再显示。Qt提供了两种读写纯文本文件的基本方法,一种是用QFile类的IODevice读写功能直接进行读写,另一种是利用QFile和QTextStream结合起来,用流(Stream)的方法进行文件读写。实例samp7_1演示了这两种方法读写文本文件,其运行时窗口如原书的图7-1所示。

2026-09-19 06:00:00 333

原创 【Qt】《Qt 5.9 C++开发指南》笔记-Chapter6-对话框与多窗体设计

Qt为应用程序设计提供了一些常用的标准对话框,如打开文件对话框、选择颜色对话框、信息提示和确认选择对话框、标准输入对话框等,用户无需再自己设计这些常用的对话框,这样可以减少程序设计工作量。在前面几章的实例中,或多或少地用到了其中的一些对话框。Qt预定义的各标准对话框的类,及其主要静态函数的功能见表6-1(由于输入参数一般较多,省略了函数的输入参数,只列出了函数的返回值类型)。表6-1 Qt预定义标准对话框对话框常用静态函数名称函数功能QFileDialog 文件对话框选择打开一个文件。

2026-09-18 06:15:00 320

原创 【Qt】《Qt 5.9 C++开发指南》笔记-Chapter5-ModelView结构

QStringListModel用于处理字符串列表的数据模型,它可以作为QListView的数据模型,在界面上显示和编辑字符串列表。QStringListModel的setStringList()函数可以初始化数据模型的字符串列表的内容,stringList()函数返回数据模型内的字符串列表,在关联的ListView组件里编辑修改数据后,数据都会及时更新到数据模型内的字符串列表里。

2026-09-18 06:00:00 341

原创 【Qt】《Qt 5.9 C++开发指南》笔记-Chapter4-常用界面设计组件

QComboBox是下拉列表框组件类,它提供一个下拉列表供用户选择,也可以直接当作一个QLineEdit用作输入。QComboBox除了显示可见下拉列表外,每个项(item,或称列表项)还可以关联一个QVariant类型的变量,用于存储一些不可见数据。QPlainTextEdit是一个多行文本编辑器,用于显示和编辑多行简单文本。实例samp4_6演示QComboBox和QPlainTextEdit的使用,其运行时界面如原书的图4-6所示。

2026-09-17 06:15:00 459

原创 【Qt】《Qt 5.9 C++开发指南》笔记-Chapter3-Qt类库概述

Qt本身并不是一种编程语言,它实质上是一个跨平台的C++开发类库,是用标准C++编写的类库,它为开发GUI应用程序和非GUI应用程序提供了各种类。Qt对标准C++进行了扩展,引入了一些新的概念和功能,例如信号与槽、对象属性等。Qt的元对象编译器(Meta-Object Compiler,MOC)是一个预处理器,在源程序被编译前先将这些Qt特性的程序转换为标准C++兼容的形式,然后再由标准C++编译器进行编译。

2026-09-17 06:00:00 393

原创 【Qt】《Qt 5.9 C++开发指南》笔记-Chapter2-GUI应用程序设计基础

完成功能后的qwdlgmanual.h文件中QWDlgManual类的完整定义如下。Q_OBJECTprivate://UI 创建与初始化//初始化信号与槽的链接//Underline的槽函数//Italic的槽函数//Bold的槽函数//设置字体颜色public:在QWDlgManual类的private部分,声明了界面上的各个组件的指针变量,这些界面组件都需要在QWDlgManual类的构造函数里创建并在窗体上布局。

2026-09-16 06:15:00 325

原创 【Qt】《Qt 5.9 C++开发指南》笔记-Chapter1-认识Qt

C++是一种通用的标准编程语言,使用任何编辑器都可以编写C++源程序,然后利用C++编译器对程序进行编译,就可以生成可执行的程序。为了方便进行C++程序的编写和编译,有各种综合开发环境(Integrated Developing Environment,IDE),如Visual Studio就是Windows平台上常见的编写C++程序的IDE。

2026-09-16 06:00:00 249

原创 【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter11-PE文件格式深入剖析

PE(Portable Executable,可移植的执行体)是微软可执行文件(.exe或.dll)采用的格式,PE格式的目标是使可执行文件可以在不同的CPU工作指令下运行,该格式可以兼容于Windows操作系统的多个版本。PE格式是操作系统工作方式的写照,PE文件头的数据供操作系统装载可执行文件使用,操作系统会根据PE文件头的信息把可执行文件载入内存,加载导入表中提供的动态链接库,根据重定位表修正代码等。

2026-09-15 20:29:15 419

原创 【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter10-其他常用Windows API编程知识

快捷方式是Windows提供的一种快速启动程序、打开文件或文件夹的方法,快捷方式的扩展名通常为.lnk,另外还有扩展名为.url的网页快捷方式等。快捷方式的相关属性包括快捷方式指向的目标文件路径、快捷方式自身路径、起始位置(工作目录)、快捷键、运行方式(常规窗口、最小化或最大化)、备注(描述)、图标和命令行参数等。快捷键属性指的是为目标文件设置一个特定线程热键,按下快捷键时会打开目标文件。

2026-09-14 07:15:00 495

原创 【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter9-WinSock网络编程

I/O完成端口为在多CPU系统上处理多个并发异步I/O请求提供了一种高效的线程模型。与在收到I/O请求时创建一个工作线程相比,处理多个并发异步I/O请求的进程可以通过将I/O完成端口与线程池结合使用以更快、更高效地完成。I/O完成端口是一个内核对象,但是I/O完成端口仅与创建它的进程相关联,不能在进程间共享。创建I/O完成端口对象的CreateIoCompletionPort函数并没有一个安全属性结构参数。

2026-09-14 07:00:00 444

原创 【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter8-Windows异常处理

向量化异常处理(Vectored Exception Handling,VEH)是对结构化异常处理的扩展,向量化异常处理是基于进程全局的,程序可以注册一个函数来监视或处理该程序的所有异常,当进程中的任何一个线程中发生异常时,都去调用注册的这个函数(异常处理程序)。程序可以通过调用AddVectoredExceptionHandler函数添加或者注册一个向量化异常处理程序,也可以多次调用AddVectoredExceptionHandler函数添加多个异常处理程序,所有向量化异常处理程序形成一个VEH链表。

2026-09-13 07:15:00 378

原创 【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter7-INI配置文件和注册表操作

操作系统和各种应用程序,通常需要使用某种方式来保存配置信息。.ini文件是Initialization File的缩写,即初始化文件,是Windows中配置文件所采用的存储格式,例如Windows目录中的Win.ini文件保存了桌面设置和与应用程序运行有关的信息,System.ini文件保存了与硬件配置有关的信息。INI文件是文本文件,可以使用任何文本编辑器对其进行修改,所以安全性不是很好。另外,INI文件的结构比较简单,无法保存格式复杂的数据,例如很长的二进制数据或换行的字符串等。

2026-09-13 07:00:00 198

原创 【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter6-动态链接库

程序中用到的Windows API函数都包含在动态链接库(Dynamic Link Library,DLL)中,其中3个最重要的动态链接库(DLL)分别是Kernel32.dll、User32.dll和Gdi32.dll。Kernel32.dll中包含的函数用来管理内存、进程以及线程等,User32.dll中包含的函数用来执行与用户界面相关的任务,例如创建窗口和发送消息等,Gdi32.dll中包含的函数用来绘制图像和显示文字等。

2026-09-12 07:15:00 282

原创 【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter5-剪贴板

许多文档、数据处理程序都提供了剪切、复制和粘贴功能,当用户选择剪切或复制菜单项时,程序会把数据传递到剪贴板,这些数据采用特定的格式,例如文本、位图;当用户选择粘贴菜单项后,程序会检查剪贴板中是否包含本程序可用的数据格式,如果包含,则把数据从剪贴板传递到该程序。Windows剪贴板是一种比较简单的同时开销比较小的进程间通信方式,使用剪贴板传递数据使开发人员不必过多地考虑数据存储的共享空间,简化通信过程。Windows系统支持剪贴板IPC的基本机制是由系统预留的一块全局共享内存,可被各进程用于暂时存储数据。

2026-09-12 07:00:00 209

原创 【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter4-进程

进程(Process)是系统中正在运行的一个可执行文件,可执行文件一旦运行就成为进程,是一个动态的概念,是一个活动的实体。进程是一个正在运行的可执行文件所使用资源的总和,包括虚拟地址空间、代码、数据、对象句柄、环境变量等。当一个可执行文件被同时多次执行时,产生的是多个进程,虽然它们由同一个文件执行而来,但是它们的虚拟地址空间相互隔离,类似于不同的可执行文件在执行。运行一个可执行文件就是创建了一个进程。本章将学习如何在程序中动态创建一个进程,多个进程之间如何进行通信,进程的枚举和调试等。

2026-09-11 07:15:00 338

原创 【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter3-文件、驱动器和目录操作

文件是系统中操作最为频繁的对象,例如文本文档、音视频、可执行文件等。文件存储的载体是磁盘,我们先来学习与磁盘有关的概念。磁盘(Disk)是指利用磁记录技术存储数据的存储器,早期计算机使用的磁盘是软磁盘(Soft Disk,简称软盘),现在常用的磁盘是硬磁盘(Hard Disk,简称硬盘)。硬盘有机械硬盘(Hard Disk Drive,HDD)和固态硬盘(Solid State Drive,SSD)之分。

2026-09-11 07:00:00 341

原创 【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter2-内存管理

计算机的技术发展过程经历了以下阶段:流水线、超标量、超线程、多核心、超频,计算机性能可谓飞速提高。CPU的发展历史可以大体归结为以下几个阶段(以Intel为例):Intel 4004(1971—1973年,4位和8位CPU),Intel 8080(1974—1977年,8位CPU),Intel 8086(1978—1984年,16位CPU),Intel 80386(1985—1992年,32位CPU),奔腾系列(1993—2005年,32/64位CPU),酷睿系列(2005年至今,32/64位CPU)。

2026-09-10 07:15:00 304

原创 【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter1-多线程编程

例如,当工作线程完成自己的工作后,可以向主线程发送自定义的WM_XXX消息来通知主线程,因此主线程不需要随时检查工作线程是否已经完成某项操作或工作线程是否结束,只需要在窗口过程中处理WM_XXX消息。当然,主线程也可以向工作线程发送自定义消息,但是工作线程需要维护一个消息循环。如果工作线程创建了窗口,则还需要有一个窗口过程,这违背了多线程程序设计的原则,所以发送自定义消息的方法通常用于工作线程向主线程发送。工作线程向主线程发送自定义消息比较简单,调用SendMessage/PostMessage函数即可。

2026-09-10 07:00:00 708

原创 【Windows】《深入浅出Windows API程序设计:编程基础篇》笔记-Chapter10-通用对话框

通用对话框库包含一组用于执行常见应用程序任务的对话框,例如打开文件、选择颜色和打印文档等,通用对话框实现了应用程序用户界面的一致性,例如单击不同程序的文件菜单下的打开文件子菜单项,通常都会弹出相同的打开文件对话框。要弹出打开文件、选择颜色和打印文档等通用对话框用的是不同的函数,在使用这些函数时,基本上都要初始化一个结构的一些字段并将该结构的指针传递给这些函数。函数会创建并显示相应的对话框,当用户关闭对话框时,函数将控制权返还给程序,然后程序可以从先前传递给函数的结构中获取需要的信息。

2026-09-09 07:15:00 465

原创 【Windows】《深入浅出Windows API程序设计:编程基础篇》笔记-Chapter9-对话框

在图形用户界面中,对话框是一种特殊的窗口,用来向用户显示信息(例如MessageBox消息框),或者在需要的时候获得用户的输入以作出响应(例如记事本Notepad的查找、替换对话框)。之所以称之为“对话框”,是因为它们使计算机和用户之间构成了一个对话:通知用户一些信息,或者是请求用户的输入,又或者两者皆有。通常在可以打开对话框的菜单项后面加上“…”,例如“文件”菜单下的“另存为…”表示会打开一个选择文件名的对话框。对话框中的按钮、文本框和图标等称为“子窗口控件”。

2026-09-09 07:00:00 607

原创 【Windows】《深入浅出Windows API程序设计:编程基础篇》笔记-Chapter8-子窗口控件

工具栏具有简单、直接、美观的特点,但是如果菜单项比较多,想要全部显示可能会占据大量的空间。为此可以在调用CreateWindowEx函数创建工具栏时指定CCS_ADJUSTABLE样式启用工具栏的自定义功能,用户可以自由排列工具栏按钮,或者仅选择显示用户感兴趣的按钮。在指定CCS_ADJUSTABLE样式后,用户可以将按钮拖动到新位置或通过将其拖离工具栏来删除按钮(按住Shift键)。此外,当用户双击工具栏的时候,会弹出一个自定义工具栏对话框,如原书的图8.23所示。

2026-09-08 07:15:00 471

原创 【Windows】《深入浅出Windows API程序设计:编程基础篇》笔记-Chapter7-位图

位图也称点阵图像或光栅图像,通过使用一格一格的像素点来描述图像。位图的文件类型有很多,例如.bmp、.jpg、.png、.gif等。位图由一个个像素点组成。当放大位图时,像素点随之放大,但是每个像素点所表示的颜色是单一的,所以在位图放大以后就会出现马赛克状。位图的优点是色彩比较丰富,可以逼真地展现自然界的各类实物,颜色信息越多,图像色彩越丰富,但是占用的存储空间就越大。

2026-09-08 07:00:00 357

原创 【Windows】《深入浅出Windows API程序设计:编程基础篇》笔记-Chapter6-菜单和其他资源

通过自定义资源,可以在可执行文件中添加任何格式的数据,可以是二进制数据,也可以是一个磁盘文件。自定义资源的用途非常广泛,例如稍微复杂一点的程序除了有一个主程序,还有动态链接库文件。可以把.dll文件打包到可执行文件中,用户运行程序的时候把它们释放到本地;可以把病毒木马程序嵌入可执行文件中,用户运行程序的时候,释放出来并执行;程序运行过程中,可能需要一些数据,可以作为自定义资源嵌入可执行文件中,需要的时候随时加载,等等。

2026-09-07 07:15:00 272

原创 【Windows】《深入浅出Windows API程序设计:编程基础篇》笔记-Chapter5-计时器(定时器)和时间

参数uElapse指定时间间隔,以毫秒为单位。如果uElapse参数小于USER_TIMER_MINIMUM (0x0000000A),则时间间隔会被设置为USER_TIMER_MINIMUM;如果uElapse参数大于USER_TIMER_MAXIMUM(0x7FFFFFFF),则时间间隔会被设置为USER_TIMER_MAXIMUM。即 uElapse参数可以设置为10~2147483647 ms(大约24.8天)。如果指定的时间间隔已过,系统就会通知应用程序。

2026-09-07 07:00:00 351

原创 【Windows】《深入浅出Windows API程序设计:编程基础篇》笔记-Chapter4-键盘与鼠标

键盘和鼠标是个人计算机中常用的输入设备。通过键盘可以将字母、数字、标点符号等输入计算机中,从而向计算机发出命令;鼠标可以对屏幕上的光标进行定位,并通过鼠标按钮和滚轮对光标所处位置的屏幕元素进行操作。一个应用程序应该响应用户的键盘和鼠标输入事件。

2026-09-06 10:09:38 309

原创 【Windows】《深入浅出Windows API程序设计:编程基础篇》笔记-Chapter3-GDI绘图

MM_ISOTROPIC和MM_ANISOTROPIC属于程序自定义的映射模式,对于6种预定义的映射模式(MM_TEXT、MM_HIENGLISH、MM_LOENGLISH、MM_HIMETRIC、MM_LOMETRIC和MM_TWIPS),当调用SetMapMode函数设置为其中一种映射模式时,系统将设置其窗口范围和视口范围,这两个范围不能改变。

2026-09-06 10:09:14 351

原创 【Windows】《深入浅出Windows API程序设计:编程基础篇》笔记-Chapter2-Windows窗口程序

本章首先带领大家认识一下Windows窗口程序,然后详细介绍开发一个标准Windows窗口程序的步骤与原理。很多内容都是Windows的规定。对于刚刚接触Windows程序设计的读者,第2章或许是全书最难的,但是只要明白了本章所涉及的原理,后面章节的学习就会顺理成章。

2026-09-05 21:10:57 380

原创 【Windows】《深入浅出Windows API程序设计:编程基础篇》笔记-Chapter1-基础知识

本书是Windows API程序设计的入门图书,提供大量的示例程序,主要介绍学习Windows程序设计必备的基础知识,以及一个程序界面所需的菜单、图标光标、子窗口控件、其他资源和对话框等相关内容,并通过Photoshop切片和自绘技术实现一个优雅的程序界面。通过阅读本书,读者可以对Windows程序设计有更加深入的认识,并将其应用到实际场景中。

2026-09-05 08:56:26 304

原创 【Code】《代码整洁之道》笔记-附录B-org.jfree.date.SerialDate

代码清单B-15 SpreadsheetDateFactory.java(最终版本)代码清单B-16 SpreadsheetDate.java(最终版本)代码清单B-14 DayDateFactory.java(最终版本)代码清单B-10 DateInterval.java(最终版本)代码清单B-12 WeekdayRange.java(最终版本)代码清单B-11 WeekInMonth.java(最终版本)代码清单B-13 DateUtil.java(最终版本)

2025-04-16 10:39:39 529

原创 【Code】《代码整洁之道》笔记-附录A-并发编程II

本附录扩充了第13章的内容,由一组相互独立的主题组成,你可以按随意顺序阅读。为了实现这样的阅读方式,节与节之间存在一些重复内容。

2025-04-16 10:38:43 1387

原创 【Code】《代码整洁之道》笔记-Chapter17-味道与启发

Martin Fowler在其大作《重构:改善既有代码的设计》(Refactoring: Improving the Design of Existing Code)中指出了许多不同的“代码的坏味道”。下面的清单包括很多Martin指出的“坏味道”,还添加了更多我自己提出的“坏味道”,也包括我借以历练本业的其他珍宝与启发。我借由遍览和重构几个不同的程序总结出这个清单。每次修改,我都问自己为什么要这样改,把修改的原因写下来,结果就得到相当长的清单,该清单列出了在读代码时让我闻起来不舒服的味道。

2025-04-15 17:43:48 1363

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除