内容简介
第1章 敏捷世界里的代码质量
1.1软件开发的传统方法
1.2软件开发的敏捷方法
1.2.1 Scrum
1.2.2 eXtreme Programming
1.2.3测试驱动开发
1.3尽早进行质量控制
1.4微软内幕:Windows Live Hotmail工程
1.4.1工程准则
1.4.2成功的关键因素
1.5编写坚实代码的方法
1.5.1专注设计
1.5.2防御和调试
1.5.3分析与测试
1.5.4改进流程和态度
1.6总结
1.7本章要点
第2章 类设计和原型开发
2.1 Visual Studio中的协作
2.2磨刀不误砍柴工
2.3软件建模
2.3.1统一建模语言
2.3.2 Visio示例
2.4原型开发
2.5跟踪
2.6 Visual Studio类设计器
2.6.1创建一个类图
2.6.2使用类设计器进行原型开发
2.6.3原型开发示例
2.7总结
2.8本章要点
第3章 元编程
3.1什么是元数据
3.2托管应用里的元数据
3.3应用程序中的元数据
3.4微软内幕:Windows Live Spaces中的配置管理
3.5总结
3.6本章要点
第4章 性能也是功能
4.1常见的性能难点
4.1.1网络延时
4.1.2负载大小和网络往返时延
4.1.3受限的TCP连接
4.1.4未优化的代码
4.2分析应用程序性能
4.3提升Web应用性能的技巧
4.3.1减小负载大小
4.3.2有效利用缓存
4.3.3优化网络通信
4.3.4为性能组织编写代码
4.4采用性能最佳实践
4.5微软内幕:解决Live Search的性能问题
4.5.1 Web性能准则
4.5.2成功的关键要素
4.6总结
4.7本章要点
第5章 伸缩性设计
5.1理解应用程序伸缩性
5.1.1伸缩性之路
5.1.2数据库的伸缩性
5.2伸缩Web应用程序的技巧
5.2.1选择可伸缩的应用程序设计
5.2.2设计可伸缩的应用程序基础设施
5.2.3抵御应用程序故障
5.2.4保证可管理性和可维护性
5.3微软内幕:管理Windows Live Messenger服务基础设施
5.4总结
5.5本章要点
第6章 安全性设计和实现
6.1常见的应用程序安全威胁
6.2设计安全的应用程序的原则
6.3安全的应用程序的SD3+C策略和实践
6.3.1设计上的安全性
6.3.2默认值的安全性
6.3.3部署和通信中的安全性
6.4理解.NET框架的安全性原则
6.4.1运行时安全策略
6.4.2代码访问安全
6.4.3应用运行时安全策略
6.5其他安全性最佳实践
6.6总结
6.7本章要点
第7章 托管内存模型
7.1托管堆
7.2垃圾回收
7.2.1原生对象的托管包裹
7.2.2 GC类
7.2.3大型对象堆
7.3终止
7.3.1不确定的垃圾回收
7.3.2可丢弃对象
7.3.3丢弃模式
7.3.4弱引用
7.4固定
7.5托管堆的技巧
7.6 CLR Profiler
7.7总结
7.8本章要点
第8章 防御式编程
8.1防御式编程和C
8.2警告
8.3代码检查
8.4软件测试
8.4.1测试驱动开发
8.4.2代码覆盖
8.4.3自我描述的代码
8.4.4命名规则
8.4.5伪代码
8.4.6注释
8.5用类实现防御式编程
8.5.1修饰符
8.5.2接口
8.6防御式编程小结
8.7设计模式
8.8总结
8.9本章要点
第9章 调试
9.1溢出bug
9.2 Pentium FDIV bug
9.3符号
9.3.1符号服务器
9.3.2源码服务器
9.4抢先式调试
9.5主动型调试
9.5.1托管调试助手
9.5.2 MDA举例
9.5.3代码分析
9.5.4性能监视
9.6调试
9.7调试工具
9.7.1 Visual Studio
9.7.2 .NET框架工具
9.7.3 Windows调试工具
9.7.4 CL R Profiler
9.7.5 Sysinternals
9.8跟踪
9.8.1 Web应用程序跟踪
9.8.2异常处理
9.9生产调试
9.10总结
9.11本章要点
第10章 代码分析
10.1投资测试过程
10.1.1定义测试的节奏
10.1.2建立测试工作项的跟踪
10.2采用自动化的代码分析
10.2.1使用静态代码分析工具
10.2.2编写应用程序测试代码
10.2.3使用Visual Studio进行测试
10.3通过度量来理解质量
10.3.1衡量代码的复杂度和可维护性
10.3.2通过透视来理解质量
10.4微软内幕:Microsoft.com的Web分析平台的质量管理
10.4.1代码质量的重要性
10.4.2测试投资
10.4.3管理质量
10.5总结
10.6本章要点
第11章 改进工程流程
11.1工程流程改进的技巧
11.1.1建立起关注质量的项目节奏
11.1.2实现源码控制和提交流程
11.1.3每日发布和测试代码
11.1.4自动化每日构建
11.1.5使用MSBuild
11.1.6创建并执行质量指标
11.2总结
11.3本章要点
第12章 态度决定一切
12.1激情
12.2线性还是迭代
12.3销售为王
12.4灵活性
12.5解决实际问题
12.6你要负责
12.7把移植代码当做新代码来写
12.8重构
12.9优先级
12.10从实际出发
12.11拥抱变化
12.12拓展视野
附录A敏捷开发资源
附录B Web性能资源