博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编程的97件事——8、童子军军规
阅读量:5132 次
发布时间:2019-06-13

本文共 2893 字,大约阅读时间需要 9 分钟。

童子军军规

童子军有一条规则:“总是保证营地在离开时比发现时整洁。”如果你发现地上是乱的,不论是谁弄乱的,你都要收拾干净。你要有意的为一下批露营者改善营地环境。实际上这条规则,是童子军之父,Robert Stephenson Smyth Baden-Powell写的:“努力留下一个比你发现时更好的世界。”

如果我们在编码时也新遵循一条类似的规则:“总是保证模块签入时比签出时整洁”。无论模块的原作者是谁,如果我们总是作出一些努力,无论多么微小,去改进模块,结果会怎样?

我认为如果我们都能遵守这条简单的规则,我们就能看到我们的软件系统不再无情地恶化下去。取而代之的是,我们的系统会发展地越来越好。我们会看到团队将系统看作一个整体来关注,而不是每个成员只关心自己负责的那一小部分。

我认为这样的要求并不过分。你不必保证每个你要签入的模块是完美的。你只要让这个模块签入时比签出时好一点点。当然,这意味着你为这个模块添加的代码必须是干净的。这也意味着你签入模块前至少整理了一个模块中其他的部分。你也许只是改进了一个变量的命名,或是将一个长方法分割成了两个更小的方法。你可能中断了一个循环依赖,或增加了一个接口以解耦规则对细节的耦合。

坦白来说,这就像平常的得体做法一样——就像你上了厕所要洗手,或者要将垃圾扔进垃圾筒而不是地上。实际上留下混乱的代码就像乱扔垃圾一样,是不被社会所接受的。它本就不该发生。

不仅如此,关注我们自己的代码是一回事,关注团队的代码完全是另外一回事。团队成员互相帮助,互相整理代码。他们遵守童子军军规是因为这对每一个人都好,而不只是对自己有好处。

by


The Boy Scout Rule

The Boy Scouts have a rule: "Always leave the campground cleaner than you found it." If you find a mess on the ground, you clean it up regardless of who might have made the mess. You intentionally improve the environment for the next group of campers. Actually the original form of that rule, written by Robert Stephenson Smyth Baden-Powell, the father of scouting, was "Try and leave this world a little better than you found it."

What if we followed a similar rule in our code: "Always check a module in cleaner than when you checked it out." No matter who the original author was, what if we always made some effort, no matter how small, to improve the module. What would be the result?

I think if we all followed that simple rule, we'd see the end of the relentless deterioration of our software systems. Instead, our systems would gradually get better and better as they evolved. We'd also see teams caring for the system as a whole, rather than just individuals caring for their own small little part.

I don't think this rule is too much to ask. You don't have to make every module perfect before you check it in. You simply have to make it a little bit better than when you checked it out. Of course, this means that any code you add to a module must be clean. It also means that you clean up at least one other thing before you check the module back in. You might simply improve the name of one variable, or split one long function into two smaller functions. You might break a circular dependency, or add an interface to decouple policy from detail.

Frankly, this just sounds like common decency to me — like washing your hands after you use the restroom, or putting your trash in the bin instead of dropping it on the floor. Indeed the act of leaving a mess in the code should be as socially unacceptable as littering. It should be something that just isn't done.

But it's more than that. Caring for our own code is one thing. Caring for the team's code is quite another. Teams help each other, and clean up after each other. They follow the Boy Scout rule because it's good for everyone, not just good for themselves.

by

转载于:https://www.cnblogs.com/micro-potato/p/6985939.html

你可能感兴趣的文章
css 选择器
查看>>
线程池
查看>>
qqq
查看>>
数据库最大连接数
查看>>
java实现文件的移动
查看>>
CDQ解决一些三维偏序的问题
查看>>
CocoaPods在OS X Yosemite上突然不能用了的解决办法
查看>>
移动端bug集合
查看>>
day07_mysql基本操作
查看>>
js闭包的用途
查看>>
分布式系统关注点(8)——99%的人都能看懂的「熔断」以及最佳实践
查看>>
黑客攻防技术宝典web实战篇:利用信息泄露习题
查看>>
临时和永久关闭Selinux
查看>>
ES6学习笔记(四)-数值扩展
查看>>
类似腾讯手机管家应用android源码
查看>>
Ubuntu里面vi编辑器在编辑文本时 如何在所有行行首或行尾插入字符
查看>>
Oracle Procedure
查看>>
2017.12.7 URAT 串口通信
查看>>
mysql隔离级别与锁,接口并发响应速度的关系(2)
查看>>
STC51几种简单的延时函数
查看>>