计算机——好文章.doc
上传人:sy****28 上传时间:2024-09-13 格式:DOC 页数:10 大小:60KB 金币:14 举报 版权申诉
预览加载中,请您耐心等待几秒...

计算机——好文章.doc

计算机——好文章.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

14 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

1.《以史为鉴软件开发未来路在何方?》1975年FrederickBrooks写出了软件项目管理的经典著作——《人月神话》。在这本书中,他最著名的观点就是,软件项目中并非总是人多力量大,他认为增加更多的人到软件开发项目中非但不会让项目进展更快,相反会起到阻碍作用。理由是让更多的人在一个项目上工作会因交流中的不顺畅而造成诸多问题。在《人月神话》面世的五年之前,瀑布模型软件开发方法就已经诞生。这种方法将成长工程学的观点运用到软件中。其指导思想是,首先收集需求,然后进行设计,接下来实施,然后经过测试,最终得到我们需要的软件成品,这种方法指导下的软件开发是一个线性的过程。自此以后在软件开发方面我们已经走过了一段很长的路,已经学习到了许多相关的知识。我们现在知道,瀑布模型是一种有缺陷的方法,因为它非常不灵活和不符合实际情况。在真实的世界中,软件项目通常会存在定义不清和不断变化的需求,要想一次把所有事情都考虑到是一件不可能的事情。取而代之的是,今天最好的软件是使用敏捷方法来创建和改进的。这类技术可以让软件开发工程师根据业务和客户的需要来不断的继续重新设计软件。随着现代编程语言的到来,诸如Java、PHP、Python和Ruby等,以及丰富的代码库和来自类似Amzon的空前的底层服务的出现,我们正在进入另一个革命性的阶段。Digg、del.icio.us、YouTube等新的Web时代的典范只是由一小部分程序员所开发的。为了创建今天的软件,你只需要有一些真正有才华的程序员就可以了。在这篇文章中,我们将描绘出软件开发走到今天的轨迹,以及未来将走向何方。为什么瀑布模型会失败非技术领域的人一般会认为,软件是一个非常灵活或容易修改的东西,认为它没有可以看得见摸得着的东西的约束,因此可以在任何时候任意的修改。当然,这是一种错误的看法。和任何机械系统一样,软件具有设计和架构;它并不像看起来那么灵活。然而,加速发展的业务需要人们对软件进行不断的修改。老的开发方法已经完全不能满足这种需要。使用瀑布模型,这些修改是不可能的,开发周期会非常长,系统会会耗费过多的人力、物力成本,而且通常情况最终开发出的软件却并不好用。瀑布模型落伍的问题在于傲慢自大。这种傲慢自大则来自于这样一个因素:我们相信可以一蹴而就的制作出一个完美的系统。瀑布模型存在的第二个问题是它是一个成长性方法,不适合动态系统,而正是这种进化的思想导致了敏捷方法的推出。敏捷方法—为不断发展的软件而生在90年代初,许多敏捷软件开发方法就已经出现。尽管它们在细节上有所不同,在总体上思想上一致的:它们都认为对于软件开发方法需要进行重新思考。首先,软件应该不得不接受被修改的现实。今天的设想和需求在明天可能已经发生变化,软件需要迅速的响应这些变化。为了面对这种挑战,敏捷方式主张简单化。制作能够满足今天需求的最简单的系统,而且要做好明天修改的准备。敏捷方法所倡导的两个技术值得特别关注:重构和开发测试。MartinFower在他的经典著作中将一种开发思想优雅的称为重构(refactoring):在不改变现有代码工作方式的前提下改善其设计。重构可以允许敏捷的系统接受修改,同时又保持软件的稳定和效率。如同一个装潢设计师不断的改变和完善你的家具的布局,敏捷开发者为了从整体上改进他的产品可以不断的修改代码。代码被不断的修改,可以确保我们最终拥有一个可以反映我们目前需要的最简单、最合适的系统。使用敏捷方法创建的软件系统要成功的多,因为它们已经采取了改进,可以适应需求不断改变这个问题。这些系统如同一个有生命的东西,可以不断的变化以适应一直变化的需求。毫无疑问,敏捷方法在两方面对今天我们开发软件的思维方式带来了很大的冲击:动态编程和连续编程。代码库让软件开发更轻松在我们发现了软件开发的更好的方法的同时,我们还发现了更好的编程语言。C语言被C++所替代,接着又出来Java语言。Perl虽然非常伟大,但是PHP和Python更进一步优化了它。最近又除了Ruby,由于其在表达代码时非常自然的特点,它已经成为最受欢迎的编程语言之一。综上所述,今天我们拥有了许多优秀的编程语言。尽管编程语言的选择通常是一个敏感的话题,不过事实上我们选择的并不是语言本身,而让我们作出不同选择的是语言所带的代码库的强弱。是什么让Java把C++取而代之?是的,Java是一个更简单的语言,但是在十年的时间中人们一直很好的使用C++,它难道不如Java?问题就在于代码库。C++从来没有Java所拥有的标准库。让Java具备优势的正是其丰富的可重用的代码库。PHP也是如此。它已经成为最适合Web开发者的选择,因为它具有非常丰富的功能来支持Web和数据库处理。除了现代编程语言所带来的丰富代码库外,开源运动也为全球软件界贡献了大量的