惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
B
Blog RSS Feed
Y
Y Combinator Blog
T
Tailwind CSS Blog
博客园 - 三生石上(FineUI控件)
J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
aimingoo的专栏
aimingoo的专栏
Jina AI
Jina AI
The GitHub Blog
The GitHub Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
A
About on SuperTechFans
H
Hackread – Cybersecurity News, Data Breaches, AI and More
D
Docker
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Check Point Blog
M
MIT News - Artificial intelligence
Last Week in AI
Last Week in AI
V
V2EX
腾讯CDC
F
Fortinet All Blogs
博客园 - 叶小钗
T
The Blog of Author Tim Ferriss

AirCloud 日常

快速生成 AI 应用的框架对比:Gradio、Streamlit 和 Dash Node.js 二进制打包:pkg 原理解析 - AirCloud 日常 基于 K8s 容器化运行 web 端对端测试 关于 JupyterLab cell 输出保持问题的设计方案 - AirCloud 日常 读完 type-challenges,我总结了如下常用的内容 - AirCloud 日常 使用 Rust 开发 python 模块 基于 Container 架构的多框架前端应用 - AirCloud 日常 我们应该如何进行 Code Review ? - AirCloud 日常 Clean Code》读书笔记 - AirCloud 日常 使用 fst-json 自动生成更快的 json 序列化方法 《代码精进之路》与《代码整洁之道》-读书笔记 - AirCloud 日常 《架构整洁之道》-读书笔记 - AirCloud 日常 React Conf 2021 内容概要 - AirCloud 日常 PC 开发技术选型:Electron 不是银弹 - AirCloud 日常 web 页面内存分析与生产环境禁用 console - AirCloud 日常 通过优化合成层优化性能 - AirCloud 日常 了解 StackOverFlow 上面最受欢迎的语言 Rust - AirCloud 日常 一些性能相关的 JavaScript 代码编写建议规范 - AirCloud 日常 如何让你的精力更多的用于提高技术深度 - AirCloud 日常
《重构》-读书笔记 - AirCloud 日常
2022-01-02 · via AirCloud 日常

开始重构

如果你要给程序添加一个特性,但发现代码因缺乏良好的结构而不易于进行更改,那就先重构那个程序,使其比较容易添加该特性,然后再添加该特性。
重构前,先检查自己是否有一套可靠的测试集,这些测试必须有自我检视的能力。

事实上很多时候,测试集都是被我们忽略的

营地法则:保证你离开的时候代码库一定比原来的更加健壮。

什么是重构?根据重构这本书的定义,如果有人说他们的代码在重构过程中有一两天的时间是不可用的,基本上可以确定,他们在做的事情不是重构。

何时重构

事不过三法则(Rule of Three):第一次做某件事情的时候只管去做,第二次做某件事情的时候会产生反感,但无论如何还是可以去做,第三次再做类似的事情,你就应该重构。

在《代码精进之路》这本书中,也提到了这个原则。

另外的一个时机是,每次要修改时,首先令修改很容易(警告:这件事有时候会很难),然后再进行这次的修改。

比如,笔者最近在做一个长链接客户端 SDK,最初这个 SDK 功能很简单,我直接加功能即可,后面有一次当我要修改的时候,我发现这个 SDK 的修改已经变得异常复杂了,这个时候我知道我应该重构了。

重构法则

这里对一些我们实际场景中遇到,但是通常会被我们忽视的一些法则进行列举。

霰弹式修改

如果我们代码中的模块特别多,如果我们每次遇到一个变化都需要在不同的小模块中做许多小修改,我们所面临的坏味道就是霰弹式修改。
这个时候我们需要思考重构,最好我们不同的模块都是正交的。

慎重注释

有的时候,我们写注释是因为这段对应的代码逻辑很糟糕。
因此当你感觉需要撰写注释的时候,请先尝试重构,试着将所有的注释变成多余。

提炼变量

对于复杂语句,提炼变量可以增加可读性。