空闲时间,我常常会按照最佳实践和 Sonar 规则对旧代码做一些 clean code 的工作。每当把那些乱七八糟的代码整理成结构清晰的样子,确实会让人感到有成就感。
我感觉打扫屋子和整理代码,本质上差不多。
它们都是把混乱变得井井有条的过程。不过,我老实承认,我总是更愿意花时间去捣鼓代码,而不是收拾房间。可能是因为代码改完立马就能看到效果,而打扫完的房间?没两天又是一团糟。
不过,这不妨碍我胡思乱想两者之间的相似之处。
单一职责原则(Single Responsibility Principle)
这是编程里最基本的原则之一。放到家里也是一样:
- 卧室就该是睡觉的地方,别把它变成临时办公室或者堆满杂物的仓库
- 厨房就是做饭的,别塞满一堆跟吃饭无关的东西
书房是工作学习的区域,最好别放那些分散注意力的玩意儿。哦对了,我没有书房。
当空间功能乱成一锅粥的时候,东西就会到处乱放,然后你的家就彻底沦陷了。给空间划清界限,这是保持整洁的第一步。
这样一来,当我需要找东西时,起码知道应该去哪个区域翻找。
消除重复(DRY - Don’t Repeat Yourself)
在家居环境中,“DRY”原则就是别买一堆差不多的东西:
- 没必要家里放三四把几乎一模一样的剪刀
- 功能重复的厨具也别买太多
- 十几条一样风格的裤子?算了吧
减少重复不仅能省空间,还能少纠结选哪个。
每次整理衣柜,我都会被自己拥有的一大堆几乎一模一样的裤子惊到。
当然了,对女朋友来说,衣服可不只是实用品,更是装饰品、时尚品。所以对她而言,衣服这事儿根本不存在”重复”的概念。
可维护性(Maintainability)
好代码应该容易维护,家里也是这个道理:
- 常用的东西就放在随手可及的地方
- 弄个靠谱的收纳系统,让东西回到该去的地方变得顺理成章
- 养成定期整理的习惯,就像定期重构代码一样
我发现,真正省时间的不是少打扫,而是搞一个容易维护的系统,让日常收拾变得不那么痛苦。
持续重构(Continuous Refactoring)
厉害的程序员不会等到代码烂得不行才开始重构。同理,我们的生活空间也需要不断小打小闹地调整:
- 每季度来个大扫除,扔掉那些再也用不着的破烂
- 根据使用频率调整东西的位置。天天用的东西放手边,几乎不用的就塞角落去
- 跟着生活变化调整家居布局。我喜欢每半年挪一次家具,感觉像是搬了新家一样,又不用花钱
积少成多,这些小调整能避免你家变成一个需要大刀阔斧整改的垃圾场。
测试驱动(Test-Driven)
编程中,我们先写测试,再写实现。家居整理也可以这么玩:
- 买新东西前,先想想它要放哪儿、多久用一次。比如,我买了豆浆机,得提前规划它的安身之处,以及我到底多久会用它一次。
这种先考虑后行动的思路,能避免买回来的东西无处安放或者吃灰。
结语
把”Clean Code”的套路用在家务上,不光能让我们住得更舒适,还能提高生活效率和幸福感。
说真的,虽然我花在收拾代码上的时间远比收拾房间多,但每次真正动手打扫时,那种把一团乱麻变得井井有条的快感,跟重构代码时的感觉出奇地像。
虽然我对打扫卫生想了不少,但老实说,大多数时候我的代码处在一个能跑就行的状态,而我的房间则是能住就行的水平。