# 像 clean code 一样打扫屋子

> 把 Clean Code 的单一职责、DRY、可维护性与持续重构类比到卧室厨房收纳，并顺带谈 Sonar 与「能住就行」的自嘲。

- 发布于: 2025-03-13
- 原文: https://shanyue.tech/posts/clean-house/
- 标签: others

---

空闲时间，我常常会按照最佳实践和 Sonar 规则对旧代码做一些 clean code 的工作。每当把那些乱七八糟的代码整理成结构清晰的样子，确实会让人感到有成就感。

我感觉打扫屋子和整理代码，本质上差不多。

它们都是把混乱变得井井有条的过程。不过，我老实承认，我总是更愿意花时间去捣鼓代码，而不是收拾房间。可能是因为代码改完立马就能看到效果，而打扫完的房间？没两天又是一团糟。

不过，这不妨碍我胡思乱想两者之间的相似之处。

## 单一职责原则（Single Responsibility Principle）

这是编程里最基本的原则之一。放到家里也是一样：

- 卧室就该是睡觉的地方，别把它变成临时办公室或者堆满杂物的仓库
- 厨房就是做饭的，别塞满一堆跟吃饭无关的东西
- ~~书房是工作学习的区域，最好别放那些分散注意力的玩意儿。~~ 哦对了，我没有书房。

当空间功能乱成一锅粥的时候，东西就会到处乱放，然后你的家就彻底沦陷了。给空间划清界限，这是保持整洁的第一步。

这样一来，当我需要找东西时，起码知道应该去哪个区域翻找。

## 消除重复（DRY - Don't Repeat Yourself）

在家居环境中，"DRY"原则就是别买一堆差不多的东西：

- 没必要家里放三四把几乎一模一样的剪刀
- 功能重复的厨具也别买太多
- 十几条一样风格的裤子？算了吧

减少重复不仅能省空间，还能少纠结选哪个。

每次整理衣柜，我都会被自己拥有的一大堆几乎一模一样的裤子惊到。

当然了，对女朋友来说，衣服可不只是实用品，更是装饰品、时尚品。所以对她而言，衣服这事儿根本不存在"重复"的概念。

## 可维护性（Maintainability）

好代码应该容易维护，家里也是这个道理：

- 常用的东西就放在随手可及的地方
- 弄个靠谱的收纳系统，让东西回到该去的地方变得顺理成章
- 养成定期整理的习惯，就像定期重构代码一样

我发现，真正省时间的不是少打扫，而是搞一个容易维护的系统，让日常收拾变得不那么痛苦。

## 持续重构（Continuous Refactoring）

厉害的程序员不会等到代码烂得不行才开始重构。同理，我们的生活空间也需要不断小打小闹地调整：

- 每季度来个大扫除，扔掉那些再也用不着的破烂
- 根据使用频率调整东西的位置。天天用的东西放手边，几乎不用的就塞角落去
- 跟着生活变化调整家居布局。我喜欢每半年挪一次家具，感觉像是搬了新家一样，又不用花钱

积少成多，这些小调整能避免你家变成一个需要大刀阔斧整改的垃圾场。

## 测试驱动（Test-Driven）

编程中，我们先写测试，再写实现。家居整理也可以这么玩：

- 买新东西前，先想想它要放哪儿、多久用一次。比如，我买了豆浆机，得提前规划它的安身之处，以及我到底多久会用它一次。

这种先考虑后行动的思路，能避免买回来的东西无处安放或者吃灰。

## 结语

把"Clean Code"的套路用在家务上，不光能让我们住得更舒适，还能提高生活效率和幸福感。

说真的，虽然我花在收拾代码上的时间远比收拾房间多，但每次真正动手打扫时，那种把一团乱麻变得井井有条的快感，跟重构代码时的感觉出奇地像。

虽然我对打扫卫生想了不少，但老实说，大多数时候我的代码处在一个**能跑就行**的状态，而我的房间则是**能住就行**的水平。
