25:写个漂亮的代码
先要有设计,再谈过度设计
一段代码在写好之后,被人阅读的次数要远远大于修改的次数,如果站在让别人更好理解阅读的角度来写代码,就会大不相同。
在工作的前四年,我写代码的标准一直都是:可以稳定运行,第一眼看起来不那么让人恶心。
但我本质上还是想写好代码的,写让人赏心悦目的代码,所以我看了好几遍的《阿里巴巴Java开发手册》和《设计模式之美》,我也知道其中的一些写代码的规范和优点。
但我几乎从来不会去遵循,原因有很多比如,写出好的代码也不会给我带来太大的好处,大家都写垃圾代码有人比我写的还垃圾,我写垃圾代码也没什么坏处,没人说我什么。
去年开始找工作的时候,我想如果可以去一个业务牛逼的公司最好(高并发、大数据),如果我的能力不足以去这种地方那就去一个规范的公司。我一直都知道我写的代码很垃圾,但还是期望借助外力来改变自己。
这周写了一个需求,评估工时2天,组长CodeReview提了27个问题,改了25个。我们CodeReview的时候都是在群里说通知对应的人去修改,到最后我组长都私聊我,因为实在是太多了,可能是照顾我的情面,也可能是不想打扰大家。
前些天看别人CodeView的时候我还在想为什么要反反复复那么多次,到我之后问直接傻眼了,比别人还多N次。
他提的肯定是合理的,不然我也不会改,但这也从侧面说明我的代码写的很烂,我也挺愿意去修改的,这个系列就专门讨论如何写个漂亮的代码(主要记录我在工作中遇到的一些好的点)。
万物都需要一个开始,在我还没开始追求写个漂亮代码的时候,我总在想怎么写个漂亮的代码,我看的书中也总会提到一个词:“过度设计”,这次词在我脑海中出现的次数比任何有关设计的词都多很多。所以我每次想要设计的时候的时候就在想,真的有必要设计吗?这么简单的代码稍微设计一下是不是就过度了?现在看来我要担心的不是过度设计,而是没有设计,我应该先学会设计,再去考虑过度设计的问题。(现在也是一个好的机会,我只需要去设计,过度设计的问题留给CodeView我代码的人去考虑)
这个专栏的东西都来自我的真实工作实践,且代码优雅这个和其它的事情不同,它不是唯一的,只供参考