ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>中文字幕免费在线,久久精品国产68国产精品亚洲,日韩专区在线观看http://www.aygfsteel.com/zhangjinglin/archive/2007/04/19/111641.html#111931zhangjinglinzhangjinglinThu, 19 Apr 2007 06:10:00 GMThttp://www.aygfsteel.com/zhangjinglin/archive/2007/04/19/111641.html#111931现在的问题是åQŒROR已经发布åˆîCº†1.2åQŒå¯æ˜¯Grails只有0.4åQŒå¥½åƒé©¬ä¸Šè¦å‘布0.5了。从技术成熟度上说åQŒææ€•要差和大一块,如果我们能够理解ROR的开发理念,而关注Grails的发展,½{‰åˆ°Grails成熟后,我想可就是另一¿Uç»“果了ã€?
æ›´äØ“å…³é”®çš„é—®é¢˜æ˜¯åQŒGrails建立在Java基础上,˜q™æ˜¯ä¸€ä¸ªROR无可比拟的优势,试想如果Java不是建立在更好的C++上,C++不是建立在C上,今天的C++或者Java也许只是ž®è¯­¿Uï¼Œå‘µå‘µã€?
我学习ROR的时候,看的ž®±æ˜¯Agile web development with railsåQŒï¼ˆå¥½åƒåœ°çƒäººéƒ½çœ‹è¿™æœ¬ï¼‰åQŒæˆ‘惊奇Rails的开发效率,我迷惑Ruby的语法。我发现åQŒæˆ‘惌™¦å­¦å¥½Rails必须深入学习RubyåQŒä¸€ä¸ªæˆ‘从来不知道的语言。所以学习进度也是很慢ã€?
在学习Grails的时候,看的时InfoQ çš„grails getting startedåQŒåªç”¨äº†å¾ˆçŸ­çš„æ—¶é—´å°±åˆæ­¥æŽŒæ¡äº†ã€‚而且用了1天半ž®±å®Œæˆäº†ä¸€ä¸ªèµ„源下载系¾lŸï¼Œè€Œä¸”可以评论åQŒè™½ç„¶å¾ˆåˆçñ”åQŒä½†å´æ˜¯å·¥ä½œåœ¨å®Œå…¨çš„Java环境下,æ€ÖM¹‹åQŒå°±æ˜¯å¿«ä¹ã€?
用ROR的确快乐åQŒä½†æœ‰æ—¶å´å¾ˆç—›è‹¦åQˆä¸ç†Ÿæ‚‰RubyåQ‰ï¼ŒGrails却给我持¾l­çš„快感ã€?
我想写这个系列,主要是想用ROR的思想来对比了解GrailsåQŒæ¯•竟ROR已经很成熟了åQŒGrails的资料都很少ã€?
初步设想可能包括åQˆäºŒåQ‰åŸºæœ¬å¼€å‘过½E‹çš„æ¯”较åQˆä¸‰åQ‰æŽ§åˆ¶å™¨çš„æ¯”较(四)视图的比较(五)域模型的比较åQˆè¿™ä¸ªæ˜¯é‡ç‚¹åQ‰ï¼ˆå…­ï¼‰Ajax的比较(七)Ruby ä¸?Groovy的比è¾?
不知道有没有¾_‘ÖŠ›å®ŒæˆåQŒå·¥ä½œå¤ªå¤?.....

