---
title: workspace 里的编程卫生习惯
date: '2018-10-31 15:25:52'
draft: false
summary: 程序有没有“味道”，往往不只体现在代码本身，还体现在提交边界、临时修改、注释残留和你对改动的掌控程度。
slug: programming-hygiene-shows-up-in-your-workspace
syndication:
- platform: Weibo
  url: https://weibo.com/1648815335/H0vmg2Sr9
tags:
- programming
- git
- engineering
topics:
- software-engineering
type: post
---

编程的卫生习惯

这个不是要吐槽程序员的个人卫生，个人卫生习惯和写程序关系不大，主要说说写程序的卫生习惯。这种习惯吧，会让人写出有『味道』的程序，有时候虽然说不出问题在哪，但就是感觉有不好的气味。

比如，有个坏习惯就是本地的 workspace 不干净，每次提交都要小心选择提交文件，不能放心的通过 commit -a 提交。workspace 里包含了诸如临时文件，同一个文件的多个版本，多次修改的内容堆积等。这主要原因是用老式的版本管理工具遗留的恶习，没有充分利用 git 提供的本地分支以及 stash 暂存能力。更本质的原因是写代码前对要解决的问题没有一个预估，没有设置阶段性的提交目标。
建议好好再看看前几天转的 linus 那篇谈 git 的视频，大神搞了个分布式的 git 就是要让我们摆脱老式版本管理工具带来的恶习。有个评估方法就是，每次提交的时候，如果发现不敢 commit -a，或者不能一句话描述清楚 commit log，就要想想，这次的修改是不是把多个目标混在一起了，是不是中途插入了任务，但自己没有用分支或者 stash 解决。

还有一个坏习惯是重复检查，重复保存，还记得微博上有人发过的通过 for 循环 3 次调用 save 方法的。主要原因是没有理清楚逻辑，对自己写的代码没信心，或者对依赖的库没信心，老觉得不放心，就和保存文件的时候 Control + S 多次的心理一样。

再比如，注释掉的代码不删掉，老觉得万一哪一天有用，和收藏旧物品一个心理。

说说写程序中，你还遇到过哪些不卫生的习惯？
