浮现式设计:专业软件开发的演进本质

浮现式设计:专业软件开发的演进本质
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: , ,
2011-08
版次: 1
ISBN: 9787115259783
定价: 59.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 279页
字数: 443千字
正文语种: 简体中文
原版书名: Emergent Design: The Evolutionary Nature of Professional Software Development
50人买过
  • 浮现式设计是一种敏捷技术,强调在开发过程中不断演进。《浮现式设计:专业软件开发的演进本质》的讨论围绕着专业软件开发方法的演进主题展开,强调了让软件成为一个真正专业的重要性,以及以演进方式开发软件的重大意义。书中谈到了如何在演进过程中综合运用设计模式、重构、单元测试和测试驱动开发等实践,以及何时制定耦合、内聚和封装等关键决策,而且通过准确生动的示例说明了如何开发出真正有用的软件。
    《浮现式设计:专业软件开发的演进本质》主要面向软件开发者群体,尤其是对敏捷开发感兴趣的程序设计人员。     拥有30年从业经验的资深计算机技术专家。主要从事开发、工程和设计。他还曾负责设计、提供和管理认证培训课程。从事最终用户的技能培训,既有课堂授课.也有远程教育。过去8年来。Scott一直在华盛顿州普捷湾畔的NetObjectives公司工作,负责培训课程以及有关设计模式、重构、单元测试、测试驱动开发的咨询工作。Scott与NetObjectives的CEO AlanShalloway一起为敏捷环境中的设计模式集成做出了卓越的贡献。他还经常在各种开发者会议(例如JavaOne和SDWest)上发表演讲。 第1章软件开发这个职业
    1.1人类制作软件已经有多久的历史了
    1.2软件开发是一种什么样的活动
    1.3软件开发缺少了什么
    1.4谁说了算
    1.5独特性

    第2章从衣橱到探月
    2.1软件开发中的模式和专业化
    2.2Andrea的衣橱
    2.3探月
    2.3.1因素的连锁变化
    2.3.2不同的因素导致不同的设计
    2.3.3还有更多环境因素
    2.3.4成本和获益
    2.3.5火星探险
    2.4模式的价值
    2.5小结

    第3章软件开发的本质
    3.1失败率过高
    3.2成功的定义
    3.3StandishGroup
    3.4做了错误的事情
    3.5做事的方式错了
    3.6随着时间的推移,软件开发也有所改善
    3.7一个原因:土木工程的类比
    3.8放弃希望
    3.9有时等待和拖延也是必要的
    3.1桥是硬的,软件是软的
    3.11我们在变化的海洋中游泳
    3.12接受变化
    3.13拥抱变化
    3.14利用变化
    3.15更好的类比:不断演进的系统
    3.16小结

    第4章代码的演进:初级阶段
    4.1用对象结构来代替过程逻辑
    4.2面向对象和模式的起源
    4.3一个示例:简单条件和Proxy模式
    4.4下一步:多路径条件选择
    4.5为什么要采用对象结构
    4.6从多个条件中选择一个
    4.7小结

    第5章使用和发现模式
    5.1根据上下文进行设计:我做的另一个木匠活
    5.2模式引出了另一个看问题的角度
    5.3模式提供了一种讨论设计的语言
    5.4本书中的模式
    5.5小结

    第6章软件开发金字塔
    6.1构成专业的元素
    6.2一种形象的表示
    6.3小结

    第7章注重软件质量
    7.1封装
    7.2内聚
    7.2.1方法内聚
    7.2.2视角层的内聚
    7.2.3类内聚
    7.2.4内聚到何种程度才足够
    7.3耦合
    7.3.1有意耦合与意外耦合
    7.3.2耦合类型
    7.4冗余
    7.5可测试性
    7.6可读性
    7.7软件的病症
    7.7.1内聚性较差的信号
    7.7.2意外耦合或不合逻辑耦合的信号
    7.7.3冗余的信号
    7.8小结

    第8章注重原则和智慧结晶
    8.1使用与创建分离
    8.1.1Fowler的三层视角
    8.1.2另一种视角
    8.1.3使用的视角
    8.1.4一个单独的视角:创建
    8.1.5最后考虑构造细节
    8.1.6回到现实
    8.2开闭原则
    8.2.1类级的开闭原则
    8.2.2方法级的开闭原则
    8.3依赖倒置原则
    8.4GoF的建议
    8.4.1设计方法的接口
    8.4.2设计类的接口
    8.4.3GoF:优先使用对象聚合而非类继承
    8.5GoF:在设计中思考什么应该变化并封装会发生变化的概念
    8.6小结

    第9章注重实践
    9.1统一编码风格
    9.1.1注释
    9.1.2命名类、方法和变量
    9.1.3编码标准的好处
    9.2意图导向编程
    9.3封装构造函数
    9.3.1原则与实践
    9.3.2做出决定
    9.4公共性-可变性分析
    9.5实践与自由
    9.6小结

    第10章注重纪律:单元测试
    10.1测试的经济学
    10.1.1单元测试
    10.1.2先写测试
    10.2JUnit框架
    10.2.1JUnit基础知识
    10.2.2JUnit示例
    10.2.3Rule.java:先编码,再测试
    10.2.4RuleContainer.java:先测试,再编码
    10.2.5消除冗余:@Before和@After
    10.2.6自动化批量测试
    10.2.7异常和单元测试
    10.3模拟对象
    10.3.1MockObject框架
    10.3.2伪对象
    10.3.3依赖注入和Endo-Testing技巧
    10.3.4Endo-Testing
    10.4小结

    第11章注重纪律:重构
    11.1重构质量糟糕的代码
    11.2重构质量优秀的代码
    11.3结构变化与功能变化
    11.4重构可帮助你做出选择
    11.5模式可以成为重构的目标
    11.6避免重构:预构
    11.7重构技巧
    11.8重构遗留代码
    11.9小结

    第12章测试驱动开发
    12.1何谓测试驱动开发
    12.1.1测试驱动与先写测试
    12.1.2从单元测试的角度来设计
    12.2测试与质量
    12.2.1测试与内聚
    12.2.2测试与耦合
    12.2.3测试与冗余
    12.3测试驱动开发与模式
    12.3.1Strategy模式
    12.3.2乌龟站在乌龟上,一直向下
    12.3.3模拟对象/模拟乌龟
    12.4模拟对象
    12.5模拟乌龟
    12.6测试Decorator模式
    12.7小结

    第13章模式与因素
    13.1在演进的设计中做决策
    13.2ChristopherApexander与他所提出的“因素”
    13.2.1信号处理器示例
    13.2.2PKZip示例
    13.2.3测试与因素
    13.3更多选择,更多因素
    13.4小结

    第14章浮现式设计:案例分析
    14.1问题领域:MWave公司
    14.2团队
    14.3最简单的能够正常运作的设计
    14.4新需求:更复杂的机器
    14.5顺便介绍一下
    14.6更多好消息
    14.7小结:设计是一次漫长而奇特的旅行
    第15章结束语:展望2020年
    附录A演进路径
    附录B示例中用到的模式简介
    附录C有用幻觉之原理
    参考书目
  • 内容简介:
    浮现式设计是一种敏捷技术,强调在开发过程中不断演进。《浮现式设计:专业软件开发的演进本质》的讨论围绕着专业软件开发方法的演进主题展开,强调了让软件成为一个真正专业的重要性,以及以演进方式开发软件的重大意义。书中谈到了如何在演进过程中综合运用设计模式、重构、单元测试和测试驱动开发等实践,以及何时制定耦合、内聚和封装等关键决策,而且通过准确生动的示例说明了如何开发出真正有用的软件。
    《浮现式设计:专业软件开发的演进本质》主要面向软件开发者群体,尤其是对敏捷开发感兴趣的程序设计人员。
  • 作者简介:
        拥有30年从业经验的资深计算机技术专家。主要从事开发、工程和设计。他还曾负责设计、提供和管理认证培训课程。从事最终用户的技能培训,既有课堂授课.也有远程教育。过去8年来。Scott一直在华盛顿州普捷湾畔的NetObjectives公司工作,负责培训课程以及有关设计模式、重构、单元测试、测试驱动开发的咨询工作。Scott与NetObjectives的CEO AlanShalloway一起为敏捷环境中的设计模式集成做出了卓越的贡献。他还经常在各种开发者会议(例如JavaOne和SDWest)上发表演讲。
  • 目录:
    第1章软件开发这个职业
    1.1人类制作软件已经有多久的历史了
    1.2软件开发是一种什么样的活动
    1.3软件开发缺少了什么
    1.4谁说了算
    1.5独特性

    第2章从衣橱到探月
    2.1软件开发中的模式和专业化
    2.2Andrea的衣橱
    2.3探月
    2.3.1因素的连锁变化
    2.3.2不同的因素导致不同的设计
    2.3.3还有更多环境因素
    2.3.4成本和获益
    2.3.5火星探险
    2.4模式的价值
    2.5小结

    第3章软件开发的本质
    3.1失败率过高
    3.2成功的定义
    3.3StandishGroup
    3.4做了错误的事情
    3.5做事的方式错了
    3.6随着时间的推移,软件开发也有所改善
    3.7一个原因:土木工程的类比
    3.8放弃希望
    3.9有时等待和拖延也是必要的
    3.1桥是硬的,软件是软的
    3.11我们在变化的海洋中游泳
    3.12接受变化
    3.13拥抱变化
    3.14利用变化
    3.15更好的类比:不断演进的系统
    3.16小结

    第4章代码的演进:初级阶段
    4.1用对象结构来代替过程逻辑
    4.2面向对象和模式的起源
    4.3一个示例:简单条件和Proxy模式
    4.4下一步:多路径条件选择
    4.5为什么要采用对象结构
    4.6从多个条件中选择一个
    4.7小结

    第5章使用和发现模式
    5.1根据上下文进行设计:我做的另一个木匠活
    5.2模式引出了另一个看问题的角度
    5.3模式提供了一种讨论设计的语言
    5.4本书中的模式
    5.5小结

    第6章软件开发金字塔
    6.1构成专业的元素
    6.2一种形象的表示
    6.3小结

    第7章注重软件质量
    7.1封装
    7.2内聚
    7.2.1方法内聚
    7.2.2视角层的内聚
    7.2.3类内聚
    7.2.4内聚到何种程度才足够
    7.3耦合
    7.3.1有意耦合与意外耦合
    7.3.2耦合类型
    7.4冗余
    7.5可测试性
    7.6可读性
    7.7软件的病症
    7.7.1内聚性较差的信号
    7.7.2意外耦合或不合逻辑耦合的信号
    7.7.3冗余的信号
    7.8小结

    第8章注重原则和智慧结晶
    8.1使用与创建分离
    8.1.1Fowler的三层视角
    8.1.2另一种视角
    8.1.3使用的视角
    8.1.4一个单独的视角:创建
    8.1.5最后考虑构造细节
    8.1.6回到现实
    8.2开闭原则
    8.2.1类级的开闭原则
    8.2.2方法级的开闭原则
    8.3依赖倒置原则
    8.4GoF的建议
    8.4.1设计方法的接口
    8.4.2设计类的接口
    8.4.3GoF:优先使用对象聚合而非类继承
    8.5GoF:在设计中思考什么应该变化并封装会发生变化的概念
    8.6小结

    第9章注重实践
    9.1统一编码风格
    9.1.1注释
    9.1.2命名类、方法和变量
    9.1.3编码标准的好处
    9.2意图导向编程
    9.3封装构造函数
    9.3.1原则与实践
    9.3.2做出决定
    9.4公共性-可变性分析
    9.5实践与自由
    9.6小结

    第10章注重纪律:单元测试
    10.1测试的经济学
    10.1.1单元测试
    10.1.2先写测试
    10.2JUnit框架
    10.2.1JUnit基础知识
    10.2.2JUnit示例
    10.2.3Rule.java:先编码,再测试
    10.2.4RuleContainer.java:先测试,再编码
    10.2.5消除冗余:@Before和@After
    10.2.6自动化批量测试
    10.2.7异常和单元测试
    10.3模拟对象
    10.3.1MockObject框架
    10.3.2伪对象
    10.3.3依赖注入和Endo-Testing技巧
    10.3.4Endo-Testing
    10.4小结

    第11章注重纪律:重构
    11.1重构质量糟糕的代码
    11.2重构质量优秀的代码
    11.3结构变化与功能变化
    11.4重构可帮助你做出选择
    11.5模式可以成为重构的目标
    11.6避免重构:预构
    11.7重构技巧
    11.8重构遗留代码
    11.9小结

    第12章测试驱动开发
    12.1何谓测试驱动开发
    12.1.1测试驱动与先写测试
    12.1.2从单元测试的角度来设计
    12.2测试与质量
    12.2.1测试与内聚
    12.2.2测试与耦合
    12.2.3测试与冗余
    12.3测试驱动开发与模式
    12.3.1Strategy模式
    12.3.2乌龟站在乌龟上,一直向下
    12.3.3模拟对象/模拟乌龟
    12.4模拟对象
    12.5模拟乌龟
    12.6测试Decorator模式
    12.7小结

    第13章模式与因素
    13.1在演进的设计中做决策
    13.2ChristopherApexander与他所提出的“因素”
    13.2.1信号处理器示例
    13.2.2PKZip示例
    13.2.3测试与因素
    13.3更多选择,更多因素
    13.4小结

    第14章浮现式设计:案例分析
    14.1问题领域:MWave公司
    14.2团队
    14.3最简单的能够正常运作的设计
    14.4新需求:更复杂的机器
    14.5顺便介绍一下
    14.6更多好消息
    14.7小结:设计是一次漫长而奇特的旅行
    第15章结束语:展望2020年
    附录A演进路径
    附录B示例中用到的模式简介
    附录C有用幻觉之原理
    参考书目
