`
herryhaixiao
  • 浏览: 90140 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

什么是敏捷设计开发

 
阅读更多

   敏捷设计是一个过程而不是一个事件。它是一个持续的应用原则、模式以及实践来改进软件的结构和可读性的过程。它致力于保持系统设计在任何事件都尽可能得简单、干净以及富有表现力。

   敏捷开发最不能容忍的几点:

  • 僵化性:很难对系统的某一部分进行改动,因为改动这个有可能引发别的也需要一同改动;
  • 脆弱性:对系统改动会导致系统中和改动的地方在概念上无关的许多地方出现问题;
  • 牢固性:很难在其他系统中使之重用;
  • 粘滞性:做正确的事情比做错误的事情要困难;
  • 不必要的复杂性:对系统过于封装的复杂,使程序不易看懂;系统中含有使用不到的代码;
  • 不必要的重复:在系统中多处地方出现类似的代码;
  • 晦涩性:代码很难理解,很难阅读,没有很好的表现出意图。

    在大多数软件项目中最不可预测的就是需求的变化,这是作为软件开发人员必须接受的事实!我们生活在一个需求不断变化的世界中,我们的工作要保证我们的软件能承受住需求的变化。如果承受不住需求的变化,那么敏捷开发就是失败的。

敏捷开发致力于马拉松赛跑,一步一个脚印,慢慢积累,最开始使用最简单的做法,在以后的一天天里慢慢的改进原先的代码,当看到有需要修改的代码,作为敏捷开发人员必须要马上改掉,而不应该散漫和推脱。

    简而言之,敏捷开发人员知道自己要做什么,是因为:

  1. 遵循敏捷时间去发现问题;
  2. 应用设计原则去分析问题;
  3. 适当运用设计模式去解决问题; 

  而我把敏捷开发人员需要知道自己做什么简单的定义为3q法则,3代表三条,q代表中文的去的首字母。时刻记住这3q法则,则能很好的知道自己在做项目中处于一个什么角色。

  保持尽可能好的设计,做到一个敏捷开发人员该有的特质,看到不好的代码改之,看到不好的设计改之,尽可能的使代码通俗易懂,从而给人的感觉像是一个人开发的一样,做到人人可以看得懂别人写的代码,人人可以动手改别人不好的代码。这就好小时候医生给我们打防御疫苗一样,没跟针都进过消毒,消毒过程是对每个小孩生命的正西(当然对于部分所谓的医生我直接无视),如果没有消毒过程,那么被感染的风险会大大提高,这是难以忍受的。敏捷开发对于我们程序员来讲是同样的道理。

     总之,源代码一定要保持干净,简单,稳定,职业特性使我们有着对代码有精益求精的精神。虽然敏捷开发在中国很难坚持,但是还是尽量做到最好。

分享到:
评论
12 楼 hobitton 2010-08-27  
lz大哥比较喜欢copy文字啊,,。。。。。。。这真得隐藏。。。
11 楼 csc365kl 2010-07-05  
我感觉比较适合打 一枪换一个地方的
10 楼 ajonjun 2010-07-02  
是一种思想,个人并不认同敏捷,不是所有项目适用的。
9 楼 lizhou 2010-06-28  
支持LZ,虽然就中国人目前的习惯和做法来说,真正的敏捷开发实施很困难。但仍然希望有人坚持下去
8 楼 herryhaixiao 2010-06-28  
gigix 写道
想法很好,还可以深思下去。继续努力吧。

恩,我会努力的,但是看到那么多投隐藏的,不知道是否值得继续下去,似乎在国内大部分没多少人肯定这种模式?
这个模式开发是要需要单元测试来保证的,可以确保功能的准确性,开发前先用单元测试写出需要的功能,然后在改不好的代码,这个就能控制bug的产生了。
每个功能点都用junit对应,这样看到不好的代码就可以随意改动了,但是改动后的结果符合测试的结果就好了,不知这个您有什么看法。
7 楼 see8di 2010-06-28  
這是一種趨于理想狀態的開發模式,要做到如此不容易,除非所有的程序員都是老手否則還是蠻難的.
6 楼 一蓑烟雨任平生 2010-06-27  
不好意思,是俺6月21日投的,俺投隐藏的时候,没想到gigix要来教育LZ。
5 楼 daquan198163 2010-06-27  
这是谁投的隐藏啊,没看gigix快要引导LZ找到问题的关键了么
4 楼 gigix 2010-06-27  
herryhaixiao 写道
敏捷开发我想是适用于有几年工作经验以上并且有能力的程序员,而且要了解项目的整个架构,如果是抱着出了问题谁负责的态度,那你就是一普通程序员,不适合敏捷开发。上线出事故,这种问题确实是有风险,这就有必要要求开发人员和测试人员严格把关了。

你这话说了,仍然是没有解决问题。

比如说吧,如果一个项目里都是普通程序员,“有几年工作经验以上并且有能力的程序员”都去做了项目经理或者跳槽了,那你怎么办?是不是就只能对他们说,不好意思,你们不适合敏捷开发?那么你讲的这套东西,说穿了就是:有好的程序员,就能做出好的设计;只有普通程序员,就做不出好的设计。那这套所谓的方法,到底有什么用呢?

再比如说吧,你说一句“严格把关”,怎么把?某公司开发一个BOSS系统,光是一轮关键业务回归测试就要做3~5天。一个月要给局方上一个版本,有几个3~5天来做回归测试?你看到不好的代码改之了,这句“严格把关”叫开发人员和测试人员怎么去落地?

想法很好,还可以深思下去。继续努力吧。
3 楼 herryhaixiao 2010-06-27  
gigix 写道
引用
保持尽可能好的设计,做到一个敏捷开发人员该有的特质,看到不好的代码改之,看到不好的设计改之,尽可能的使代码通俗易懂,从而给人的感觉像是一个人开发的一样,做到人人可以看得懂别人写的代码,人人可以动手改别人不好的代码。这就好小时候医生给我们打防御疫苗一样,没跟针都进过消毒,消毒过程是对每个小孩生命的正西(当然对于部分所谓的医生我直接无视),如果没有消毒过程,那么被感染的风险会大大提高,这是难以忍受的。敏捷开发对于我们程序员来讲是同样的道理。

总之,源代码一定要保持干净,简单,稳定,职业特性使我们有着对代码有精益求精的精神。虽然敏捷开发在中国很难坚持,但是还是尽量做到最好。

如果代码一改就有可能出错,你怎么办?
原来的代码虽然不干净,至少是可以工作的。你一改,改坏了,出了线上事故,造成了损失。这种情况,你怎么办?

恩,是的,你说出了中国很多程序员的心声,想改又怕改错,怕承担责任,针对这种问题确实是比较头痛的,其实大部分都知道自己的项目有什么地方写的不好,但是都觉得只要不是自己的模块就无关紧要,而且出了问题也不是我的责任,再说框架是架构师设计的也没必要去管它,普遍程序员都是这种心态,所以就会出现诸如电信项目里面的代码及其混乱,二期开发很难入手的传言。敏捷开发我想是适用于有几年工作经验以上并且有能力的程序员,而且要了解项目的整个架构,如果是抱着出了问题谁负责的态度,那你就是一普通程序员,不适合敏捷开发。上线出事故,这种问题确实是有风险,这就有必要要求开发人员和测试人员严格把关了。
2 楼 gigix 2010-06-27  
引用
保持尽可能好的设计,做到一个敏捷开发人员该有的特质,看到不好的代码改之,看到不好的设计改之,尽可能的使代码通俗易懂,从而给人的感觉像是一个人开发的一样,做到人人可以看得懂别人写的代码,人人可以动手改别人不好的代码。这就好小时候医生给我们打防御疫苗一样,没跟针都进过消毒,消毒过程是对每个小孩生命的正西(当然对于部分所谓的医生我直接无视),如果没有消毒过程,那么被感染的风险会大大提高,这是难以忍受的。敏捷开发对于我们程序员来讲是同样的道理。

总之,源代码一定要保持干净,简单,稳定,职业特性使我们有着对代码有精益求精的精神。虽然敏捷开发在中国很难坚持,但是还是尽量做到最好。

如果代码一改就有可能出错,你怎么办?
原来的代码虽然不干净,至少是可以工作的。你一改,改坏了,出了线上事故,造成了损失。这种情况,你怎么办?
1 楼 chellman 2010-06-27  
说的挺好的。
看到不好的代码改之,看到不好的设计改之。其实更多的时候是人的惰性和自扫门前雪的心理在作祟。

相关推荐

    浅谈敏捷开发中的设计.doc

    不过,敏捷设计并不像传统开发那样产生详尽的文档,而是更加注重可执行的、轻量级的设计输出。 **数据结构设计**在敏捷和传统开发中都是必不可少的。敏捷开发的数据结构设计通常从业务模型(领域模型)开始,然后...

    敏捷软甲开发设计 敏捷软甲开发设计 敏捷软甲开发设计

    敏捷软件开发设计是一种快速响应变化、迭代且以人为本的软件开发方法论。它的核心理念在于通过短周期的迭代和持续的反馈来提高效率和质量。在敏捷开发中,团队以小步快跑的方式推进项目,每次迭代都产出可用的软件,...

    敏捷软件开发.pdf

    Martin(也被称为“鲍勃叔叔”),作为软件开发和工程领域的大师,阐述了敏捷开发中的核心原则、设计模式和实践,尤其是在极限编程(Extreme Programming, 简称XP)方面的应用。XP是一种敏捷软件开发方法,它在预算...

    敏捷开发,敏捷开发,敏捷开发,敏捷开发

    ### 敏捷开发的核心理念与实践 #### 一、敏捷开发概述 敏捷开发是一种强调灵活性、快速响应变化的软件开发方法论。与传统的瀑布模型相比,敏捷开发更加注重团队之间的紧密协作、持续改进以及高质量的产品交付。...

    敏捷软件开发原则、模式与实践.pdf

    对于高校计算机专业本科生、研究生和软件学院的师生而言,这本书可以作为学习敏捷开发、极限编程、面向对象设计模式以及UML等知识的重要教材或参考资料。对于已经工作在软件开发和管理岗位的专业人士,这本书同样...

    敏捷开发的艺术

    现在已经有大量的书籍描述敏捷开发是什么或者为什么它能帮助软件项目成功,但很少有哪一本书能把针对开发者、管理者、测试者和客户的信息合并成一个整体,从而使其能够直接应用。, 本书为敏捷的计划、开发、交付和...

    敏捷软件开发:原则、模式与设计

    这本综合性、实用性的敏捷开发和极限编程方面的指南,是由敏捷开发的创始人之一所撰写的。 [b][font color="#ff6600"]特色内容: ●讲述在预算和时间要求下,软件开发人员和项目经理如何使用敏捷开发完成项目。 ●...

    敏捷软件开发:原则、模式与设计.pdf

    敏捷软件开发:原则、模式与设计.pdf敏捷软件开发:原则、模式与设计.pdf

    敏捷开发与测试

    敏捷测试更重视测试在需求分析、设计和实现阶段的作用,并注重测试与开发的紧密配合。 敏捷开发方法包括多种形式,例如极限编程(XP)、Scrum、敏捷建模(AM)、自适应软件开发(ASD)、水晶方法(Crystal)、特性...

    敏捷软件开发 原则模式与实践

    首先,我们要理解什么是敏捷软件开发。敏捷开发是一种以人为本、迭代且增量的软件开发方法论,强调灵活应对需求变化,以客户满意度为核心目标。它提倡快速响应变化,通过短周期的迭代,不断交付可用的软件,从而提高...

    敏捷软件开发与设计的最佳实践

    敏捷软件开发现在是很流行的,来参加一次这方面设计的最佳实践

    敏捷软件开发精要.pdf

    敏捷开发还包括敏捷极限编程(XP),它是一种增强软件开发实践的方法,包括计划游戏、持续集成、测试驱动开发、重构和简单设计等实践。XP要求团队成员严格遵守这些实践,从而提升软件的质量和生产效率。 敏捷宣言下...

    敏捷开发 介绍 文档

    敏捷开发是一种以人为核心、迭代、循序渐进的开发方法论,强调灵活性和客户协作,以适应快速变化的需求。这种开发模式起源于2001年,由一群软件开发专家共同提出的敏捷联盟宣言和12条实践原则,旨在解决传统开发过程...

    C++ 敏捷开发资料

    **C++ 敏捷开发资料概述** 敏捷开发是一种软件开发的方法论,强调灵活性、迭代式开发和快速响应变化。在C++这样的编程语言背景下,敏捷开发可以帮助团队更高效地完成项目,提高软件质量和用户满意度。这份资料包...

    敏捷软件开发:原则、模式与实践清晰扫描中文版PDF(503页完整版)

    它通过具体的案例,展示了如何在实际项目中应用敏捷开发和极限编程的理念,并且如何在项目中有效地利用UML进行设计和沟通。通过丰富的源代码和案例分析,读者可以了解到在项目开发过程中如何有效地解决实际问题,...

    设计模式经典书 敏捷软件开发

    敏捷软件开发 原则模式及实践 非常好的书。

Global site tag (gtag.js) - Google Analytics