《敏捷软件开发读书笔记之一》

 

                                                                                   《敏捷软件开发读书笔记之一》

  要想成为一名优秀的软件开发者,需要熟练应用编程语言和开发工具,更重要的是能够领悟代美代码背后的原则和前人总结的经验——这正是本书的主题。本书凝聚了世界级软件开发大师RobertCMartin数十年软件开发和培训经验,不仅是一部深入浅出、生动易懂的面向对象原则与模式著作,而且还是一部通俗的敏捷方法导引书和快速实用UML教程。分为敏捷开发,敏捷设计,薪水支付案例研究,打包薪水支付系统,气象站案例研究和ETS案例研究六个部分,包含30个章节。以下是我对前两个部分的认识及见解:

  以下六章是对第一部分敏捷开发的认识及见解:

  “敏捷实践“一章讲述了:每一位软件开发人员,每一个开发团队的职业目标,都是给他们的雇主和客户交互最大可能的价值,可是,我们的项目以令人沮丧的速度失败,或者未能交互任何价值。虽然在项目中采用过程方法是出于好意的,但是膨胀过程的方法对于我们的失败至少是应该承担一定的责任的。敏捷软件开发的原则和价值观构成了一个可以帮助团队打破过程膨胀循环的方法,这个方法关注的是可以达到团队目标的一些技术。

  “极限编程概述”介绍了极限编程是一组简单,具体的实践,这些实践结合在一起形成了一个敏捷开发过程。该过程已经被许多团队使用过,并取得良好的效果,极限编程是一种优良的,通用的软件开发方法。项目团队可以直接采用,也可以增加一些实践,或者对其中的一些实践进行修改后再用。

  ”计划“中揭露了当项目进入一个可预测及舒适的开发节奏时,唯一能够实实在在的看到项目的实际进展的是涉众,使用敏捷开发方法并不意味着就可以达到涉众想要的效果,仅仅意味着他们将能够控制着团队以最小的代价获得最大的商业价值。

  “测试”最重要的好处就是它对于构架和设计的影响为了使一个模块或者应用程序具有可测试性,必须要对它进行解耦合,越是具有可测试性,耦合关系就越弱。全面的考虑验收测试和单元测试的行为对于软件的结构具有深远的正面影响。

  “重构”后的程序的读起来比一般的要好得多,程序工作也更好一些,它的目的是可以每天清洁你的代码,只有代码清洁了,我们才能对我们的系统进行扩展和修改。

  “一次编程实践”告诉我们图示有时是不必要的,比如在创建了它们的代码就打算去循环它们时,图示就是无益的。画一幅图来探究一个想法是没有错的,然而画一幅图后,不应该假定该图就是相关任务的最好设计,最好的设计是一小步一小步形成的。

    以下是我从第二部分“敏捷设计”中得到的收获:

  “什么是敏捷设计”一章阐述了敏捷设计是一个持续的应用原则,模式以及实践来改进软件的结构和可读性的过程,它致力于保持系统设计在任何时间都尽可能得简单,干净以及富有表现力。而且敏捷开发人员不会对一个庞大的预先设计应用那些原则和模式,这些原则和模式被应用在一次次的迭代中,力图使代码以及代码所表达的设计保持干净。

  “单一职责原则”中介绍了SRP是所有原则中最简单之一,也是最难正确应用之一,软件设计真正要做的许多内容,就是发现职责并把那些指责相互分离。

  “开放——封闭原则”可以带来面向对象技术所声称的巨大好处,并不是说只要使用一种面向对象语言就遵循了此原则,对于应用程序中的每个部分都肆意的进行抽象同样不是一个好主意,正确的做法是开发人员应该仅仅对程序中呈现出频繁变化的那些部分做出抽象,拒绝不成熟的抽象和抽象本身一样重要。

   若“Liskov替换原则”应用得有效,应用程序就会具有更多的可维护性,可重要性以及健壮性。正是子类型的可替换性才使得使用基类类型的模块在无需修改的情况下就可以扩展。若果没有显示地强制积累类型的契约,那么代码就必须良好的并且明显的表达出这一点。

  “依赖倒置原则”策略是依赖于细节的,面向对象的程序设计倒置了依赖关系结构,使得细节和策略都依赖于抽象,并且常常是客户拥有服务接口,此原则实现了许多面向对象技术所宣称的好处的基本底层机制,它的正确应用对于创建可重要的框架来说是必须的。同时它对于构建在变化面前富有弹性的代码也是非常重要的,由于抽象和细节彼此隔离,故代码也比较好维护。

  “接口隔离原则”中揭露了胖类会导致它们的客户程度之间产生不正常的并且有害的耦合关系,客户程序应该仅仅依赖于它们实际调用的方法,通过把胖类的接口分解为多个特定的客户于客户程序的接口,可以实现这个目标。每个特定于客户程序的接口仅仅声明它的特定客户或者客户组调用的那些函数。接着,该胖类就可以继承所有特定于客户程序的接口,并实现它们。这就解除了客户程序和它们没有调用的方法间的依赖关系,并使客户程序之间不依赖。

 

posted @ 2015-04-25 22:07  Twinklelittlestar  阅读(446)  评论(0编辑  收藏  举报