查看详情
系列丛书 / 更多
浮现式设计:专业软件开发的演进本质
机器学习实战
[美]Peter Harrington 著;李锐、李鹏、曲亚东 译
浮现式设计:专业软件开发的演进本质
图灵程序设计丛书:Python基础教程
[挪威]Magnus Lie Hetland 著;司维、曾军崴、谭颖华 译
浮现式设计:专业软件开发的演进本质
JavaScript高级程序设计(第3版)
[美]Nicholas C.Zakas 著;李松峰、曹力 译
浮现式设计:专业软件开发的演进本质
Python编程:从入门到实践
[美]埃里克·马瑟斯(Eric Matthes) 著;袁国忠 译
浮现式设计:专业软件开发的演进本质
R语言实战(第2版)
[美]卡巴科弗(Robert I. Kabacoff) 著;王小宁、刘撷芯、黄俊文 译
浮现式设计:专业软件开发的演进本质
算法(第4版)
[美]Robert、[美]Kevin Wayne 著;谢路云 译
浮现式设计:专业软件开发的演进本质
大数据:互联网大规模数据挖掘与分布式处理
[美]Anand、[美]Jeffrey David Ullman 著;王斌 译
浮现式设计:专业软件开发的演进本质
Spark快速大数据分析
[美]卡劳(Holden Karau)、[美]肯维尼斯科(Andy Konwinski)、[美]温德尔(Patrick Wendell)、[加拿大]扎哈里亚(Matei Zaharia) 著;王道远 译
浮现式设计:专业软件开发的演进本质
MySQL必知必会
[英]福塔(Ben Forta) 著;刘晓霞、钟鸣 译
浮现式设计:专业软件开发的演进本质
Objective-C基础教程 第2版
[美]Scott、[美]Waqar、[美]Mark Dalrymple 著;周庆成 译
浮现式设计:专业软件开发的演进本质
图解HTTP
[日]上野·宣 著;于均良 译
浮现式设计:专业软件开发的演进本质
算法图解
袁国忠 译
相关图书 / 更多
浮现式设计:专业软件开发的演进本质
浮现中的中国现代项目导向型社会与组织
戚安邦 著
浮现式设计:专业软件开发的演进本质
浮现
[加拿大]玛格丽特·阿特伍德 著
浮现式设计:专业软件开发的演进本质
浮现语法:基于汉语口语和书面语的研究
方梅 著
浮现式设计:专业软件开发的演进本质
浮现
[加拿大]玛格丽特·阿特伍德
浮现式设计:专业软件开发的演进本质
浮现(玛格丽特·阿特伍德作品系列)
玛格丽特·阿特伍德
浮现式设计:专业软件开发的演进本质
浮现中的数字经济
姜奇平
您可能感兴趣 / 更多
浮现式设计:专业软件开发的演进本质
经食管超声心动图实用技术(第3版)
Scott T. Reeves 著;马小静 译;Albert C. Perrino
浮现式设计:专业软件开发的演进本质
乳腺外科学:原则与技术
Scott L. Spear 主编
浮现式设计:专业软件开发的演进本质
直面挑战——香港反腐之路
Scott 著;[澳]施易安·公婷(Ian
浮现式设计:专业软件开发的演进本质
创造差异
Scott McKain
浮现式设计:专业软件开发的演进本质
神圣自然:生命的永恒之舞
Scott 著;[英]乔纳森·斯科特、安吉拉·斯科特(Jonathan、and、Angela、邓扬 译
浮现式设计:专业软件开发的演进本质
宇宙的本来面目地球空间物质和时间
Scott 著;[美]托马斯·R.、斯科特(Thomas、R.、王艳红 译
浮现式设计:专业软件开发的演进本质
Ultralearning:Master Hard Skills, Outsmart the Competition, and Accelerate Your Career
Scott H Young
浮现式设计:专业软件开发的演进本质
英文原版Hug Machine拥抱的力量纸板书
Scott Campbell
浮现式设计:专业软件开发的演进本质
Now You're Talking Mandarin Chinese in No Time (Now You're Talking)
Scott Seligman 著
浮现式设计:专业软件开发的演进本质
Ivanhoe
Scott, Sir Walter
浮现式设计:专业软件开发的演进本质
Mobile Application Development with SMS and the SIM Toolkit
Scott Guthery、Mary Cronin 著
浮现式设计:专业软件开发的演进本质
Home and Away: Memoir of a Fan
Scott Simon 著