仓酷云
标题:
JAVA教程之让代码代替你的设置文件吧仓酷云
[打印本页]
作者:
简单生活
时间:
2015-1-18 11:22
标题:
JAVA教程之让代码代替你的设置文件吧仓酷云
但是我同意你的观点,对于大型项目来说,应该是采用框架的一部分,根据功能的不同而改进,欢迎你能再提出些宝贵意见,我会多多学习的。说到jbuilder,我可能是个人感觉,用的时候确实没有vs爽,我最喜欢的IDE是net网页编程beans,谢谢。比来,在编写一个专门压测NameNode的工具(以下简称s4nn),它有两个难点:
s4nn必要能够摹拟上万个DataNode;
s4nn必要天真的撑持对NameNode会见举动的界说.
后者招致了本文的思索.
命令行参数和设置文件是最经常使用来设置体系的办法,前者用于设置项较少,后者则合适设置庞大情形.这两种体例都有配合使人疾苦的中央:
编写代码往载进->剖析->转换,一般好像处置协定般无聊(如果有个甚么变动,KMN!!);
关于庞大的设置文件编写而言,老是没有随手的编纂器撑持,写起来既累又易错.
如果用代码代替设置文件呢?
呃…这会很贫苦吧,像java如许的改了代码那还不要从头编译啊?
嗯,的确,但并没有设想中那末贫苦,一些技能可让它变得复杂(最少java是如许),如Btrace.
用代码代替自力的设置文件不是奇怪的做法,像Guice,Gant等已以InternalDSL的代码取代了XML.优点很分明:
优秀的DSL作风,简便易懂;
免除对设置文件的剖析转换;
最好的编纂器撑持,语法高亮,一键格局化,提醒补全,重构;
编译器匡助查错;
与代码无缝分离,可以简单在变更中坚持分歧性.
简言之两个字,“高效”!这却是挺合适s4nn的,无妨一试!
从需求的角度动身,设置应当可以完成:
界说一组ClientRPC挪用举动,其挪用参数,次数;
界说DataNode的运转时特性,个数.
为满意这两点,代码计划上大概会有:
classClientDriver{voidaddRpc(times,name,args)voidsetNameNode(address)}classDataNodeSimulator{voidsetCapacity(size)voidsetHeartbeatInterval(sec)voidsetBlockReportInterval(sec)voidsetNameNode(address)}
复制代码
那末其设置文件会是:
1<configuration>2<client>3<rpctimes="100000"name="getFileInfo">4<arguments>5<paramname="src">/foo</param>6</arguments>7</rpc>8</client>9<namenode>10<address>host:port</address>11</namenode>12<datanode>13<simulatornum="10000">14<capacityunit="GB">200</capacity>15<heartbeatIntervalunit="SECOND">1</heartbeatInterval>16<blockReportIntervalunit="HOUR">1</blockReportInterval>17</simulator>18</datanode>19</configuration>
复制代码
复杂吗?复杂,那是由于这只是最基础的,实践的设置招考虑到:
java是一种面向对象的编程语言,优点是可移植性比较高,最初设计时就是本着一次编写到处执行设计的。可以开发各种应用程序和游戏,不过速度没有c++快,所以一般是不用java来编写应用程序和电脑游戏。
作者:
小妖女
时间:
2015-1-20 22:13
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者:
若天明
时间:
2015-1-30 06:57
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
作者:
分手快乐
时间:
2015-1-30 21:10
是一种将安全性(Security)列为第一优先考虑的语言
作者:
爱飞
时间:
2015-2-1 09:55
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
作者:
蒙在股里
时间:
2015-2-6 15:05
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者:
变相怪杰
时间:
2015-2-7 04:08
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者:
山那边是海
时间:
2015-2-7 20:40
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者:
若相依
时间:
2015-2-15 01:21
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
作者:
海妖
时间:
2015-2-25 01:44
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
作者:
飘飘悠悠
时间:
2015-3-6 10:54
是一种使用者不需花费很多时间学习的语言
作者:
冷月葬花魂
时间:
2015-3-13 00:07
是一种将安全性(Security)列为第一优先考虑的语言
作者:
愤怒的大鸟
时间:
2015-3-13 00:07
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者:
透明
时间:
2015-3-13 05:09
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者:
小魔女
时间:
2015-3-20 13:27
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2