04 2008 档案
摘要:一 tomcat的端口的修改打开Tomcat目录-->Tomcat 5.5-->conf-->下的server.xml文件,修改端口好就可以了.------------------------------------------------------------------------------------------------ <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25
阅读全文
摘要:前面介绍了怎么样发送纹理下载请求到服务器,那么在第二人生里又是怎么样接收纹理图片的呢?接着就来讨论这个问题,它的代码如下:这是一个静态成员函数,主要为了给网络消息系统回调使用的。#001// static#002void LLViewerImageList::receiveImageHeader(LLMessageSystem *msg, void **user_data)#003{#004 LLFastTimer t(LLFastTimer::FTM_PROCESS_IMAGES);#005 #006 // Receive image header, copy into image obje
阅读全文
摘要:今天写数据库写的头晕,突然下了首歌,听得我精神啊也许贪心的我也舍不得吧,亲爱的。。。不过舍不得最终还是要舍得,突然间很喜欢这首歌。。。弦子 - 舍不得第一次你陪我坐着我的手心是空空的我知道那些简讯声你努力藏著还怕我难过不追问到底为什么是我最后的温柔想笑着附和说分开是好的但我们却怎么一起哭了我舍不得可是时间回不去了爱你很值得只是该停了没有我你要好好的我舍不得最后一次抱紧你了我们错过的错了就错了不用担心我我不爱你了不追问到底为什么是我最后的温柔想笑着附和说分开是好的但我们却怎么一起哭了我舍不得可是时间回不去了爱你很值得只是该停了没有我你要好好的我舍不得最后一次抱紧你了我们错过的错了就错了不用担心我
阅读全文
摘要:Yesterday I receive 'Programing' by the csdn,At here, I'll say thank to csdn and also thank them give our information to share, blog to write and communion with some firend.by the way, the email always automatically resend information follow.This is an automatically generated Delivery St
阅读全文
摘要:这里接着上一次获取纹理图片线程,继续分析发送纹理图片请求到服务器。代码如下:#001void LLTextureFetch::sendRequestListToSimulators()#002{#003 const S32 IMAGES_PER_REQUEST = 50;#004 const F32 LAZY_FLUSH_TIMEOUT = 15.f; // 10.0f // temp#005 const F32 MIN_REQUEST_TIME = 1.0f;#006 const F32 MIN_DELTA_PRIORITY = 1000.f;#007先同步多线程的访问。#008 LLMut
阅读全文
摘要:纹理图片对于3D程序来说比较重要的数据,如果没有纹理图片,就没有亮丽的外表,就没有丰富多彩的世界。在第二人生里,纹理图片不是随着程序一起发布的,而是不断地从服务器上下载的,这点是不像其它游戏,把所有图片全部预先下载好。下面就来分析一下纹理下载线程的工作过程。先从程序:LLAppViewer::getTextureFetch()->createRequest(getID(),getTargetHost(), decode_priority, w, h, c, desired_discard, needsAux())里调用createRequest函数来创建一个纹理图片下载。然后就在纹理下载
阅读全文
摘要:<head> <metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/> <title>提示信息框</title> <styletype="text/css"> a{color:#000;font-size:12px;text-decoration:none} a:hover{color:#900;text-decoration:underline} body{background:;filter:pr
阅读全文
摘要:I find everybody has a kind heart include me.I want to be a good person.写不下去了,还是用中文吧。。。自己可以把自己定位在善良仁慈的地位说善良是因为自己永远不忍心去伤害别人,当不小心或无意识伤害到别人时会很内疚,想要弥补一下说仁慈是因为自己没有一颗去伤害别人的心,也许自己说话比较直接,有时会无意伤害到别人有时希望鼓励别人做一些他们想做,值得去做的事,会用一定的激将法,可是好像不被人理解不知道xiaxia同学是怎么想的。为她好,她不知道,还以为我想怎么怎么的。哎,人生的悲哀。小孩就是小孩,永远不明白,虽然我也很幼稚,但是宿舍
阅读全文
摘要:前面介绍虚拟文件系统的线程,其实它是单一个线程来处理所有消息的,还有类LLLFSThread也是一样。在第二人生显示的软件里,图片是占了绝大部份数据,那么从服务器上下载的数据,都是压缩的图片,这样的图片大小就比较小一些,对于网络通讯就需要不太多带宽了,看到程序显示速度明显加快。下面就来分析一下这个线程到怎么样工作的?LLAppViewer::sImageDecodeThread = new LLWorkerThread("ImageDecode", enable_threads && true);上面这行代码就是创建图像解码工作线程的。LLImageWork
阅读全文
摘要:http://www.emex.ru/promo/ 俄罗斯方块游戏http://www.pestovogolf.ru/yacht/ 碰撞效果http://www.paritet98.ru/en/ 伸展效果
阅读全文
摘要:在虚拟文件系统的消息队列里,主要就是LLVFSThread::Request类的请求,Request类是嵌套类,定义在LLVFSThread类里面。它主要实现对类LLVFS的封装访问,让操作更加方便一些,当然它是继续QueuedRequest类的,这样才可以添加到消息队列里去,否则不能添加到这个消息队列容器,也不能实现请求处理的多态了。下面是类Request的构造函数。#001LLVFSThread::Request::Request(handle_t handle, U32 priority, U32 flags,#002 operation_t op, LLVFS* vfs,#003 co
阅读全文
摘要:在项目中以前一直用英文的登录帐号,但目前客户忽然提出一个问题,要求使用职工的中文姓名作为登陆帐号,但发现用中文作为登陆帐号系统会报异常,即使用了GBK作为字符集也不行,用acegi的代码进行调试,发现异常是在org.acegisecurity.util.FilterChainProxy类中抛出的,具体是在此类的子类VirtualFilterChain中下面的一句抛出异常 private VirtualFilterChain() {} public void doFilter(ServletRequest request, ServletResponse response...
阅读全文
摘要:原文 http://www.webware.com/html/ww/100/2008/winners.html The 100 top Web apps for 2008These are the 100 best Web 2.0 applications, chosen by Webware readers and Internet users across the globe. Over 1.9 million votes were cast to select these Webware 100 winners: 音乐 浏览器 商务 ...
阅读全文
摘要:由于第二人生是一个3D显示的软件,因此它就需要不断地从服务器下载大量数据,比如纹理图片,不同的角色是使用不同的纹理图片来实现不同的衣服外表的。当显示这些角色时,就使用从服务器下载的纹理图片。如果显示的人物角色比较多,比如有30个人时,这些纹理图片就需要保存到磁盘里。那么怎么样保存到磁盘里呢?保存到磁盘里就需要一个好的文件系统来保存,以及读取数据出来。读写磁盘是一项比较慢的工作,因此需要使用一个线程来实现。还有时读写文件并不需要及时性的动作,可以让线程等到CPU空闲时再去做这些事情。LLVFSThread类是继承LLQueuedThread类,这样LLVFSThread就变成消息循环处理类了。只
阅读全文
摘要:第二人生里使用线程循环来处理消息,这样的结构就比较清晰。比如有一个写文件的请求,就可以把这个请求放到线程队列里,然后唤醒线程,让线程处理这个请求。那么在第二人生里是怎么样构造消息循环呢?又是怎么样执行其它线程发过来的请求呢?带着这两个问题来分析下面这几段代码。#001void LLQueuedThread::run()#002{下面实现消息循环。#003 while (1)#004 {#005 // this will block on the condition until runCondition() returns true, the thread is unpaused, or the
阅读全文
摘要:对于跨平台的应用程序设计,考虑的东西一般都需要比较多,比如线程的设计,在Windows平台和Linux平台就是不一样的API,要适应这两种平台,就需要把这两种API接口通过封装成统一的编程接口,做这样工作的任务也是比较艰难的,因为需要不断地在两个系统上测试。由于Apache基金软件里有这样的共享库,就不必自己再去开发一套,使用现成的Apache软件既提高了开发效率,又可以保证跨平台运行。下面就来分析一下第二人生里是怎么样利用Apache运行库线程的。#001LLThread::LLThread(const std::string& name, apr_pool_t *poolp) :#
阅读全文
摘要:今晚看了下Flex的一些简单例子感觉比较强大,比较简单啊简简单单的几句代码就可以搞定比较复杂的东西可是感觉里面的函数比较多,初步接触就好像以前接触javascript一样不过对这个还是比较感兴趣的现在看来是比较简的,但估计精通还是比较困难的。希望能学好它啊不要像以前一样东学点西学点,什么都不知道想起以前学C++,C#唉,到现在是什么都忘记了,晕啊,不知道当初是怎么混过来的。。。最近过得感觉有点奇怪,哦,天啊。虽然没有上学期忙,但是要做的事还是比较多,可是觉得有点太清闲了。唉,不说啦,机房要关门了。。。下次使用Flex的时候再发表感想吧。。。
阅读全文
摘要:。作业原文: 大 学 生 活わたしは 毎朝 7時に 起きます。まず 顔を 洗います。それから 食堂で 朝ご飯を食べます。英語や 日本語を学ぶは 7時に 始まります。12時ごろ 友達と 昼ご飯を 食べます。日曜日と 月曜日と 金曜日の 午後は 授業が ありません。わたしは コンピューターのプログラミングを します。Flexが 主である。晩ご飯の 後、教室で 予習と 宿題を します。9時半ごろ ジョギングを します。それから 寮に 戻ります。寮はで 6人部屋です。ときどき 雑談する。消灯は12時です。 火曜日は 志願者の アルバイトを します。労働者に コンピューターを 教えます。李麗媛2008.
阅读全文
摘要:这篇长达100页的文章从硬件结构以及工作原理入手, 全面系统地介绍了程序如何使用内存以及应该怎么做内存优化。 对于想要修炼顶级内存操作功力的开发人员来说,这是一篇必读的武功宝典。http://people.redhat.com/drepper/cpumemory.pdf
阅读全文
摘要:一个很小的插件工具, 用于禁止/允许显示网页上的Flash: http://flash.melameth.com/togflash.html
阅读全文
摘要:今天在公司看到有一个同事在吃完冰激淋后,把剩下的塑料包装盒拿去洗。我当时心里在想, 不至于节约到这个地步吧??!!后来上去一问才知道,原来他是要把包装盒洗干净,回家的时候顺便开车送到专门回收塑料制品的地方。 我说公司不是也有专门回收塑料制品的垃圾箱么? 他告诉我塑料制品其实分很多类,公司那个垃圾箱写了只能回收第6类的, 而那个冰激淋的包装盒底部标的是第5类。 我仔细看了那个包装盒底部那个三角形的回收标记, 果然有个5。以前从来没有注意到, 汗!
阅读全文
摘要:多线程的程序是比较常见的,更何况是网络程序。随着多核CPU的发展,想提高程序的性能,只能靠多线程工作了。下面就带你看看第二人生是怎么创建多线程工作的,每个线程又是做什么样的工作。由于线程类是主动类,线程的工作结构就是程序的工作结构了,写一个好的程序,往往就是线程类的结构安排,也就是整个程序的架构实现。并且每个线程之间的交互,都需要小心地进行着,一着不慎就全盘皆输,造成多个线程之间死锁的出现,因此写多线程程序,总要如履薄冰,小心翼翼。#001bool LLAppViewer::initThreads()#002{定义是否允许跟内存。#003#if MEM_TRACK_MEM#004 static
阅读全文
摘要:如果上网的时候想做计算却懒得去打开windows自带计算器, 可以试试用IE的地址栏(如下图)。
阅读全文
摘要:在Windows XP系统里,如果一个程序出错了,就会产生一个程序错误报告,并且可以发送到微软去。对于用户自己开发的程序出错,并不需要发送到微软去,因为那样做是没有什么作用的,毕竟微软不会帮我们改正程序的,那么怎么样来修改出错时不发送到弹出程序出错报告呢?现在就来看看第二人生里是怎么样实现的吧。它的代码如下:#001void LLAppViewerWin32::disableWinErrorReporting()#002{#003 const char win_xp_string[] = "Microsoft Windows XP";下面判断是否XP系统。#004 BOOL
阅读全文
摘要:以展开刷新不改变的二级树形菜单,大类点击不展开小类,小类有旁边的图标展开。 <!--#includefile="conn.asp"--> <SCRIPTlanguage=JavaScript> var__cc_uid="shenglu"; </SCRIPT> <SCRIPTtype=text/javascript> varpersistmenu="yes"//"yes"or"no".MakesureeachSPANcontentcontainsan
阅读全文
摘要:在WEB应用中可通过ANT的API调用ant的工程配置文件来在线编译java文件,在工程配置文件中(如build.xml)将编译的class文件或者变更的xml文件直接复制到WEB-INF/classes中的对应目录,不用重新启动tomcat. 由于在平台应用中经常由用户定义表结构,并由表结构生成java实体类和hibernate映射文件,通过热编译部署的方式可不用停止WEB应用,下面是在Java中调用ant的代码,注意这种方式不是调用ant的批处理的,也不提倡这样做,下面的方式可使用户通过点击WEB页面上的按钮来调用ANT编译:package org.apache.easframewor..
阅读全文
摘要:消息解包已经看得比较多了,现在就来分析一下怎么样打包一个消息包。上面已经介绍了通过UDP发送消息包给服务器,这里主要介绍打包的过程,它的代码如下:#001void give_money(const LLUUID& uuid, LLViewerRegion* region, S32 amount, BOOL is_group,#002 S32 trx_type, const LLString& desc)#003{下面判断是否有钱要给别人。#004 if(0 == amount) return;给钱别人都是正值,没有给负钱的说法以。#005 amount = abs(amount
阅读全文
摘要:虽然上面介绍了这么多消息处理:从网络接收到数据,再从数据解释到数据获取,但没有一个清晰的流程,下面就来详细地分析这个数据流程是怎么样调用的。具体调用流程如下:1. LLAppViewer::idle() 空闲时处理函数。2. LLAppViewer::idleNetwork()空闲时处理网络事件。3. LLMessageSystem::checkAllMessages()检查消息系统所有消息。4. LLMessageSystem::checkMessages() 检查一下是否有消息接收到。5. LLTemplateMessageReader::readMessage()读取当前的消息。6. L
阅读全文
摘要:上面介绍了怎么样构造消息模板,并用它来灵活地生成各种各样需要传送数据的数据结构,现在就来分析一下使用模板怎么样去分析缓冲区里的数据,然后获取消息各个字段数据,这样才可以让别的程序使用起来。#001BOOL LLTemplateMessageReader::readMessage(const U8* buffer, #002 const LLHost& #003sender)#004{#005 return decodeData(buffer, sender);#006}在LLMessageSystem::checkMessages函数里调用readMessage函数来解包,而函数rea
阅读全文
摘要:这种灵活的通讯消息结构到底是怎么样实现的呢?下面就来仔细地分析它实现的代码,如下:#001// Read file and build message templates#002void LLMessageSystem::loadTemplateFile(const char* filename)#003{首先判断文件名称是否合法。#004 if(!filename)#005 {#006 llerrs << "No template filename specified" << llendl;#007 mbError = TRUE;#008 retu
阅读全文
摘要:<?php/**文件操作类,createbylinyupark,*/classFile{protected$path;//根目录例如./uploadfunction__construct($path){if(!is_dir($path))mkdir($path,0777);$this->path=$path;}/**#文件上传函数*@input_name为表单中type为file的name值*@ext_arr为允许使用的扩展名数组,请用小写,例array('jpg','gif')*@max_size文件大小,单位b,上限请修改php.ini中的pos
阅读全文
摘要:在开发通讯的软件里,要让通讯的两端程序相互对话,其实就跟人与人的交流是一样的,要使用共同语言,而不能一个人说英语,一个人说汉语。由于通讯两端是分别在不同的程序里,那么就需要定出一套相互认同的语言—协议定义。而定义协议的办法有很多种,比如直接写成C结构,这样的方式最直接了,但它有点不灵活。又有采用XML的方式,这样虽然灵活了,但它的通讯消息大小又太大了,不便于传送,对于中国慢慢网络来说,又太不现实。像QQ那么短的消息结构,发送的速度那么快才是真正地适应中国的国情,而不像MSN那么慢,那么费带宽,可以从这点来说MSN比QQ就差了十万八千里。因此,一个协议的好与坏,影响到通讯的根本性能,就影响到用户
阅读全文
摘要:首先,在父页面中写一个javascript脚本,用来接收组合条件设置窗口的拼装的SQL语句,查询条件子窗口关闭后,javascript将查询条件提交到后台控制层,父页面的javascript:function doCustQuery(){//var returnvalue =window.showModalDialog( "<%=request.getContextPath()%>/module/platform/compositeQuery.jsp?entityName=${entityClassName}", '组合条件查询', "
阅读全文
摘要:26个字母诠释经典爱情A-accept(接受) “世上没有十全十美的人”。记着,你爱他,就必须接受他的一切,甚至他的缺点。 B-belief(信任) 不信任对方,经常以怀疑的口吻盘问对方,这种互相猜忌的爱情就只有分手下场。 C-care(关心) 关心的程度正好表现你对对方的重视程度,间或打个电话给对方关心地问候一句:“工作辛苦吗?”又或者传呼他:“天气凉了,记得多加点衣服”。这些关心未必有实际用途,但起码能令对方暖在心头。 D-digest(理解) 我们不是圣人,总有情绪起伏的时候,若对方是“凸”的时候,你何不做“凹”去忍耐一下他,安慰一下他呢? E-encouragement(激励...
阅读全文
摘要:第一句如果我们之间有1000步的距离 你只要跨出第1步我就会朝你的方向走其余的999步第二句通常愿意留下来跟你争吵的人 才是真正爱你的人第三句付出真心 才会得到真心 却也可能伤得彻底保持距离 就能保护自己 却也注定永远寂寞第四句有时候 不是对方不在乎你 而是你把对方看得太重第五句朋友就是把你看透了 还能喜欢你的人第六句就算是believe 中间也藏了一个lie第七句真正的好朋友 并不是在一起就有聊不完的话题而是在一起 就算不说话 也不会感到尴尬第八句没有一百分的另一半 只有五十分的两个人第九句为你的难过而快乐的 是敌人为你的快乐而快乐的 是朋友为你的难过而难过的 就是那些 该放进心里的人第十句
阅读全文
摘要:记住这些,你的鼠标就可以扔掉了。 F1 显示当前程序或者windows的帮助内容。 F2 当你选中一个文件的话,这意味着“重命名” F3 当你在桌面上的时候是打开“查找:所有文件” 对话框 F10或ALT 激活当前程序的菜单栏 windows键或CTRL+ESC 打开开始菜单 CTRL+ALT+DELETE 在win9x中打开关闭程序对话框 DELETE 删除被选择的选择项目,如果是文件,将被放入回收站 SHIFT+DELETE 删除被选择的选择项目,如果是文件,将...
阅读全文
摘要:7-Eleven:这个连锁便利店最初始于1927年的U-Tote"m,1946年U-Tote"m改名为7-Eleven,因为这家便利店把营业时间延长为每天早上7点到晚上11点 Adidas:阿迪达斯。来源于其创立者Adolf (Adi) Dassler ,还有一个搞笑的解释:allday i dream about sex~ Adobe:这家公司的创立者John Warnock和ChuckGeschke的房子后面有一条名为Adobe Creek的河Amazon.com:原来这家公司叫做Cadabra.com,后来其创立者JeffBezos改用世界上最著名的河流——亚马逊——
阅读全文
摘要:说明:URL的授权写到了数据库里了,所以更改URL授权的时候不需要更改配置文件<?xml version="1.0" encoding="GB2312"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema
阅读全文
摘要:blue: javascript:window.top.space_addItem(6,676,0,0,200,200,0); 茶色: javascript:window.top.space_addItem(6,702,0,0,200,200,0); 水晶年代: javascript:window.top.space_addItem(6,703,0,0,200,200,0); 旋律: javascript:window.top.space_addItem(6,1228,0,0,200,200,0); 一、登录你的QQ空间; 二、点“装扮空间”; 三、将以上QQ空间免费皮肤对应的代码粘贴到浏览器
阅读全文
摘要:(☆繠蝶冰緣☆) 2008-04-06 04:06:30javascript:免费漂浮物和免费挂件物品的名称与代码如下:(红色部分为横坐标,蓝色部分为纵坐标,你可根据想要的位置来调节)下雪FLASH挂件javascript:window.top.space_addItem(16,23232,50,80,620,350,0); 爱的故事javascript:window.top.space_addItem(16,23214,330,80,600,600,0); 任性的我javascript:window.top.space_addItem(16,22098,50,80,250,250,0); 会
阅读全文
摘要:欢迎来我家:javascript:window.top.space_addItem(14,4386,0,0,1,1,0); 幽夜幕: javascript:window.top.space_addItem(14,5002,0,0,1,1,0); 与你分享:javascript:window.top.space_addItem(14,4387,0,0,1,1,0); 月光马 :javascript:window.top.space_addItem(14,5077,0,0,1,1,0); 分享:javascript:window.top.space_addItem(14,5329,0,0,...
阅读全文
摘要:javascript:window.top.space_addItem(7,22576,0,0,0,1,0);(超级强烈推荐)黄钻用户使用 QQ空间五级花代码: javascript:window.top.space_addItem(7,11600,0,0,0,1,0); 第2个花:快乐圣诞节 代码如下: javascript:window.top.space_addItem(7,10809,0,0,0,1,0); 第3个花:甜入心房 代码如下: javascript:window.top.space_addItem(7,10810,0,0,0,1,0); 第4个花:海底世界 代码如...
阅读全文
摘要:红色人头javascript:window.top.space_addItem(4,5535,0,0,1,1,0);卡通小人javascript:window.top.space_addItem(4,5837,0,0,1,1,0);或者直接加上&sb=121/136-1182346022坐着的小绿人javascript:window.top.space_addItem(4,4966,0,0,0,1,0); 老鹰javascript:window.top.space_addItem(4,1151,0,0,0,1,0);一、登录你的QQ空间;二、点“装扮空间”;三、将以上QQ空间免费物品对
阅读全文
摘要:最新QQ空间免费导航代码(超漂亮) javascript:window.top.space_addItem(13,5503,0,0,600,200,0); qq空间免费导航代码 - 横向的花藤 javascript:window.top.space_addItem(13,5503,0,0,600,200,0);qq空间免费导航代码-五星javascript:window.top.space_addItem(13,5145,0,0,200,600,0);新款粉色竖向导航代码javascript:window.top.space_addItem(13,9758,0,0,200,600,0);西瓜导
阅读全文
摘要:所有的手机都有一个惟一的序列号,当你键入*#06#时,你手机的屏幕上就会出现一个15位的数字,这个数字就是你的手机的序列号。请把此号码记下来并保存,当你的手机被盗后就可以将此号码提供给你的服务商[中国移动][中国联通],他能将你丢失的手机锁住,即使别人将你原有的SIM卡换掉,此手机也不能使用。也许你不会失而复得,但是你的手机对他们来讲也是没有任何价值,除非将它作为纸镇。如果每个人都能够知道自己手机的惟一的序列号,那么盗窃手机将变得没有任何意义。将这个信息告诉尽可能多的人,这个常识普及了,大家丢手机的机会就少了!!
阅读全文
摘要:变化总是在发生 - 他们总是不断的拿走你的奶酪预见变化 - 随时做好奶酪被拿走的准备追踪变化 - 经常闻一闻你的奶酪,以便知道他们什么时候开始变质尽快适应变化 - 越早放弃旧的奶酪, 你就越早享用到新的奶酪改变 - 随着奶酪的变化而变化享受变化!- 尝试冒险, 去享受新奶酪的美味 !做好迅速变化的准备,不断地享受变化!记住:他们仍然会不断拿走你的奶酪随着奶酪的变化而变化, 并享受变化。 -----节选自《谁动了我的奶酪》
阅读全文
摘要:Changes Happens - They keep moving the cheese Anticipate Change – Get ready for the cheese to moveMonitor Change – Smell the cheese so you know when it is getting oldAdapt the Change Quickly – The quicker you let go of old cheese, the sooner you can enjoy new cheeseChange – Move with the cheeseEnjoy
阅读全文
摘要:敏捷开发包括一系列的方法,主流的有如下七种:XPXP(极限编程)的思想源自 Kent Beck和Ward Cunningham在软件项目中的合作经历。XP注重的核心是沟通、简明、反馈和勇气。因为知道计划永远赶不上变化,XP无需开发人员在软件开始初期做 出很多的文档。XP提倡测试先行,为了将以后出现bug的几率降到最低。SCRUMSCRUM是一种迭代的增量化过程,用于产品开发或工作管理。它是一种可以集合各种开发实践的经验化过程框架。SCRUM中发布产品的重要性高于一切。该方法由Ken Schwaber和 Jeff Sutherland 提出,旨在寻求充分发挥面向对象和构件技术的开发方法,是对迭代
阅读全文