极限编程在WEB开发中的作用

极限编程在WEB开发中的作用

当我写下这个题目的时候就纠结了,好吧,我还是解释下为什么C++论文会写WEB开发,当然我还没那个水平直接用C++来做WEB开发。只是当我想写极限编程这个题目的时候发现原来这是一个软件工程的方法学,悲剧的是我压根就没用C++写过项目,哪怕是最简单的。更不用说什么用户需求与程序员代码编写之间的交流联系什么的了。我仔细想了一下,发现这东西跟我之前用PHP开发网站项目的过程中遇到的很多东西还是很有关系,很多地方值得学习的,所以还是值得一写的。

我这次主要看的书是《解析极限编程:拥抱变化》。发现这是本老书了,既然这么久了还有讨论的意义,那必然有很多有远见的东西。先解释下极限编程的定义吧。极限编程(XP)是是一种软件工程方法学,是敏捷软件开发中最富有成效的几种方法学之一。如同其他敏捷方法学,极限编程和传统方法学的本质不同在于它更强调可适应性而不是可预测性。XP的支持者认为软件需求的不断变化是很自然的现象,是软件项目开发中不可避免的、也是应该欣然接受的现象;他们相信,和传统的在项目起始阶段定义好所有需求再费尽心思的控制变化的方法相比,有能力在项目周期的任何阶段去适应变化,将是更加现实更加有效的方法。

那为什么我会觉得极限编程在WEB网站开发的过程中十分有用呢?因为WEB开发的整个流程与极限编程讨论的开发情景十分的符合。一、一般来说,极限编程被认为对于少于12人的小团队很有用,我们在WEB网站开发的过程中一般的项目人员基本控制在5人左右,1个美工1个前端1个项目管理人员还有1-2个程序员。二、PHP本身设计上与JAVA等语言相比的优势就是适合快速开发,这也正是极限编程所讨论的。三、WEB开发的过程中各个阶段性工作完成后都会跟客户交流讨论,并需要不断修改更正,以及各个职能之间的相互协调。这些问题的讨论都是敏捷开发,极限编程出现的原因。

如果抽象的讨论极限编程所提出的一些思想其实意义并不大,只是多了一遍重复赘述。所以我想试着讨论开发过程中的一些问题和极限编程思想的契合点以及改进点进行讨论,这样也对我以后进行相关开发会有很多的借鉴意义。所以我就按一个项目的确立、及时紧密讨论纠错、合作修正三个方面来讨论。

首先是项目的确立。极限编程强调四种价值:交流,简易,回馈,勇气。XP 程序员之间紧密的相互交流,XP 程序员也和客户紧密的交流。他们总是保持他们的设计简单明了。项目一开始,XP 就强调通过对软件的不断测试来获得反馈,程序员尽可能早的把软件交给客户,并实现客户对软件需求提出的变化,有了这些基础,XP 程序员就可以自信的面对需求和软件技术的变化。 项目初期就不能仅仅是简单的客户提出需求就可以确立项目,在对于项目的讨论时就需要各方面的人员参与讨论,用户提出相关需求,美工简述页面设计思路,前端提出简单的用户交互方案和页面效果的预想,程序员分析代码实现的可行性。各方面提出自己的初步想法与客户沟通,初步确定实施方案,以确保项目的确立是充分满足客户需求的,尽量避免开始执行之后出现由于不明白客户需求而产生的重大变动。然后就是项目负责人开始撰写相关文档,明确项目开发的各个流程执行的明细和时间。最后团队阅读修正明确整个项目流程了之后就可以正式开始确立这一个WEB项目了。

第二个不可避免的过程就是对项目的及时紧密讨论纠错的环节。极限编程提出快速反馈的思想其实就是这个意思。从开始采取行动,到获得行动的反馈,二者之间的时间至关紧要。和其他人一共开发模型,你的想法可以立刻获得反馈,特别是你的工作采用了共享建模技术的时候,例如白板、CRC卡片或即时贴之类的基本建模材料。和你的客户紧密工作,去了解他们的的需求,去分析这些需求,或是去开发满足他们需求的用户界面,这样,你就提供了快速反馈的机会。项目每进行关键步骤有什么成果就需要及时反馈给用户以获得用户的意见。并不断修正错误,改进体验,这个过程中如果必要还要修正相关文档,最终达到完全与用户需求相符合。在这个过程中可以看到任务卡其实是个很好的管理项目进程的方法,不断根据问题改进修正任务。这种做法一方面便于调节任务进度,另一方面对于问题的改进更有针对性,在一个时间段能更方便的聚集全团队的智慧与精力更好的解决某个问题。

最后一个想说的方面是合作修正。极限编程提出单元测试的思路,单元测试是用以测试一小段代码的自动测试(例如:类,方法)。在极限编程中,在代码编辑前就编辑单元测试。这种方式的目的是激励程序员设想程序员的代码在何种条件下会出错。极限编程认为当程序员无法再想出更多能使程序员的代码出错的情况时,这些代码便算完成。在发现与修正问题的过程中,程序员应当遵循单元测试的思路,逐个解决问题,测试代码。在实际项目的实施过程中还有一个很重要的地方就是要加强成员之间的交流,借助SVN工具实现代码合作同步的同时,要先明确各自的任务方向,防止不必要的错误。

最后,说下自己的感受吧,之前在红岩网校做过一些WEB方面的项目,这次也算是第一次如此全面具体的反思整个项目流程,并结合了很多极限编程的思想。其实书中提到的很多问题我在实际开发的过程中都遇到,只是之前没有想到别人已经如此具体系统详细的都已经把这些问题都讨论过了。看来多阅读书籍的作用确实很是明显的。以后再开发的过程中我肯定会更加注意自己以前遇到过的一些问题,也会在遇到问题的时候多参考这些成熟的项目工程方法。

极限编程在WEB开发中的作用

posted @ 2012-12-25 15:41  llsun  阅读(322)  评论(0编辑  收藏  举报