|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你精通任何一门语言就最强大。现在来看,java的市场比C#大,C#容易入手,比较简单,java比较难
当您在Java中利用正则表达式时,依附某一详细regexp库一般不是个好主张。假如利用笼统层,您能够在分歧regexp库之间切换,下降您的代码与特定库之间的耦合,并能选择哪一个库最合适您的必要。假如您正在思索鄙人一个项目中利用Javaregexp库,软件开辟职员JoseSanLeandroArmendariz将向您演示怎样使代码自力于所选择的详细库。并让您进一步懂得regexp及其事情道理,随后还供应了一些实习。
简介
只管您大概以为编写必要剖析文本的Java使用程序是一项复杂义务,但象很多事变一样,它会很快变得庞大起来。那切实其实是我在编写代码以剖析HTML页面时的履历。入手下手的时分,我偶然会利用Perl5正则表达式(regexp)。可是,因为某些缘故原由(稍后申明),我厥后经常利用它们。
背景常识
在我的履历中,年夜多半Java开辟职员都必要剖析某种文本。一般,这意味着他们最后要花一些工夫利用象indexOf或substring那样的与Java字符串相干的函数或办法,而且但愿输出格局永久稳定。可是,假如输出格局改动,那么用于读取新格局的代码保护起来就会变得更庞大、更坚苦。最初,代码大概需要撑持主动换行(wordwrapping)、辨别巨细写等。
因为逻辑变得加倍庞大,以是保护也变得很坚苦。由于任何变动都大概发生反作用并使文本剖析器的别的部分中断事情,以是开辟职员必要工夫修改这些小毛病。
有必定Perl履历的开辟职员大概也有过利用正则表达式的履历。假如够幸运(或优异)的话,这位开辟职员可以压服团队其他的人(或最少是团队向导)利用这项手艺。新的办法将作废编写用来挪用String办法的多行代码,它意味着将剖析器逻辑的中心托付进来,并交换为regexp库。
承受了有Perl5履历的开辟职员的倡议后,团队必需选择哪一个regex完成最合适他们的项目。然后他们必要进修怎样利用它。
在扼要地研讨了从因特网上找到的浩瀚可选计划后,假定团队决意从人们更熟习的库当选择一个利用,如属于Jakarta项目标Oro。接上去,对剖析器举行较年夜水平地重构或几近从头编写,而且剖析器终极利用了Oro的类,如Perl5Compiler、Perl5Matcher等。
这一决意的成果很分明:
代码与JakartaOro的类严密地耦合在一同。
团队承当了风险,由于不晓得非功效性需求(如功能或线程模子)是不是将得到满意。
团队已消费工夫和财力来进修偏重新编写代码,以使它利用regexp库。如果他们的决意是毛病的而且选择了新的库,则这一事情在本钱大将不会有很年夜区别,由于将必要再次从头编写代码。
即便库事情一般,假如他们决意应当迁徙到全新的库(比方,包含在JDK1.4中的库),怎样办?
往耦的优点
有无举措使团队晓得哪一个完成最合适他们的必要呢(不但如今能未来也能)?让我们试着寻觅谜底。
制止依附任何特定的完成
后面的情况在软件工程中非常罕见。在有些情形中,如许的情况会招致较年夜的投资和较长的延期。当不懂得一切成果就作出决意并且决议制订人不太交运或缺少必须的履历时,就经常会产生这类情形。
<p>
在ruby里才是一切皆对象。当然我不并不是很了解ruby,但是ruby确实是将语法简化得很好。 |
|