# agile-development **Repository Path**: yuantao99/agile-development ## Basic Information - **Project Name**: agile-development - **Description**: 敏捷软件开发:原则、模式与实践 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-30 - **Last Updated**: 2022-07-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 书籍介绍 **《 敏捷软件开发:原则、设计与实现(C#)》** 2002年10月,Bob大叔(Robert C.Martin)终于推出了软件开发社团期待已久的Agile Software Development, Principles, Patterns, and Practices一书。该书以真实案例为基础,通过真实开发场景再现的方式对软件开发中涉及的各种知识及其有效的运用方法进行了讲解。 次年,Bob大叔又推出了另外一本书UML for Java Programmers。该书秉承了上一本书的讲解风格,不过其重点在于UML。Bob大叔在书中介绍了一些常用的UML特性;更为重要的是,他把重点放在了如何在真实的项目开发中,以注重实效的态度来使用 UML。 为了让.NET开发社团也能够像Java社团那样,学习到这些可以改善软件开发状况,并让程序员感受到开发乐趣的敏捷开发和敏捷设计的权威知识,"Bob大叔"于2006年7月推出了一本新书Agile Principles, Patterns, and Practices in C#,也就是读者正在阅读的这本书。按照Bob大叔的说法,这本书是他前两本书的合订本。 在本书中,"Bob 大叔"去除了前两本书中的重复内容,并把它们有机地融合在一起。此外,对于书中的案例也做了相应的调整,去掉了不为大多数开发人员熟悉的气象站案例以及略显仓促的ETS案例。"Bob 大叔"对具有典型代表性的薪水支付应用案例进行了增强,使其贯穿全书,并增加了关于数据库和MVP模式两章内容使得该案例更加完整。这种做法使得本书读起来更加顺畅。 ### 书籍前言 敏捷开发(Agile Development)就是指能够在需求迅速变化的情况下快速开发软件。为了达到这种敏捷性,我们需要使用一些实践提供必要的准则和反馈,需要使用一些设计原则使我们的软件保持灵活且可维护,还需要理解一些已经被证明在特定问题中可以权衡这些原则的设计模式。本书试图将这3个概念融汇起来,使它们成为有机的整体。 本书首先描述了这些原则、模式以及实践,然后通过许多案例来演示如何应用它们。更重要的是,案例给出的并不是最终的结果,而是设计的过程。你会看到设计者犯错误;你会看到他们如何找到错误并最终改正;你会看到他们对问题苦思冥想,面对一些难以权衡的含糊问题的疑惑与探索。是的,你会看到设计的真正历程。 本书由四个部分和两个附录组成。 第一部分:敏捷开发。本部分描述了敏捷开发的概念。首先介绍了敏捷联盟宣言,然后提供了对极限编程(XP)的概述,接着讨论了许多阐明个别极限编程实践的小案例,特别是那些影响设计和编写代码方式的实践。 第二部分:敏捷设计。本部分中的各章谈论了面向对象软件设计:什么是面向对象软件设计,管理复杂性的问题以及技术,面向对象类设计的一些原则。本部分最后几章讲述UML实用子集。 第三部分:薪水支付案例研究。它描述了一个简单的批量处理薪水支付系统的面向对象设计和C#实现。本部分的前几章描述了该案例研究会用到的一些设计模式。最后一章包含了完整的案例研究,这也是本书中最大和最完整的一个案例。 第四部分:打包薪水支付系统。本部分开始描述面向对象包设计的一些原则。接着,通过增量地打包上一部分中的类来继续阐明这些原则。本部分最后讲述薪水支付应用的数据库和UI设计。 接下来是两个附录:附录A,"双公司记";附录B,Jack Reeves的文章"什么是软件"。