zoukankan      html  css  js  c++  java
  • 《软件设计精要与模式》各篇之篇首语

    《软件设计精要与模式》(原名《设计之道》)共分为五篇共28章内容。以下是各篇的篇首语,敬请各位斧正。

    第一篇 设计之要

    永远不要低估设计的能量,特别是那些以设计优雅的软件为最高目标的软件设计师们。然而,我们也不能高估设计的威力,以至于在将软件设计思想供奉在穹顶高悬的殿堂最高处的同时,还要卑躬屈膝地对它顶礼膜拜。归根结底,软件设计不过是软件开发进程中一环不可或缺的链条而已。就是这样,我们毋需为她蒙上神秘的面纱,毋需为他戴上帝王的冠冕。

    美的设计是一门艺术,可用的设计则是一门科学,软件设计更是如此。那么,设计是否有标准呢?我想起赫拉克利特的一句话:“人不能两次走进同一条河流”,这意味着一种经验是不可重复的。然而,软件设计却与那奔腾不息的河流不同,其中包含的奥秘仍有规律可循。那么,设计的高下之分,就在于设计师们是否掌握了设计的规律,或者说我们需要分辨哪些要素方才是软件设计之要?

    不过,谁又敢说自己完全掌握了所有的设计之要呢?面向对象的设计思想、设计模式、重构、测试驱动开发、极限编程……设计之道是无止境的,我们能够挖掘出来的设计之要又何尝不是冰山之一角呢?

    第二篇 .NET Framework与设计模式

    从.NET Framework挖掘设计模式的范例,对于设计模式的实践具有重大的意义。一直以来,设计模式虽然被众多专家与开发者推崇,然而,一味地进行理论的介绍,会使得设计模式的运用流于空泛。大多数介绍设计模式的文章,并不乏实际例子的支持,但作者为了更通俗易懂的说明设计模式的主旨与精髓,往往采用了非常简单且不具备实际项目意义的实例进行阐述。这些例子,用于初学固然效果不错,但要求开发者能够熟练地将设计模式运用到项目中,常常会有无从下手的感觉。

    .NET Framework对设计模式的应用无疑更具有说服力。既然在如此重量级的框架产品中,设计模式展示了它无与伦比的优雅与精巧,正可以鲜活地说明设计模式在软件开发中的重要地位。从这些充满了设计美感的代码作品中,吸取养料,并由此印证自己对设计模式的理解,无疑是一种愉快的体验。仿佛读了一本好书,看了一部精彩的电影,欣赏了一场绝妙的音乐会,是一种灵魂的畅快淋漓。

    与设计师的心灵对话,就从这一段段美妙的代码开始……

    第三篇 媒体播放器的设计之旅

    媒体播放器并不是一个巨兽一般庞大的项目,但在设计上却也颇费周章。任何项目都不是一蹴而就的,在经历媒体播放器的设计之旅时,我们就像一个冲向魔兽世界的猎人,面对软件设计中僵化的部分,张开弓弩来寻求解决之道。

    需求变化是设计的敌人,僵硬的设计却是软件开发过程中的“第五纵队”,如果不加以重视,就会有分崩离析的危险。因此,在设计媒体播放器的过程中,我们一直在与项目结构的僵化问题作着艰苦的战斗。面对不同的需求场景,我们尝试了十八般武艺,引入了面向对象设计思想,引入了设计模式中的Factory Method模式、Adapter模式、Decorator模式以及Visitor模式。显然,我们运用这些武器还称得上圆熟自如,发挥了足够的威力。设计之旅充满了冒险,但随着僵化的问题迎刃而解,我们虽然还在路上,距离成功却已经不远了。

    第四篇 设计模式应用实践

    现在,我们是时候从实验室中走出来了。并非所有激动人心的事物都是从实验室中创造出来的。如果莱特兄弟没有经历数百次的试飞,人类的第一架飞机也就无法在蓝天中自由飞翔。通过应用实践获取的经验,远比静坐在实验室中的冥思苦想来得更真实与刻骨铭心。实践的价值显然远远超过实践本身的意义。

    三百多年前,一个苹果掉在牛顿的头上,于是伟大的万有引力定律产生了。人们似乎总是惊诧于这种神奇的魔力,却忽略了牛顿在思考万有引力的时候,曾经做过的千万次演算与推导。正如那个神奇的苹果掉在我们头上,诞生不了万有引力定律;我们不能抱有侥幸的妄想,希望偶然地灵机一动,就能熟练地掌握设计模式。

    设计模式是千锤百炼的结果,是面向对象设计思想的集大成者。要掌握它,必须经历项目实践的锤打。这个过程不一定愉快,甚至是一种磨砺,但却独具魅力,是巨大的价值所在。“无限风光在险峰”,但谁又能说,攀登山峰的沿途风景就不壮观与美丽呢?

    第五篇 .NET体系架构设计

    缺乏优秀的设计,软件开发就会陷入混乱。开发人员就像那抓不住线球的猫儿一般,扑来扑去,线球始终不在掌握之中,越滚越远,越滚越乱。细节的设计决定我们能否理清线团的缠绕方式,但真正决定我们能否将整个线团完全掌控在股掌之中的,是项目的体系架构设计。

    相对于设计模式而言,体系架构设计无疑是更高层次的设计视角。它几乎涵盖了软件开发领域的方方面面,这就要求架构师必须掌控全局,否则就会陷入收之桑榆,却又失之东隅的困境。

    要成长为一名优秀的架构设计师,绝非一朝一夕之功。最重要的途径是大量的项目实践,此外就是学习与参考优秀的设计范例。作为Microsoft展示.NET技术在企业系统开发方面能力的示例项目,PetShop的体系架构设计无疑值得我们学习。或许,我们对PetShop的审视与解剖,不过是一种管窥蠡测;但它至少教会我们知晓一种方法,就是只要我们不去拉动那根混乱之源的线头,那么整个线团终究会被我们掌握在手中。

  • 相关阅读:
    关于32位操作系统和64位操作系统对InstallShield打包的影响
    NEWS: Symantec宣布Wise Package Studio将终止
    InstallShield 2012新功能试用(2) 调用MsiGetProperty等MSI API发生变化
    Basic INFO 在命令行Build InstallShield安装包工程获得压缩安装包
    NEWS InstallShield 2012 Service Pack 1发布
    Basic INFO InstallShield Basic MSI工程中如何在SetupCompleteSuccess界面中启动Readme
    Basic INFO InstallShield的脚本编辑器中如何显示代码行号
    Basic INFO 关于在InstallShield制作的安装包界面中删除InstallShield文字的厂商回复
    Basic INFO InstallShield工程中如何让产品的快捷方式名称始终与产品名保持一致
    Basic INFO: 创建隐藏文件夹
  • 原文地址:https://www.cnblogs.com/wayfarer/p/602996.html
Copyright © 2011-2022 走看看