3.可变更性前面我提到了,软件的变更性是所有软件理论的核心,那么什么是软件的可变更性呢?按照现在的软件理论,客户对软件的需求时时刻刻在发生着变化。当软件设计好以后,为应对客户需求的变更而进行的代码修改,其所需要付出的代价,就是软件设计的可变更性。由于软件合理地设计,修改所付出的代价越小,则软件的可变更性越好,即代码设计的质量越高。一种非常理想的状态是,无论客户需求怎样变化,软件只需进行适当地修改就能够适应。但这之所以称之为理想状态,因为客户需求变化是有大有
系统 2019-08-29 21:58:57 2244
在搭建一个局域网的时候,IP地址规划的意义重大。如果你的网络永远不会被扩展和定制,那么你可以随意的规划IP地址,只要能保证路由是通的就可以了。然而如果将来有一天你需要对已有的网络进行拓展,那么就需要精心安排地址了。原则就是:尽量使逻辑上同类的地址规划成连续的地址,并且起始地址最好是2的次幂。这样做的原因在于可以方便的划分子网。考虑下面的拓扑:有一天,需要在该局域网增加一台加密网关,所有到达外部网络2的流量都要被加密,而且需要把加密流量路由指向加密网关(流量
系统 2019-08-12 09:30:33 2244
packagecom.yuxinglab.poi.test;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.OutputStream;importorg.apache.poi.openxml4j.exceptions.InvalidFormatExcept
系统 2019-08-12 09:30:27 2244
【摘自互联网,在此留存为备档,如需引用请联系原作者】本文首先从P2P的定义出发,介绍了结构化P2P与非结构化P2P的区别以及结构化P2P的核心技术DHT。而后,本文深入介绍了几种主流的DHT算法与协议并对每种协议进行了讨论。文章的最后展望了DHT在未来的发展趋势。对等网络(Peer-to-Peer,简称P2P)是目前非常热门的应用,自1999年以来,P2P的研究一直是国外知名学府(如美国麻省理工学院,加州大学伯克利分校和莱斯大学等)以及知名企业的研发机构(
系统 2019-08-12 09:30:03 2244
ProblemG.BirthdayCakeBackgroundLucyandLilyaretwins.Todayistheirbirthday.Motherbuysabirthdaycakeforthem.NowweputthecakeontoaDescartescoordinate.Itscenterisat(0,0),andthecake'slengthofradiusis100.Thereare2N(Nisainteger,1<=N<=50)cher
系统 2019-08-12 09:27:32 2244
一开始没接触过的先看看TerryLee的文章吧:EnterpriseLibraryStepByStep系列(一):配置应用程序块——入门篇EnterpriseLibraryStepByStep系列(二):配置应用程序块——进阶篇以下讲解4.1与2.0的不同首先我们来看自定义数据类1usingSystem.Text;2usingSystem.Configuration;34namespaceConfigurationMigrationQuickStart5{
系统 2019-08-12 09:27:20 2244
链接:http://pan.baidu.com/s/1hqejFKS下载地址:下载提取密码:egh5-----BEGINLICENSE-----AndrewWeberSingleUserLicenseEA7E-855605813A03DD5E4AD9E66C0EEB94BC99798F942194A602396E98E62C99794BB979FE91424C9DA45400BFF6747D882FB8807890F5CC941CDC92DC8457107
系统 2019-08-12 09:27:08 2244
Ctrl+L选择整行(按住-继续选择下行)Ctrl+KK从光标处删除至行尾Ctrl+Shift+K删除整行Ctrl+Shift+D复制光标所在整行,插入在该行之前Ctrl+J合并行(已选择需要合并的多行时)Ctrl+KU改为大写Ctrl+KL改为小写Ctrl+D选词(按住-继续选择下个相同的字符串)Ctrl+M光标移动至括号内开始或结束的位置Ctrl+Shift+M选择括号内的内容(按住-继续选择父括号)Ctrl+/注释整行(如已选择内容,同“Ctrl+S
系统 2019-08-12 09:27:00 2244
LISTlistData;//声明listDatalistData=ListCreate(STRINGLIST);//创建一个空的实际字符串或数字列表。//参数都是在上个界面中赋值,然后在下个或者后续界面中使用,如svName和svCompany等参数。/*ListId=ListCreate(nListType)参数:nListType:NUMBERLIST:指定一个数字列表STRINGLIST:指定一个字符串列表返回值:ListId:新创建的空的列表的I
系统 2019-08-12 09:26:57 2244
4.9ParserGeneratorsThissectionshowshowaparsergeneratorcanbeusedtofacilitatetheconstructionofthefrontendofacompiler.WeshallusetheLALRparsergeneratorYaccasthebasisofourdiscussion,sinceitimplementsmanyoftheconceptsdiscussedintheprevi
系统 2019-08-12 09:26:46 2244