编程的美感(二)--你喜欢防守吗?

    技术2022-05-11  22

     观看足球比赛,那些在前面冲锋陷阵的前锋最吸引我们的眼球,我们喜欢他们行云流水的配合,喜欢他们单刀赴会一骑绝尘的背影,喜欢他们刀刀见血仰天长啸的豪情……,他们是足球场上的英雄,是胜负的主宰。

    的确,美丽属于他们。但是我们又不得不面临着这样的事实,当我们举着进攻的大旗冲锋陷阵的时候,我们的后方是最危险的时候,对手的冷不防的偷袭便偷走我们胜利的果实。我喜欢的鲁能泰山,在中超各球队中进攻的能力可以说是数一数二的,但是仍然会输在一些弱小的球队身上,可见什么时候都不要忽视防守。也许图巴曾经说过,进攻是最好的防守,我们只要永远比对手多进一个球,我们就是胜利者。这当然是个真理,但是在软件开发中,它却不能成立,一个细微的错误便可以让整个系统瘫痪,软件开发的质量永远决定在系统的短板上,即使你有最锋利的尖刀。

    这便引出一个概念:防御性编程。顾名思义,防御性编程是一种细致、谨慎的编程方法。防御性编程让我们尽早的发现一些小问题,而不是当出现灾难时在发现、弥补。我们常常看到“职业”的程序员不假思索的飞快写着代码,编写-运行-崩溃-修改-运行……,周而复始一次次的遭受着沉痛的打击,他们提高了开发的效率,却将时间大量的花费在非需求变更的修改上。我也经常听到有的程序员经常说的一个字:改。出了错误肯定要改,但是我们为什么不停下来好好想一想,为什么我们每天都要生活在更改之中,有没有可以改变的方法。方法当然有,在写每一行代码时都三思而后行,可能会出现什么样的错误?是否已经考虑了所有可能出现的逻辑分支?放慢速度,有条不紊的编程看上去虽然很平凡,开发效率不高,但是这的确是减少缺陷的好方法,它可以节省80%维护的时间,从完整的软件生命周期来看,其实这是高效的。

    我们经常说:失去时才懂得珍惜。难道防御性编程也要当我们出现错误时才引起我们的注意吗?不,这是不对的。防御性编程应该牢牢的印在我们的骨子里,成为我们的天性。成熟的程序员应该从经验中吸取教训,在吃过一遍苦头之后,应该明白增加预防措施是明智的。在开始编码时就应用防御性策略,要比改进代码时应用容易的多。

    再回到题目:你喜欢防守吗?讨论到这里,我们是否发现防守其实也是一种美,它是男子汉的铮铮铁骨,铜墙铁壁显示出它的刚强,它虽然没有利矛,但是所有的利矛都无法刺破它的身体,这样健壮的系统,难道不是我们想要的吗?

    让我们开始学会防守吧。

     

     

    相关:

    编程的美感(一)--从命名开始


    最新回复(0)