王朝网络
分享
 
 
 

敏捷软件开发:原则、模式与实践(C#版)

王朝导购·作者佚名
 
敏捷软件开发:原则、模式与实践(C#版)  点此进入淘宝搜索页搜索
  特别声明:本站仅为商品信息简介,并不出售商品,您可点击文中链接进入淘宝网搜索页搜索该商品,有任何问题请与具体淘宝商家联系。
  参考价格: 点此进入淘宝搜索页搜索
  分类: 图书,计算机/网络,软件工程/开发项目管理,

作者: (美)马丁,(美)马丁著,邓辉,孙鸣译

出 版 社: 人民邮电出版社

出版时间: 2008-1-1字数: 1000000版次: 1页数: 538印刷时间: 2008/01/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787115165756包装: 平装编辑推荐

软件开发的不朽经典;生动阐述面向对象原则、敏捷实践、UML和模式;大量C#实战示例,让你亲历现场。

“我最喜爱的技术作家Robert Martin善于通过实践展示技术,让读者能够以自己喜欢的方式逐步理解……请把Bob大叔当作你在敏捷世界里的导师。”

——Chris Sells,.NET资深技术专家。微软“软件传奇人物”

“本书是对敏捷编程和敏捷原则最全面和最有价值的介绍……绝对是所有.NET程序员必读之作。”

——Jesse Liberty,微软资深技术专家,Programming C#作者

要想成为一名优秀的软件开发人员,需要熟练应用编程语言和开发工具,更重要的是能够领悟优美代码背后的原则和前人总结的经验——这正是本书的主题。本书凝聚了世界级软件开发大师Robert C.Martin数十年软件开发和培训经验。Java版曾荣获计算机图书最高荣誉——Jolt大奖。是广受推崇的经典著作,自出版以来一直畅销不衰。

不要被书名误导了。本书不是那种以开发过程为主题的敏捷软件开发类图书。在书中,作者延续了自己一贯的写作风格。让你亲历现场,并用幽默亲切的语言和插图.通过一步步展示来自开发一线的代码,分析各种设计决策及其得失,以清晰、易于理解的方式讲述了真实程序设计中最基本然而也是最难做到正确应用的原则(包括SRP、LSP、OCP、DIP、ISP等类设计原则,以及多个包设计原则)与设计模式(不限于GoF经典模式。包括许多作者自己的成果)。

本书不仅是一部深入浅出、生动易懂的面向对象原则与设计模式著作。而且还是一部通俗的敏捷方法导引书和快速实用的LJML教程。通过本书你会发现,许多以前看起来非常枯燥费解的概念,忽然间都豁然开朗。变得鲜活生动起来。

C#版与此前的Java版相比,主要的更新包括加强了UML的介绍章节。使其更加贴近实战;增加了对MVP模式的介绍等。

内容简介

本书中,享誉全球的软件开发专家和软件工程大师Robert C. Martin深入而生动地使用真实案例讲解了面向对象基本原则、重要的设计模式、UML和敏捷实践等程序员必备的知识。

本书于2003年荣获第13届Jolt大奖,是C++和Java程序员提高自身水平的绝佳教材,也适于用作高校计算机、软件工程专业相关课程的教材或参考书。

作者简介

Robert C.Martin(“Bob大叔”)世界级的软件开发大师,著名软件咨询公司Object Mento,公司的创始人和总裁。曾经担任C++Report杂志主编多年,也是设计模式和敏捷开发运动的主要倡导者之一。

目录

第一部分敏捷开发

第1章敏捷实践

1.1敏捷联盟

1.1.1人和交互重于过程和工具

1.1.2可以工作的软件重于面面俱到的文档

1.1.3客户合作重于合同谈判

1.1.4随时应对变化重于遵循计划

1.2原则

1.3结论

1.4参考文献

第2章极限编程概述

2.1极限编程实践

2.1.1完整团队

2.1.2用户故事

2.1.3短交付周期

2.1.4验收测试

2.1.5结对编程

2.1.6测试驱动开发

2.1.7集体所有权

2.1.8持续集成

2.1.9可持续的开发速度

2.1.10开放的工作空间

2.1.11计划游戏

2.1.12简单设计

2.1.13重构

2.1.14隐喻

2.2结论

2.3参考文献

第3章计划

3.1初始探索

3.2发布计划

3.3迭代计划

3.4定义“完成”

3.5任务计划

3.6迭代

3.7跟踪

3.8结论

3.9参考文献

第4章测试

4.1测试驱动开发

4.1.1测试优先设计的例子

4.1.2测试促使模块之间隔离

4.1.3意外获得的解耦合

4.2验收测试

4.3意外获得的构架

4.4结论

4.5参考文献

第5章重构

5.1素数产生程序:一个简单的重构示例

5.1.1单元测试

5.1.2重构

5.1.3最后审视

5.2结论

5.3参考文献

第6章一次编程实践

6.1保龄球比赛

6.2结论

第二部分敏捷设计

第7章什么是敏捷设计

7.1设计臭味

7.1.1设计臭味——腐化软件的气味

7.1.2僵化性

7.1.3脆弱性

7.1.4顽固性

7.1.5粘滞性

7.1.6不必要的复杂性

7.1.7不必要的重复

7.1.8晦涩性

7.2软件为何会腐化

7.3Copy程序

7.3.1熟悉的场景

7.3.2Copy程序的敏捷设计

7.4结论

7.5参考文献

第8章SRP:单一职责原则

8.1定义职责

8.2分离耦合的职责

8.3持久化

8.4结论

8.5参考文献

第9章OCP:开放-封闭原则

9.1OCP概述

9.2Shape应用程序

9.2.1违反OCP

9.2.2遵循OCP

9.2.3预测变化和“贴切的”结构

9.2.4放置吊钩

9.2.5使用抽象获得显式封闭

9.2.6使用“数据驱动”的方法获取封闭性

9.3结论

9.4参考文献

第10章LSP:Liskov替换原则

10.1违反LSP的情形

10.1.1简单例子

10.1.2更微妙的违反情形

10.1.3实际的例子

10.2用提取公共部分的方法代替继承

10.3启发式规则和习惯用法

10.4结论

10.5参考文献

第11章DIP:依赖倒置原则

11.1层次化

11.1.1倒置的接口所有权

11.1.2依赖于抽象

11.2简单的DIP示例

11.3熔炉示例

11.4结论

11.5参考文献

第12章ISP:接口隔离原则

12.1接口污染

12.2分离客户就是分离接口

12.3类接口与对象接口

12.3.1使用委托分离接口

12.3.2使用多重继承分离接口

12.4ATM用户界面的例子

12.5结论

12.6参考文献

第13章C#程序员UML概观

13.1类图

13.2对象图

13.3顺序图

13.4协作图

13.5状态图

13.6结论

13.7参考文献

第14章使用UML

14.1为什么建模

14.1.1为什么构建软件模型

14.1.2编码前应该构建面面俱到的设计吗

14.2有效使用UML

14.2.1与他人交流

14.2.2脉络图

14.2.3项目结束文档

14.2.4要保留的和要丢弃的

14.3迭代式改进

14.3.1行为优先

14.3.2检查结构

14.3.3想象代码

14.3.4图的演化

14.4何时以及如何绘制图示

14.4.1何时要画图,何时不要画图

14.4.2CASE 工具

14.4.3那么,文档呢

14.5结论

第15章状态图

15.1基础知识

15.1.1特定事件

15.1.2超状态

15.1.3初始伪状态和结束伪状态

15.2使用FSM图示

15.3结论

第16章对象图

16.1即时快照

16.2主动对象

16.3结论

第17章用例

17.1编写用例

17.1.1备选流程

17.1.2其他东西呢

17.2用例图

17.3结论

17.4参考文献

第18章顺序图

18.1基础知识

18.1.1对象、生命线、消息及其他

18.1.2创建和析构

18.1.3简单循环

18.1.4时机和场合

18.2高级概念

18.2.1循环和条件

18.2.2耗费时间的消息

18.2.3异步消息

18.2.4多线程

18.2.5主动对象

18.2.6向接口发送消息

18.3结论

第19章类图

19.1基础知识

19.1.1类

19.1.2关联

19.1.3继承

19.2类图示例

19.3细节

19.3.1类衍型

19.3.2抽象类

19.3.3属性

19.3.4聚集

19.3.5组合

19.3.6多重性

19.3.7关联衍型

19.3.8内嵌类

19.3.9关联类

19.3.10关联修饰符

19.4结论

19.5参考文献

第20章咖啡的启示

20.1Mark IV型专用咖啡机

20.1.1规格说明书

20.1.2常见的丑陋方案

20.1.3虚构的抽象

20.1.4改进方案

20.1.5实现抽象模型

20.1.6这个设计的好处

20.2面向对象过度设计

20.3参考文献

第三部分薪水支付案例研究

第21章COMMAND模式和ACTIVE OBJECT模式:多功能与多任务

21.1简单的Command

21.2事务

21.2.1实体上解耦和时间上解耦

21.2.2时间上解耦

21.3Undo()方法

21.4ACTIVE OBJECT模式

21.5结论

21.6参考文献

第22章TEMPLATE METHOD模式和STRATEGY模式:继承和委托

22.1TEMPLATE METHOD模式

22.1.1滥用模式

22.1.2冒泡排序

22.2STRATEGY模式

22.3结论

22.4参考文献

第23章FACADE模式和MEDIATOR模式

23.1FACADE模式

23.2MEDIATOR模式

23.3结论

23.4参考文献

第24章SINGLETON模式和MONOSTATE模式

24.1SINGLETON模式

24.1.1SINGLETON模式的好处

24.1.2SINGLETON模式的代价

24.1.3运用SINGLETON模式

24.2MONOSTATE模式

24.2.1MONOSTATE模式的好处

24.2.2MONOSTATE模式的代价

24.2.3运用MONOSTATE模式

24.3结论

24.4参考文献

第25章NULL OBJECT模式

25.1描述

25.2结论

25.3参考文献

第26章薪水支付案例研究:第一次迭代开始

26.1初步的规格说明

26.2基于用例分析

26.2.1增加新雇员

26.2.2删除雇员

26.2.3登记考勤卡

26.2.4登记销售凭条

26.2.5登记工会服务费

26.2.6更改雇员明细

26.2.7发薪日

26.3反思:找出底层的抽象

26.3.1雇员支付类别抽象

26.3.2支付时间表抽象

26.3.3支付方式

26.3.4从属关系

26.4结论

26.5参考文献

第27章薪水支付案例研究:实现

27.1事务

27.1.1增加雇员

27.1.2删除雇员

27.1.3考勤卡、销售凭条以及服务费用

27.1.4更改雇员属性

27.1.5犯了什么晕

27.1.6支付雇员薪水

27.1.7支付领月薪的雇员薪水

27.1.8支付钟点工薪水

27.2主程序

27.3数据库

27.4结论

27.5关于本章

27.6参考文献

第四部分打包薪水支付系统

第28章包和组件的设计原则

28.1包和组件

28.2组件的内聚性原则:粒度

28.2.1重用—发布等价原则

28.2.2共同重用原则

28.2.3共同封闭原则

28.2.4组件内聚性总结

28.3组件的耦合性原则:稳定性

28.3.1无环依赖原则

28.3.2稳定依赖原则

28.3.3稳定抽象原则

28.4结论

第29章FACTORY模式

29.1依赖问题

29.2静态类型与动态类型

29.3可替换的工厂

29.4对测试支架使用对象工厂

29.5工厂的重要性

29.6结论

29.7参考文献

第30章薪水支付案例研究:包分析

30.1组件结构和符号

30.2应用CCP

30.3应用REP

30.4耦合和封装

30.5度量

30.6度量薪水支付应用程序

30.6.1对象工厂

30.6.2重新思考内聚的边界

30.7最终的包结构

30.8结论

30.9参考文献

第31章COMPOSITE模式

31.1组合命令

31.2多重性还是非多重性

31.3结论

第32章OBSERVER——演化至模式

32.1数字时钟

32.2OBSERVER模式

32.2.1模型

32.2.2面向对象设计原则的运用

32.3结论

32.4参考文献

第33章ABSTRACT SERVER模式、 ADAPTER模式和BRIDGE模式

33.1ABSTRACT SERVER模式

33.2ADAPTER模式

33.2.1类形式的ADAPTER模式

33.2.2调制解调器问题、适配器以及LSP

33.3BRIDGE模式

33.4结论

33.5参考文献

第34章PROXY模式和GATEWAY模式:管理第三方API

34.1PROXY模式

34.1.1实现PROXY模式

34.1.2小结

34.2数据库、中间件以及其他第三方接口

34.3TABLE DATA GATEWAY

34.3.1测试和内存TDG

34.3.2测试DbGateWay

34.4可以用于数据库的其他模式

34.5结论

34.6参考文献

第35章VISITOR模式

35.1VISITOR模式

35.2ACYCLIC VISITOR模式

35.3DECORATOR模式

35.4EXTENSION OBJECT模式

35.5结论

35.6参考文献

第36章STATE模式

36.1嵌套switch/case语句

36.1.1内部作用域的状态变量

36.1.2测试动作

36.1.3代价和收益

36.2迁移表

36.2.1使用表解释

36.2.2代价和收益

36.3STATE模式

36.3.1STATE模式和 STRATEGY模式

36.3.2代价和收益

36.4状态机编译器

36.4.1SMC生成的Turnstile.cs以及其他支持文件

36.4.2代价和收益

36.5状态机应用的场合

36.5.1作为GUI中的高层应用策略

36.5.2GUI交互控制器

36.5.3分布式处理

36.6结论

36.7参考文献

第37章薪水支付案例研究:数据库

37.1构建数据库

37.2一个代码设计缺陷

37.3增加雇员

37.4事务

37.5加载Employee对象

37.6还有什么工作

第38章薪水支付系统用户界面:Model-View-Presenter

38.1界面

38.2实现

38.3构建窗口

38.4Payroll窗口

38.5真面目

38.6结论

38.7参考文献

附录A双公司记

Rufus公司:“日落”项目

Rupert工业公司:“朝晖”项目

附录B什么是软件

索引

敏捷软件开发:原则、模式与实践(C#版)

敏捷软件开发:原则、模式与实践(C#版)

敏捷软件开发:原则、模式与实践(C#版)

敏捷软件开发:原则、模式与实践(C#版)

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
更多商品
【瑞麒珠宝】18K彩金吊坠K-GOLD系列-平安(特价)XXJ
【瑞麒珠宝】18K彩金吊坠K-GOLD系列-转运珠2XXJ
解读数字电视
现代数控机床全过程维修
【瑞麒珠宝】18K彩金吊坠K-GOLD系列-转运珠1XXJ
Visual Studio 2005技术大全
Photoshop 选区深度探索——图层、通道与路径揭秘
数字声频测量技术
Photoshop 图像锐化深度探索
精通ASP.NET 2.0 电子商务网站开发(附光盘)
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有