zhangjinglin 2007-04-19 14:10 发表评论
]]>
re: Ruby on Rails ä¸?Grails 之比è¾?一)åQšç®€ä»?/title><link>http://www.aygfsteel.com/zhangjinglin/archive/2007/04/19/111641.html#111873</link><dc:creator>山风ž®å­</dc:creator><author>山风ž®å­</author><pubDate>Thu, 19 Apr 2007 03:37:00 GMT</pubDate><guid>http://www.aygfsteel.com/zhangjinglin/archive/2007/04/19/111641.html#111873</guid><description><![CDATA[@xyz20003 <br> <br>groovy的预¾~–译会将.groovyæ–‡äšg¾~–译ä¸ÞZ¼˜åŒ–过çš?classåQŒåœ¨¾~–译的时候会消耗点旉™—´åQŒä½†ä»¥åŽ˜qè¡Œèµäh¥ž®±å¿«å¾ˆå¤šäº†ï¼Œæ‰€ä»¥ä¹Ÿä¸èƒ½å®Œå…¨å¦å®šäº†ï¼Œæ‚¨è¯´å¯¹å§ :) <br> <br>至于reloadåQŒæˆ‘æƒÏx‚¨ä¸ä¼šé¢‘繁的改数据库配¾|®å§åQŒä¸€æ—¦å®šäº†ç”¨ä»€ä¹ˆæ•°æ®åº“åQŒusernameå’ŒpasswordåQŒurlåQŒdriver也就定下来了åQŒè€Œä¿®æ”¹è¿™äº›é…¾|®çš„几率很小åQŒå› æ­¤reload˜q™ä¸ªåŠŸèƒ½åœ¨å¼€å‘è°ƒè¯•ä¸­èƒ½å¾ˆå¥½çš„å‘æŒ¥ä½œç”¨çš?:) <br> <br>groovy1.1会对compiler的性能˜q›è¡Œè°ƒä¼˜åQŒåˆ°æ—¶æ‚¨æˆ–许ž®×ƒ¸ä¼šæ„Ÿè§‰åˆ°é¢„编译了 :) <br> <br>Grailsž®†åœ¨Groovy完全支持Annotation(Groovy1.1ž®†æ”¯æŒAnnotation)之后åQŒé›†æˆGuiceåQŒæé«˜æ•´ä½“性能åQŒåŒ…括启动速度åQŒåˆ°æ—¶æ‚¨ä¸å¦¨å†è¯•试,体验一下Grails的乐­‘?:)<img src ="http://www.aygfsteel.com/zhangjinglin/aggbug/111873.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/zhangjinglin/" target="_blank">山风ž®å­</a> 2007-04-19 11:37 <a href="http://www.aygfsteel.com/zhangjinglin/archive/2007/04/19/111641.html#111873#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Ruby on Rails ä¸?Grails 之比è¾?一)åQšç®€ä»?/title><link>http://www.aygfsteel.com/zhangjinglin/archive/2007/04/19/111641.html#111846</link><dc:creator>xyz20003</dc:creator><author>xyz20003</author><pubDate>Thu, 19 Apr 2007 01:48:00 GMT</pubDate><guid>http://www.aygfsteel.com/zhangjinglin/archive/2007/04/19/111641.html#111846</guid><description><![CDATA[@山风ž®å­<br>呵呵~感觉光动态还不够åQŒæˆ‘们需要的使用上得到真正的便利åQŒè€Œä¸æ˜¯äؓ了ä‹É用某某技术这¿Uå¹Œå­ã€?br><br>预编译的问题åQŒä»Žjsp开始我一直是非常反感的,˜q™ä¹ˆè¯´å§åQŒè°ƒè¯•错误从某种斚w¢æ¥è¯´åQŒæ›´ä¾èµ–于开发äh员的¾léªŒã€‚而帮助开发äh员调试语法错误的应该是ide工具åQŒè€Œä¸æ˜¯ç®€é™‹çš„¾~–译器ã€?br><br>至于动态reloadåQŒè¿™ä¸ªåƈ不是我希望讨论的范围内,毕竟tomcat½{‰servlet容器都支持动态reloadåQŒä½†ä½ ä¿®æ”¹äº†å…³é”®é…ç½®æ–‡äšg˜q˜æ˜¯éœ€è¦é‡æ–°å¯åŠ¨çš„ã€‚å³ä¾¿æ˜¯roråQŒä½ æ”¹äº†æ•°æ®åº“配¾|®ï¼Œä¹Ÿæ˜¯è¦é‡æ–°å¯åŠ¨çš„ã€?br><br>不过既然说到grailsçš„reloadåQŒæˆ‘也加上两句,˜q˜æ˜¯é¢„编译的问题åQŒä½ ä¿®æ”¹äº†groovy或者gspåQŒå†è®‰K—®™åµé¢åQŒæ€ÀL˜¯èƒ½æ„ŸåˆîC¸€ŒDµä¼‘å…‹æ—¶é—ß_¼Œ˜q™å°±æ˜¯é¢„¾~–译的占用时间了åQŒè€Œåƒfreemarker˜q™ç§æ¨¡æ¿ž®×ƒ¸ä¼šå‡ºçŽ°è¿™¿Ué—®é¢˜ï¼Œå†è¯´äº†freemarker也都支持cacheåQŒè€Œå¼€å‘阶ŒDµåˆå¯ä»¥æŠŠcache关闭åQŒå¼€å‘阶ŒDµä¸å½±å“è°ƒè¯•åQŒå‘布阶ŒDµä¸å½±å“æ•ˆçŽ‡ã€‚è¿™å¤šå¥½åQŸçŽ°åœ¨æƒ³æƒ»I¼Œè¦æ˜¯java能设¾|®ä¸ªå¼€å…»I¼Œèƒ½æŽ§åˆ¶æ˜¯å¦ä‹É用预¾~–译ž®±å¥½äº†ã€?br><br>反正感觉groovy on rails˜q˜æ˜¯å¤ªä¸æˆç†Ÿäº†ã€‚再观望一端看看ã€?img src ="http://www.aygfsteel.com/zhangjinglin/aggbug/111846.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/zhangjinglin/" target="_blank">xyz20003</a> 2007-04-19 09:48 <a href="http://www.aygfsteel.com/zhangjinglin/archive/2007/04/19/111641.html#111846#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Ruby on Rails ä¸?Grails 之比è¾?一)åQšç®€ä»?/title><link>http://www.aygfsteel.com/zhangjinglin/archive/2007/04/18/111641.html#111716</link><dc:creator>山风ž®å­</dc:creator><author>山风ž®å­</author><pubDate>Wed, 18 Apr 2007 11:24:00 GMT</pubDate><guid>http://www.aygfsteel.com/zhangjinglin/archive/2007/04/18/111641.html#111716</guid><description><![CDATA[@xyz20003<br><br>您说的不无道理,但我惌™¡¥å……几句:<br>Groovy的预¾~–译有一个好处您或许没有体会刎ͼŒé‚£å°±æ˜¯é˜²æ­¢ç¨‹åºè¿è¡Œåˆ°ä¸€åŠæ‰æŠ¥coding错误åQŒè¿™æ ·å…¶å®žå·²¾läؓ您节省了很多旉™—´äº?:)<br>当然您也可以ž®†Groovyæ–‡äšg¾~–译为classæ–‡äšgåQŒè¿™æ ·å°±å¯ä»¥çœåŽ»˜qè¡Œå‰çš„¾~–译了ã€?br><br>至于grails的启动比较慢åQŒè¿™çš„确是一个事实,但我们也不可忽视Grailsçš„reload功能åQŒä¹Ÿž®±æ˜¯è¯ß_¼Œåªè¦˜qè¡Œäº†ä½ çš„程序之后,无需重启web serveråQŒä½ çš„修改可以立åˆÈ”Ÿæ•ˆï¼Œæ‰€ä»¥Grails实施的是‘先苦后甜’的½{–略。您如果用它开发过™å¹ç›®çš„话åQŒå°±å¯ä»¥ä½“会åˆîCº† :)<br><br>至于语法的灵‹zÀL€§ï¼Œæˆ‘持保守态度åQŒè¿‡äºŽçµ‹zȝš„语法使程序很隄¡»´æŠ¤ï¼Œ˜q™ç›¸ä¿¡æ‚¨ä¹Ÿæœ‰æ‰€ä½“会å?:) Java的语法过于笨拙,而RubyåQŒPython的语法过于灵‹z»ï¼Œæ‰€ä»¥Groovy做个折衷åQŒä»¥Javaçš„è¯­æ³•äØ“åŸºç¡€åQŒå°†Rubyå’ŒPython中真正有用的ç‰ÒŽ€§æ·»åŠ è¿›æ¥ï¼Œæ‰€ä»¥å¯ä»¥è¿™ä¹ˆè¯´åQŒGroovy是动态JavaåQŒä½†ç”׃ºŽâ€˜Java’这个商标问题,不能叫Dynamic Java.<br><br><img src ="http://www.aygfsteel.com/zhangjinglin/aggbug/111716.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/zhangjinglin/" target="_blank">山风ž®å­</a> 2007-04-18 19:24 <a href="http://www.aygfsteel.com/zhangjinglin/archive/2007/04/18/111641.html#111716#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Ruby on Rails ä¸?Grails 之比è¾?一)åQšç®€ä»?/title><link>http://www.aygfsteel.com/zhangjinglin/archive/2007/04/18/111641.html#111713</link><dc:creator>xyz20003</dc:creator><author>xyz20003</author><pubDate>Wed, 18 Apr 2007 11:06:00 GMT</pubDate><guid>http://www.aygfsteel.com/zhangjinglin/archive/2007/04/18/111641.html#111713</guid><description><![CDATA[事实是groovy˜qè¡Œä¹‹å‰éƒ½éœ€è¦é¢„¾~–译åQŒåƒè®‰K—®jsp之前一™å‰K‚£æ øP¼Œ˜q™æ˜¯è®©æˆ‘火大之一åQŒäؓ啥不搞成直接˜qè¡Œçš„?每次‹¹‹è¯•˜q˜è¦è®©æˆ‘½{‰é‚£ä¹ˆä¸€™å¿çš„æ—‰™—´ã€?br><br>½W¬äºŒåQŒgrails的代码与‹¹‹è¯•æ—‰™—´æ˜Žæ˜¾æ¯”ror慢很多,看控制台输出明明˜q˜æ˜¯åšäº†cache的,可还是慢åQŒä¼°è®¡æ˜¯å› äؓ先启动jvmåQŒç„¶åŽé¢„¾~–译groovy的结果,要知道ror宣称的是开发速度提高åQŒæ¯‹Æ¡éƒ½™å¿å•Š™å¿çš„åQŒè®©è‡ªå·±çš„信心大减ã€?br><br>½W¬ä¸‰åQŒæ„Ÿè§‰groovy的语法还是没有ruby灉|´»åQŒçœç•¥æ‹¬å¯‚°ƒç”¨method只能省略一¾U§ï¼Œå¦‚果要嵌套调用方法,比如print dosomething paramåQŒè¿™æ ·å°±ä¸è¡Œäº†ï¼Œ˜q˜è¦è€è€å®žå®žåœ°æ·ÖM¸Šæ‹¬å·åQŒå”‰åQŒæ€ÀL˜¯æ„Ÿè§‰æ²¡é‚£ä¹ˆé¡ºå¿ƒã€?br><br>性能比较ž®Þq®—了,毕竟是网¾lœå¼€å‘,听说瓉™¢ˆéƒ½æ˜¯æ•°æ®åº“那里。现在还在观望grails的发展。groovy倒是已经装在机器上,啥时候想实验一些类和方法,ž®Þq›´æŽ¥groovysh来调用,比再åŽÕd¾ä¸ªclass省事ã€?img src ="http://www.aygfsteel.com/zhangjinglin/aggbug/111713.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/zhangjinglin/" target="_blank">xyz20003</a> 2007-04-18 19:06 <a href="http://www.aygfsteel.com/zhangjinglin/archive/2007/04/18/111641.html#111713#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>re: Ruby on Rails ä¸?Grails 之比è¾?一)åQšç®€ä»?/title><link>http://www.aygfsteel.com/zhangjinglin/archive/2007/04/18/111641.html#111648</link><dc:creator>山风ž®å­</dc:creator><author>山风ž®å­</author><pubDate>Wed, 18 Apr 2007 07:33:00 GMT</pubDate><guid>http://www.aygfsteel.com/zhangjinglin/archive/2007/04/18/111641.html#111648</guid><description><![CDATA[Groovy¾l§æ‰¿äº†Java的所有资源,òq¶ä»¥è‡ªèín强大的语法特性ä‹É开发更高效ã€?br>GrailsåŸÞZºŽæžäؓ成熟的经典框æžÓž¼Œòq¶å¯¹å…¶è¿›è¡Œäº†extremež®è£…åQˆextremež®è£…åQŒå¼•用了‘江南白衣’的术语åQ‰ï¼Œä½¿ç”¨æˆäh„Ÿè§‰ä¸åˆ°åº•层实玎ͼŒæ— éœ€é…ç½®åQŒé«˜æ•ˆå¼€å‘。而且性能比RoR好很多ã€?br>下面是Grailså’ŒRoR的性能比较åQ?br><a target="_new" href="http://www.aygfsteel.com/BlueSUN/archive/2007/03/24/106002.html">http://www.aygfsteel.com/BlueSUN/archive/2007/03/24/106002.html</a><br>事实胜于雄辩ã€?img src ="http://www.aygfsteel.com/zhangjinglin/aggbug/111648.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/zhangjinglin/" target="_blank">山风ž®å­</a> 2007-04-18 15:33 <a href="http://www.aygfsteel.com/zhangjinglin/archive/2007/04/18/111641.html#111648#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> Ö÷Õ¾Ö©Öë³ØÄ£°å£º <a href="http://" target="_blank">ºº¹ÁÇø</a>| <a href="http://" target="_blank">±±¾©ÊÐ</a>| <a href="http://" target="_blank">°ÍÑåÄ×¶ûÊÐ</a>| <a href="http://" target="_blank">ͨµÀ</a>| <a href="http://" target="_blank">ÀÖÒµÏØ</a>| <a href="http://" target="_blank">Î÷³äÏØ</a>| <a href="http://" target="_blank">ÀË¿¨×ÓÏØ</a>| <a href="http://" target="_blank">²©°®ÏØ</a>| <a href="http://" target="_blank">¾ÅÁúÏØ</a>| <a href="http://" target="_blank">¿Ë¶«ÏØ</a>| <a href="http://" target="_blank">ÖñÉ½ÏØ</a>| <a href="http://" target="_blank">ÄþÇ¿ÏØ</a>| <a href="http://" target="_blank">±¨¼Û</a>| <a href="http://" target="_blank">ËÄÆ½ÊÐ</a>| <a href="http://" target="_blank">ÓÀ´ºÏØ</a>| <a href="http://" target="_blank">Ã÷ÏªÏØ</a>| <a href="http://" target="_blank">¼ªÁÖÊÐ</a>| <a href="http://" target="_blank">¸ÊÄÏÏØ</a>| <a href="http://" target="_blank">°²ÇðÊÐ</a>| <a href="http://" target="_blank">¸ö¾ÉÊÐ</a>| <a href="http://" target="_blank">ÁººÓÏØ</a>| <a href="http://" target="_blank">³ÎÂõÏØ</a>| <a href="http://" target="_blank">ÎàÖÝÊÐ</a>| <a href="http://" target="_blank">ƽ²ýÏØ</a>| <a href="http://" target="_blank">Â³É½ÏØ</a>| <a href="http://" target="_blank">ÓãÌ¨ÏØ</a>| <a href="http://" target="_blank">ÎÞÎýÊÐ</a>| <a href="http://" target="_blank">¼ÎÒåÊÐ</a>| <a href="http://" target="_blank">·öËçÏØ</a>| <a href="http://" target="_blank">·ïÌ¨ÏØ</a>| <a href="http://" target="_blank">ÇìÑôÊÐ</a>| <a href="http://" target="_blank">½ðÃÅÏØ</a>| <a href="http://" target="_blank">Ñ®ÑôÏØ</a>| <a href="http://" target="_blank">³ÐµÂÊÐ</a>| <a href="http://" target="_blank">ÉòÇðÏØ</a>| <a href="http://" target="_blank">½­»ª</a>| <a href="http://" target="_blank">¼Ñľ˹ÊÐ</a>| <a href="http://" target="_blank">»ÆÊ¯ÊÐ</a>| <a href="http://" target="_blank">ÓªÉ½ÏØ</a>| <a href="http://" target="_blank">ÄþÄÏÏØ</a>| <a href="http://" target="_blank">ÖñÏªÏØ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>