在软件开发中,是不是有些东西跟古代武侠中的武功有相似之处呢?
1.独孤九剑
独孤九剑有总诀式,破剑式,破刀式,破枪式,破掌式,破箭式,破气式。独孤九剑,有进无退,招招都是进攻,攻敌之不得不守。虽只一剑一式,却是变化无穷,学到后来,前后式融会贯通,更是威力大增,剑法的精要所在:料敌机先。
在 软件开发中最大的敌人就是变化,我们虽然做不到以不变应万变,但是如果能提前预见到一些变化,这样就能用很小的代价来应对剧烈的变化。设计模式可以看作是 软件开发中的“独孤九剑”,不管是创建型、结构型还是行为型设计模式,归根结底,都是在寻找软件开发中可能的变化,提前预见到这些变化,所以它的精要所在 也是:料敌机先。
2.九阳神功
九阳神功,练得是内功,虽无招式,然只要具有九阳神功的基础,再修练其他武功,可以说是易如反掌。张无忌就因为学会了九阳神功,再修炼乾坤大挪移很快便达到第七重,别人修炼内功深厚者至少也得几十年。
面向对象,有了深厚扎实的面向对象基础,学习其他的知识,如设计模式等,便能很快地学好,反之面向对象基础不扎实,就算强行修炼设计模式等,到最后也是走火入魔,耽误了时间不说,还什么也没有学好,所以千万不要连抽象、多态、封装等概念都没弄明白,就去谈设计模式。
3.双剑合璧
双剑合璧,威力无穷,通常都是由两个人一起来完成(也有例外,修炼过双手互搏术的话,只要一人就能完成),一个人进攻时,另一个便防守,在对敌过程中,两个人总是互换位置,当然了两个人的武功也应该相差不大才行。
结对编程,也需要由两位程序员一起来完成, 两位程序员肩并肩地坐在同一台电脑前合作完成同一个设计、同一个算法、同一段代码或同一组测试,在整个过程中,两个人会经常互换角色。与两位程序员各自独 立工作相比。结对编程往往只需花费大约一半的时间就能编写出质量更高的代码。同样这两人的水平应该不相上下才好,一个具有几年编码经验的程序员和一个应届 毕业生是无法结对的。
做软件开发如同修炼武功,不是每个人天生就是高手,需要经过无数次的实战,不停的修炼,才能达到高手的境界,在这个过程要有热情,要循序渐进,修炼适合自己的武功,持之以恒,这样才能成为真正的高手。
以上纯属无聊之作,仅博大家周末一笑而已