金庸笔下的“程序员”

今天与人闲谈中无意间提到了“倚天屠龙记”中的张无忌,这是一个普通的甚至性格有点软弱的主角,性格复杂,很多人读完小说以后觉得他一点都不像一个英雄人物,与乔峰乔大侠、郭靖郭大侠等相比,简直是差得太远了。回来之后细细回味思索一番,除了张教主是不是英雄这个问题外,我意外地发现他的学艺之路竟然颇有启发性,想来金庸大师也是哲学方面的高才啊。 下面让我们一起来回忆一下张教主的学艺之路,并结合金庸小说中的各种成名绝技,看是否有值得借鉴之处。

面向对象思想——任督二脉

当你能做到任何时候、任何场合,眼中只有对象的时候,那么恭喜你,你的任督二脉已经打通!你可以学习任何一门高深的内功了。为什么先学习内功呢大家也都非常熟悉,没有内功的配合,任何高深的招式都是浮云。所以要想天下无敌,必须要练就一身深厚的内功,比如九阳神功。

对象的三大特征全都有了,表明在你眼中一切都应该是对象了,你已经是面向对象了,但是并不是说这就是好的面向对象了。

如何评判一个系统是好的面向对象呢般是参照“SOLID”标准。 单一职责原则(SRP):做一个专一的人 做好并且只做好一件事,这条原则其实不仅仅适用于对象,同样适用于函数、变量等一切编程元素。当然,在商业模式中,将一件事做到极致就是成功,笔者觉得也还是成立的。 开放封闭原则(OCP):改造世界大部分不是破坏原来的秩序在对象世界中,添加新的功能一般意味着新的对象,一个好的设计也意味着这个新的修改不要大幅度波及现有的对象。这一条理解起来简单,实施起来却最是困难。无数的模式和解耦方法都是为了达到这个目的而诞生的。 里氏替换原则(LSP):长大后,我就成了你 父类使用的地方,子类也可以使用。这一条希望子类不要破坏父类的接口成员,一旦破坏了,就如同人与人之间破坏合同一样,有时候会很糟糕。 接口分离原则(ISP):不要一口吃成胖子 接口不要过于庞大,繁杂的东西是难以理解、难以扩展、难以修改的。这一条的目的与单一职责原则类似,不过是更加强调了接口的逻辑一致性和简易性。 依赖倒置原则(DIP):抽象的艺术才有生命力 高层与底层组件之间都应该依赖于抽象的组件。这一条深刻揭示了抽象的生命力,抽象的对象才是最有表达能力的对象,因为它通常是“无形”的,可以随时填充相关的细节。

除了这几个基本的设计原则外,还有一些衍生原则,掌握它们,你将能更好地面向对象。 迪米特法则:尽量不与无关的类发生关系。 对象之间联系越是简单,则越是容易管理。 好莱坞法则:不要调用我,让我调用你。 电影中常说,单线联系最安全,就是这样。 多使用组合,少使用继承 复用的手段除了继承这种强约束手段外,组合这种弱耦合的关系更加灵活。 实现依赖于抽象 这一点一般也称为面向接口编程,保证了对象之间关系稳定。

修炼完这些原则,你已经神功初成了,那是不是活动活动手脚,就可以大干一场了呢p>

模式——乾坤大挪移

如果一定要评出金庸小说中的三大巅峰神功,那么太极拳必能入选。练习太极拳是需要超凡的悟性的,太极拳重在以意运转,不能有丝毫外在强加的约束,这一点看过原著的同学们都很清楚。自从太极拳问世后,人们才真正体会到了什么叫做“以柔克刚”!

重构是精心打磨、持续雕琢代码的过程,是任何资深码农的必备技能。重构不是无目的的,重构是一种在不改变代码行为的前提下,改善代码可读性、可扩展性的过程。 之所以需要重构,就是因为代码也是符合事物发展规律的,也有一个从出生到成长,从强壮到衰败,从衰败到腐烂的过程,而且是循序渐进的,不知不觉地就从好变烂了。毫无疑问,并不是所有的烂代码都是一次写成的,也许最初的代码设计是很好的,但是一旦被多个人修改过以后,就变坏了,很多人对此都深有体会。代码总是在所有人的共同“努力”下写烂的。 如果说上面提到的那些技术都有迹可循、规则性比较强的话,那么相对来说,重构的技术要相对柔和一点,没有那么强烈的约束条款,而且虽然也有像介绍“代码坏味道”的伟大著作(《重构》一书)诞生,但是,通常人们脑海中对于重构的冲动,从没有像使用模式那么强烈,根本不会想到重构会是那么的重要,就如同书中的那些高人们根本不会想到如此缓慢而且无固定招式的太极拳会是那么强悍一样。重构与太极拳一样,进行到多大程度和画多大多小的圈,都无法明确衡量,它们都是真正的“意识流”。

抽象与组合——独孤九剑

《软件小设计》 深究设计经典,完整再现设计的自然面貌 董向阳 编著 2016年5月出版 ◎ 最基本的编程理论开始集中探讨了构建对象的若干原则 ◎ 结合大量案例从思想和原则上分析设计过程中的典型问题 ◎ 尝试脱离面向对象设计经验的束缚,直面设计的本来面貌

图片描述

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年6月9日
下一篇 2016年6月9日

相关推荐