碎碎念-代码中的坏味道(二十一)

357 阅读2分钟

前言

做一件事情的时候,聪明的人考虑未来三到五年,厉害的人考虑五到十年,真正厉害的人考虑未来十到二十年。

现在在敲的代码,在十年后可能不值一文,但是思考这件事情永远都不会过时。

今天继续来讲一讲如何编写高质量的代码

代码中的坏味道

发散式变化

什么是发散式变化?举个例子。如果因为需求A,你需要修改C这个类。如果因为需求B,你还是需要修改C这个类。A与B可能是比较不相关的需求。那么这就是所谓的发散式变化。 个人觉得发散式变化说的有些绕口,可以理解为一个类应该只负责一件事情会比较好理解一些。

遇到一个类没有负责一件事情的时候,我们应该运用Extract Class或者Extract SubClass来抽取这个类里面的信息,将一部分信息抽取到另外一个类里面。这样需求A只会影响C1,需求B只会影响到处C2。这样就比较好一些。

霰弹式修改

发散式变化恰恰相反,霰弹式修改是因为一个需求导致多个类有许多小修改的情况。

这个时候可以使用Move Method或者Move Field来进行优化代码。将多个需要修改的地方抽象到一个类里面。

小结下:上面两种代码中的坏味道其实都有一个统一的原则就是一个修改点因为尽量之影响一个类。一个类的变化也只会反应同给一个修改点。两者尽量是一一对应的关系。

关于写作

以后这里每天都会写一篇文章,题材不限,内容不限,字数不限。尽量把自己每天的思考都放入其中。

如果这篇文章给你带来了一些帮助,可以动动手指点个赞,顺便关注一波就更好了。

如果上面都没有,那么写下读完之后最想说的话?有效的反馈和你的鼓励是对我最大的帮助。

另外打算把博客给重新捡起来了。欢迎大家来访问吃西瓜

我是shane。今天是2019年8月30日。百天写作计划的第三十七天,37/100。