自上而下的软件开辟和自下而上的软件开辟
觉得J2EE好像有很多工具,比如servlet,jboss,tomcat,ejb什么的,可是微软的.NET怎么什么也没有啊?自上而下(TopDown)开辟形式是指从一个使用的最高点入手下手开辟。从最高点慢慢往上层编码,直到开辟完一切的义务。一旦写完了最上层的代码,开辟义务就完成了。利用这类体例,你必要计划、编写出一切你必要的但还没有完成摹拟接口、服务、伪代码。自下而上(Bottomup)开辟形式是指从一个使用的最底层入手下手开辟。这类体例的考量在于以为最底层是使用中最庞大的部分,大概以为是最主要的部分。这类形式下体系将从一个个小模块做起,终极构建起全部体系。
我在上年夜学之初就传闻了自上而下开辟形式和自下而上开辟形式。事先我并没有在乎它们的区分——由于就是一个彻彻底底的自下而上开辟的程序员。
但是,跟着经历的堆集,我渐渐的完整改动了我的态度。我以为,是急迅开辟和TDD让我产生了如许的变更。我十分激烈的感到到,我想对每一个人高声说:在一个急迅开辟团队里,自下而上开辟是反形式的。
假定有一个四团体的开辟团队,要完成一个Web使用中的以下这些义务。
1,创立把持层(controller)–主会见出口,哀求映照表。
2,创立服务层(service)–服务层,复杂营业逻辑。
3,数据库查询–庞大的数据库查询
依照自下而上的开辟办法,两个程序员将卖力开辟庞大的数据库查询功效。当这部分代码可使用后,别的两个程序员将入手下手开辟把持层和服务层。
这类开辟形式的成绩来自疾苦的集成历程。开辟服务层的程序员写代码时很有大概没法恪守最后企图时团队制订的接口标准,如许,庞大数据库查询开辟的程序员就不能不修正他们的查询接口。
//数据库接口和服务层请求纷歧致
query.Execute(id);
//数据库层的完成是如许的。
query.Execute(id,typeId);
这是一个很复杂的例子,但你能够设想一个含有30多个小义务的story的情形,有更多的程序员介入,更庞大的营业,这时候自下而上的形式就很贫苦了。
经由已往这些年的开辟,我入手下手变化成利用自上而下的开辟形式。我的第一步开辟举措是用假办法摹拟出流程中必要的底层接口、服务虚现。内里没有真实的逻辑,只完成了工具间交互必要的部分。在这个开辟阶段里没有测试,没有TDD。由于内里没有逻辑。代码十分复杂,很便利让伙伴举行代码检察和企图完成。
//把持器办法
publicResultIndex(IncomingRequestincomingRequest)
{
varres=service.Invoke(incomingRequest.X,incomingRequest.Y);
returnnewResult(res);
}
//服务层办法
publicQueryResultInvoke(intx,inty)
{
returnquery.Execute(x,y);
}
//数据库查询办法
publicQueryResultExecute(intid,inttypeId)
{
//这里没无数据库查询逻辑,这是只是一个空的摹拟接口。
returnnewQueryResult();
}
如许一来,任何一个程序员都能够自在选择开辟任何一项义务。假如接口必要改动,则不会产生自下而上形式中的那种依附别的一组程序员修正进度的情形。别的一个优点是,从一入手下手,任何一个功效点都是能够做用户测试的。
自上而下的开辟便利每步都接纳TDD开辟。每阶段开辟有各自的测试程序,这包管了各个工具间合作逻辑的准确,包管了营业逻辑完成的准确。之前我说过最后的底层摹拟阶段是没有测试的。但这不料味着我们没有对它们做TDD开辟,我们的测试代码终极会驱动对这些摹拟功效的实在完成。顶层的营业逻辑切实其实定决意了底层的数据服务接口,假如在底层必要增添一个新类,这很简单,它只是底层的完成,不会影响下层的营业流程。
这类自上而下的开辟办法并非一个新事物,但是有良多人仍旧没有看到它的优点。我企图在随后几个月里对这类有用主义作风的TDD做进一步的会商。
觉得J2EE好像有很多工具,比如servlet,jboss,tomcat,ejb什么的,可是微软的.NET怎么什么也没有啊? 是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。 ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。 能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。 是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。 这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。 asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源
页:
[1]