Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit e196417

Browse files
[docs update]完善重构这篇文章
1 parent bd61ba6 commit e196417

File tree

3 files changed

+9
-2
lines changed

3 files changed

+9
-2
lines changed

‎docs/cs-basics/operating-system/linux-intro.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ inode 是 Linux/Unix 文件系统的基础。那 inode 到是什么?有什么作
7070

7171
通过以下五点可以概括 inode 到底是什么:
7272

73-
1. 硬盘的最小存储单位是扇区(Sector),块(block)由多个扇区组成。文件数据存储在块中。块的最常见的大小是 4kb,约为 8 个连续的扇区组成(每个扇区存储 512 字节)。一个文件可能会占用多个 block,但是一个块只能存放一个文件。虽然,我们将文件存储在了块(block)中,但是我们还需要一个空间来存储文件的 **元信息 metadata**:如某个文件被分成几块、每一块在的地址、文件拥有者,创建时间,权限,大小等。这种 **存储文件元信息的区域就叫 inode**,译为索引节点:**i(index)+node****每个文件都有一个唯一的 inode,存储文件的元信息。**
73+
1. 硬盘以扇区 (Sector) 为最小物理存储单位,而操作系统和文件系统以块 (Block) 为单位进行读写,块由多个扇区组成。文件数据存储在这些块中。现代硬盘扇区通常为 4KB,与一些常见块大小相同,但操作系统也支持更大的块大小,以提升大文件读写性能。文件元信息(例如权限、大小、修改时间以及数据块位置)存储在 inode(索引节点)中。每个文件都有唯一的 inode。inode 本身不存储文件数据,而是存储指向数据块的指针,操作系统通过这些指针找到并读取文件数据。 固态硬盘 (SSD) 虽然没有物理扇区,但使用逻辑块,其概念与传统硬盘的块类似。
7474
2. inode 是一种固定大小的数据结构,其大小在文件系统创建时就确定了,并且在文件的生命周期内保持不变。
7575
3. inode 的访问速度非常快,因为系统可以直接通过 inode 号码定位到文件的元数据信息,无需遍历整个文件系统。
7676
4. inode 的数量是有限的,每个文件系统只能包含固定数量的 inode。这意味着当文件系统中的 inode 用完时,无法再创建新的文件或目录,即使磁盘上还有可用空间。因此,在创建文件系统时,需要根据文件和目录的预期数量来合理分配 inode 的数量。

‎docs/database/mysql/mysql-questions-01.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ MySQL 中没有专门的布尔类型,而是用 TINYINT(1) 类型来表示布
193193
- **分析器:** 没有命中缓存的话,SQL 语句就会经过分析器,分析器说白了就是要先看你的 SQL 语句要干嘛,再检查你的 SQL 语句语法是否正确。
194194
- **优化器:** 按照 MySQL 认为最优的方案去执行。
195195
- **执行器:** 执行语句,然后从存储引擎返回数据。 执行语句之前会先判断是否有权限,如果没有权限的话,就会报错。
196-
- **插件式存储引擎**:主要负责数据的存储和读取,采用的是插件式架构,支持 InnoDB、MyISAM、Memory 等多种存储引擎。
196+
- **插件式存储引擎**:主要负责数据的存储和读取,采用的是插件式架构,支持 InnoDB、MyISAM、Memory 等多种存储引擎。InnoDB 是 MySQL 的默认存储引擎,绝大部分场景使用 InnoDB 就是最好的选择。
197197

198198
## MySQL 存储引擎
199199

‎docs/system-design/basis/refactoring.md‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@ category: 代码质量
5454

5555
> 重构的唯一目的就是让我们开发更快,用更少的工作量创造更大的价值。
5656
57+
## 性能优化就是重构吗?
58+
59+
重构的目的是提高代码的可读性、可维护性和灵活性,它关注的是代码的内部结构——如何让开发者更容易理解代码,如何让后续的功能开发和维护更加高效。而性能优化则是为了让代码运行得更快、占用更少的资源,它关注的是程序的外部表现——如何减少响应时间、降低资源消耗、提升系统吞吐量。这两者看似对立,但实际上它们的目标是统一的,都是为了提高软件的整体质量。
60+
61+
在实际开发中,理想的做法是首先**确保代码的可读性和可维护性**,然后根据实际需求选择合适的性能优化手段。优秀的软件设计不是一味追求性能最大化,而是要在可维护性和性能之间找到平衡。通过这种方式,我们可以打造既**易于管理**又具有**良好性能**的软件系统。
62+
5763
## 何时进行重构?
5864

5965
重构在是开发过程中随时可以进行的,见机行事即可,并不需要单独分配一两天的时间专门用来重构。
@@ -132,6 +138,7 @@ Code Review 可以非常有效提高代码的整体质量,它会帮助我们
132138

133139
除了可以在重构项目代码的过程中练习精进重构之外,你还可以有下面这些手段:
134140

141+
- [当我重构时,我在想些什么](https://mp.weixin.qq.com/s/pFaFKMXzNCOuW2SD9Co40g):转转技术的这篇文章总结了常见的重构场景和重构方式。
135142
- [重构实战练习](https://linesh.gitbook.io/refactoring/):通过几个小案例一步一步带你学习重构!
136143
- [设计模式+重构学习网站](https://refactoringguru.cn/):免费在线学习代码重构、 设计模式、 SOLID 原则 (单一职责、 开闭原则、 里氏替换、 接口隔离以及依赖反转) 。
137144
- [IDEA 官方文档的代码重构教程](https://www.jetbrains.com/help/idea/refactoring-source-code.html#popular-refactorings):教你如何使用 IDEA 进行重构。

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /