冒号和他的学生们(连载5)——软件技术 - 编程入门网
冒号和他的学生们(连载5)——软件技术时间:2011-06-29 BlogJava 郑晖软件技术 借我借我一双慧眼吧,让我把这纷扰看得清清楚楚明明白白真真切切 ——《雾里看花》 “现在我们具体介绍一下编程范式。”冒号忽然顿住,隐觉一抹失望从众人脸上掠过,问号更是欲言又止,便鼓励他开口。 问号略显迟疑:“您说编程范式是一种心法,那框架、设计模式还有架构呢?” “原来如此!”冒号心下了然,“让我说说你们最想听些什么吧。” 众现不信之色。 冒号说道:“一种是具体而实用的,最好能立马解决学习和工作中的问题;一种是时髦而花哨的,管他有用没用,不学点心里就是不踏实。” 众人虽觉此话有些尖刻,细想起来也有几分道理,但老冒明知而不为,不走群众路线,偏去扯什么劳什子的范式——当然,直接谈OOP倒是不错的。 “自以为懂的未必真的懂,自以为不懂的未必真的不懂。” 冒号玩起了玄学,“有些概念和技术即使背得烂熟,甚至用得烂熟,那也不代表真正掌握;有些概念和技术看起来很新奇,却不过是新瓶装旧酒。” 引号颇不服气:“用得烂熟都不算掌握,难不成只有发明概念和技术才算掌握?” “哈哈,那倒不必。”冒号笑道,“用得烂熟不等于用得恰到好处,能解决问题不等于没有后顾之忧。” 逗号问道:“那掌握的标准是什么?” “许多应聘者喜欢在简历中言必称精通某某语言、某某技术云云,大多不必面试即知其大言炎炎——倘若真的精通,他当应聘更高的职位。”冒号有感而发却又似不着边际,“任何概念和技术都不是孤立的,如果不能在纵向的时间和横向的联系中找准坐标,便似那群摸象的盲人,各执一端却又自以为是。” 众人心想,老冒虽言辞旦旦却有凿空之嫌,一节课下来,天马行空的扯了不少,真刀真枪的一个也无,该不是只会纸上谈兵吧? 句号紧扣主题:“您为何选择谈编程范式,而不是框架、设计模式还有架构呢?难道它们真如您所说只是时髦而花哨的东西吗?” “我可没这么说。”冒号矢口否认,“但在弄清一样东西存在的意义之前就随众跟风,早晚会跟丢的。我先问问你们:什么是框架(framework)?它与一般的库(library)和工具包(toolkit)有何不同?” 引号应答:“框架就是一组协同工作的类,它们为特定类型的软件构筑了一个可重用的设计。与库和工具包不同之处在于前者侧重设计重用而后两者侧重代码重用。” “嗯,有点标准答案的味道。”冒号夸道,“如果吹毛求疵的话,框架并不限于OOP,可以是协同工作的类,也可以是协同工作的函数。一个足够复杂的应用软件开发,为确保快速有效,通常采取的方式是:在宏观管理上选取一些框架以控制整体的结构和流程;在微观实现上利用库和工具包来解决具体的细节问题。框架的意义在于使设计者在特定领域的整体设计上不必重新发明轮子;库和工具包的意义在于使开发者摆脱底层编码,专注具体问题。” 问号提出问题:“框架与库和工具包看起来很相似——都是一些代码集合,都提供一些API(应用编程接口),是什么使得它们不同呢?” “问得好!”冒号赞言,“框架与工具包最大的差别在截然相反的设计理念上:库和工具包是为程序员带来自由的,框架是为程序员带来约束的。具体地说,库和工具包是为程序员提供武器装备的,框架则利用控制反转(IoC)机制实现对各模块的统一调度从而剥夺了程序员对全局的掌控权,使他们成为手执编程武器、随时听候调遣的士兵。” 叹号苦着脸:“程序 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |