|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在性能方面,在windows平台下,.net可能是占强项,要是把.net放在sun开发的操作系统上去运行呢?根本就运行不了,.net对其它操作系统的支持也很弱,性能也可能比不上java。
这里有一些我们从我们的履历和一些客户的参谋事情中搜集到的倡议和最好理论。
1)为一切的模块增加模块形貌符
在ivy的天下种,模块形貌符是ivy文件的一种,基础上是复杂的xml文件,用来形貌模块临盆甚么作为成品和它的依附。
为你的开辟触及到的一切模块编写大概下载模块形貌符是一个好习气,乃至是为你的第三方依附,哪怕他们不供应他们本人的模块形貌符。
入手下手这将看上往像是一个分外的事情,而且必要工夫。可是当你具有多个模块同时利用不异的第三方类库,你仅仅必要在你的ivy文件中增加一行就能够失掉这个类库和它独有的你真正必要的依附(假如你的堆栈中有准确的模块形貌符,特别是和模块设置一同利用)。当你想更新一个依附时它将十分有匡助。在你的模块的ivy文件中一个复杂的修正就能够失掉更新过的版本和它更新(大概没有)过的依附。
因而我们保举在你的堆栈中为一切的模块增加ivy文件,你乃至能够经由过程设置你的剖析器上的allownomd属性为false来强迫实行这个规则。你不必要利用依附成品的包括/扫除/specification这些ivy特征,这些仅仅能够用于十分特别的情形。
2)利用本人的企业堆栈
关于开源项目而言这一般不是一个准确的倡议,可是关于企业天下我们激烈倡议掩蔽做来制止依附一个大众的堆栈相似maveibiblio大概ivyrep.为何?好,这里有一堆来由:
1.把持
关于大众堆栈最次要的成绩在于你没有堆栈的把持权。这意味着假如一个模块形貌符破坏,你不克不及容易的修复它。固然你可使用一个由共享堆栈和大众堆栈构成的链,而且将你修复后的模块形貌符安排到共享堆栈以便它能埋没大众堆栈,可是这会招致堆栈扫瞄和保护的贫苦。
更多的成绩在于堆栈大概的更新。我们晓得在堆栈中公布的版本应当坚持不乱而且不要更新,可是我们也频仍的看到模块形貌符有良多bug,大概成品被破坏。乃至某些时分我们看到一个新的版本利用和之前版原形同的名字公布,由于前一个版本只不外是被毛病打包。这类情形设置产生在最好的工具上,好比我们的ivy1.2:-)。 厥后我们决意公布一个新的利用分歧名字1.2a的版本。可是假如堆栈办理员容许相似的更新,这意味着之前的事情能够被冲破。这将损坏你的构建的可再现性。
2.牢靠性
mave堆栈的牢靠性并非很好(我们常常体验到十分慢的速率,乃至完整没法会见),同时ivyrep仅仅被一个小公司撑持(是的,我们仅仅是一个小公司).由于速率慢和网站挂起的情形会一样产生。而且假如你依附的堆栈倒下,这将招致你的开辟大概公布历程严峻减缓。
3.正确性
大众的堆栈一般包括远比你实践必要多的工具。这是一个成绩吗?我们是如许想的。我们以为在一个企业情况中你利用的类库在被你的公司的每一个项目利用前必要有一些考证历程。而做这个事变做好的体例是甚么?创建一个仅仅包括你实践必要利用的类库的企业堆栈。这将不单单能够包管你的使用依附有更好的质量,并且匡助你在每一个中央利用不异的版本,乃至能够再声名你的模块依附时失掉匡助。假如你利用相似ivyde的工具,代码主动完成会牢牢显现你堆栈的得当信息,和你实践必要利用的类库。
4.平安
从模块堆栈瞎子啊的成品一般是可实行的,这将牵涉到平安成绩。设想一个黑客用一个包括病毒的版本交换commons-lang?假如你依附大众堆栈来构建你的软件,它将有平安方面的风险。你在这里看到能够看到更多的相干信息Forresterarticle。
注重,不是说由于要利用企业堆栈就不能不完全的经由过程手工来构建。ivy有一个安装义务能够被用来从一个堆栈安装模块到别的一个,因而它能够用来有选择的从大众堆栈安装模块到你的企业堆栈,这里你将有才能确保把持,牢靠性和正确性。
3)最少在构造和模块上利用形式
ivy十分天真而且经由过程利用形式的观点能够顺应良多现存的堆栈。可是假如你的堆栈如今还不存在,我们激烈倡议老是在你的形式中使用构造和模块名,乃至是你仅仅安排你本人的模块的公有堆栈(这里一切的构造都是不异的)。为何?由于ivylistingfeature(清单特性?)依附在形式中找到的标志。假如你的形式中没有构造标志,ivy将不克不及列出你堆栈中的构造。举例说关于在ivyde中的代码主动完成这将是一个成绩,一样关于堆栈局限的义务如安装和堆栈呈报也是云云。
4)为大众堆栈公布ivysettings.xml
假如你创立了一个大众堆栈,请供应一个ivysettings.xml对应的URL地点。这很简单做到,假如有人想leverage你的堆栈,他仅仅必要设置这个你的ivysettings.xml的URL就能够装载它,大概在它本人的设置文件中包括它,这使得团结多个大众堆栈变得非常简单。
轮性能微软曾做过一个例子,就是同一个项目用java和.net来作,结果开发周期,.net是java的一半,性能java是.net的十分之一,代码量java是.net的三倍。呵呵,这说明了什么,.net的全方位比java好。但是有的人说.net不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net,只是推出了跨语言的.net, |
|