Wiki:http://zh.wikipedia.org/zh-cn/Ruby_on_Rails
Ruby on Rails£¬Ò²¼ò³Æ RoR »ò Rails£¬ÊÇÒ»¸öʹÓÃRubyÓïÑÔдµÄ¿ªÔ´ÍøÂçÓ¦Óà ¿ò¼Ü£¬ËüÊÇÑϸñ°´ÕÕMVC½á¹¹¿ª·¢µÄ¡£ËüŬÁ¦Ê¹×ÔÉí±£³Ö¼òµ¥£¬À´Ê¹Êµ¼ÊµÄÓ¦Óÿª·¢Ê±µÄ´úÂë¸üÉÙ£¬Ê¹ÓÃ×îÉÙµÄÅäÖá£
RailsµÄÉè¼ÆÔÔò°üÀ¨“²»ÒªÖظ´×Ô¼º”£¨Don't Repeat Yourself£©ºÍ“Ô¼¶¨Ê¤ÓÚÅäÖÔ£¨Convention Over Configuration£©
Ruby on RailsµÄÄ£ÐÍ-ÊÓͼ-¿ØÖÆÆ÷¼Ü¹¹ÓÉÒÔϸ÷²¿·Ö×é³É£º
Ä£ÐÍ
Ä£ÐͰüº¬×ÅÓ¦ÓõÄ״̬£¬×´Ì¬¿ÉÄÜÊÇÁÙʱµÄÒ²¿ÉÄÜÊdz¤¾ÃÐÔ±£´æÔÚÊý¾Ý¿âÖеġ£ÐèҪעÒâµÄÊÇÄ£ÐͲ»½ö°üº¬Êý¾Ý£¬¶øÇÒ°üº¬Êý¾Ý´ú±íµÄÂß¼¡£ÔÚ Rails ÖУ¬Ä£ÐÍͨ³£ÊÇÓÉһЩ´ú±í¹ØÏµÊý¾Ý¿âÖÐRDBMS±íµÄÀà×é³ÉµÄ¡£
ÔÚRoRÖУ¬Ä£ÐÍÀàÊÇͨ¹ýActive Recordģʽ½øÐд¦ÀíµÄ¡£Ò»°ãÀ´Ëµ£¬³ÌÐòÔ±Òª×öµÄÊǼ̳ÐActiveRecord À࣬ͬʱ³ÌÐò»á×Ô¶¯¼ÆËã³öҪʹÓÃÄĸöRDBMS±í£¬Õâ¸ö±íÓÐÄÄЩÁС£±íÓë±íÖ®¼äµÄ¹ØÏµÍ¨¹ý¼òµ¥µÄÃüÁîÀ´Ö¸Ã÷¡£
¿ØÖÆÆ÷
¿ØÖÆÆ÷½«Óû§½çÃæºÍÊý¾ÝÄ£Ð͹ØÁªÆðÀ´£¬²¢³äµ±Ðµ÷ÔË×÷µÄ½ÇÉ«¡£Ëü½ÓÊÕ¸÷ÖÖÓû§²Ù×÷£¬¸üÐÂÊý¾ÝÄ£ÐÍ£¬²¢ÓúÏÊʵÄviewչʾ½á¹û¸øÓû§¡£ÏóËûµÄÃû×ÖÒ»Ñù£¬¿ÉÒÔ˵ӦÓõÄÖ÷Òª¿ØÖÆÖÐÐľÍÊǸ÷¸ö¿ØÖÆÆ÷¡£
ÊÓͼ
......
PHPµÄÓŵ㣺
¡¡¡¡1. ¿çƽ̨£¬ÐÔÄÜÓÅÔ½£¬¸úLinux/Unix½áºÏ±ð¸úWindows½áºÏÐÔÄÜÇ¿45%£¬²¢ÇҺͺܶàÃâ·ÑµÄƽ̨½áºÏ·Ç³£Ê¡Ç®£¬±ÈÈçLAMP(Linux/Apache/Mysql/PHP)»òÕßFAMP(FreeBSD/Apache/Mysql/PHP)½áºÏ£¬»òÕßÊý¾ÝÓ¦Óù»´ó¿ÉÒÔ¿¼ÂÇ»»PostgreSQL»òÕßOracle£¬Ö§³ÖNÖÖÊý¾Ý¿â¡£(N >= 10)
¡¡¡¡2. Óï·¨¼òµ¥£¬Èç¹ûÓÐѧϰCºÍPerlµÄºÜÈÝÒ×ÉÏÊÖ£¬²¢ÇÒ¸úASPÓв¿·ÖÀàËÆ¡£ÓгÉÊìµÄ¿ª·¢¹¤¾ß£¬±ÈÈçNuPHPed£¬»òÕßZend StudioµÈµÈ£¬ÔÙLinuxƽ̨Ï¿ÉÒÔʹÓÃEclipseµÈµÈ¡£
¡¡¡¡3. ĿǰÖ÷Á÷¼¼Êõ¶¼Ö§³Ö£¬±ÈÈçWebService¡¢Ajax¡¢XMLµÈµÈ£¬×ã¹»Ó¦Óá£
¡¡¡¡4. ÓбȽÏÍêÕûµÄÖ§³Ö£¬±ÈÈçʹÓÃADODB»òÕßPEAR::DB×öÊý¾Ý¿â³éÏó²ã£¬ÓÃSmarty»òÕßsmart template×öÄ£°å²ã£¬Èç¹ûÊÇPHP 5.1µÄ»°£¬»¹Äܹ»Ê¹ÓÃPDO(PHP Data Object)À´·ÃÎÊÊý¾Ý¿â¡£
¡¡¡¡5. Óкܶà³ÉÊìµÄ¿ò¼Ü£¬±ÈÈçÖ§³ÖMVCµÄ¿ò¼Ü£ºphpMVC£¬Ö§³ÖÀàËÆASP.netµÄʼþÇý¶¯µÄ¿ò¼Ü£ºPrado£¬Ö§³ÖÀàËÆRuby On RailsµÄ¿ìËÙ¿ª·¢µÄ¿ò¼Ü£ºCakeµÈµÈ£¬×ã¹»Âú×ãÄãµÄÓ¦ÓÃÐèÇó¡£
¡¡¡¡6. PHP 5ÒѾÓгÉÊìµÄÃæÏò¶ÔÏóÌåϵ£¬Äܹ»ÊÊÓ¦»ù±¾µÄÃæÏò¶ÔÏóÒªÇó¡£ÊʺϿª·¢´óÐÍÏîÄ¿¡£
¡¡¡¡7. ÓгÉÊìµÄÉçÇøÀ´Ö§³ÖPHPµÄ¿ª·¢£¬±ÈÈç¹úÄÚµÄCSDN£¬Ï²Ôùú¼Ê´åµÈµÈ¡£
¡¡¡¡8. ĿǰÒѾºÜ¶à´óÐ ......
1£ºFXRuby is a library for developing powerful and sophisticated cross-platform graphical user interfaces (GUIs) for your Ruby applications. It¡¯s based on the FOX Toolkit, a popular open source C++ library developed by Jeroen van der Zijp. What that means for you as an application developer is that you¡¯re able to write code in the Ruby programming language that you already know and love, while at the same time taking advantage of the performance and functionality of a featureful, highly optimized C++ toolkit. Projects Using FXRuby Projects using FXRuby include: BeERP is a commercial ERP built entirely with the FXRuby library. Discretizer is an interactive mesh creation tool. It can be used to create geometry and meshes for three dimensional flow simulations (CFD). foxGUIb is an interactive gui builder and codegenerator for FXRuby. This tool makes it easy to quickly build complex and good looking graphical user interfaces for Ruby. FXRI is a FXRuby Interface to RI th ......
9ÔÂ6ÈÕÏûÏ¢£¬Tiobe½ñÌì·¢²¼ÁË2009Äê9Ôµıà³ÌÓïÑÔÅÅÐаñ£¬PHPÔÚ±¾ÆÚ°ñµ¥ÖлñµÃÀúÊ·ÐÔÍ»ÆÆ£¬ÒÔ½üÒ»¸ö°Ù·ÖµãµÄÔö·ù³É¹¦½øÈëǰÈýÃû£¬C++ϽµÒ»Î»£¬ÅÅÃûµÚËÄ¡£±¾ÆÚ±à³ÌÓïÑÔÅÅÐаñ£¬ÎÒÃǽ«»Ø¹ËPHPµÄ³É³¤£¬·ÖÎöPHPµÄ·¢Õ¹Ç°¾°¡£
±¾ÆÚ±à³Ì°ñǰ¶þÊ®Ãû°ñµ¥
¼òµ¥Ö®µÀ
1994Ä꣬Rasmus Lerdorf²¢Ã»Ïëµ½×Ô¼ºÎªÁËά»¤¸öÈËÍøÒ³¶ø·¢Ã÷µÄ½Å±¾ÓïÑÔ»áÔÚ½ñÌìµÄWeb¿ª·¢ÁìÓò´ó·ÅÒì²Ê¡£ÔÚÕâÔçÆÚµÄ°æ±¾ÖУ¬PHPÖ»ÌṩÁ˷ÿÍÁôÑÔ±¾¡¢·Ã¿Í¼ÆÊýÆ÷µÈ¼òµ¥µÄ¹¦ÄÜ¡£ÒÔºóÔ½À´Ô½¶àµÄÍøÕ¾Ê¹ÓÃÁËPHP£¬²¢ÇÒÇ¿ÁÒÒªÇÒÔö¼ÓÒ»Ð©ÌØÐÔ£¬±ÈÈçÑ»·Óï¾äºÍÊý×é±äÁ¿µÈµÈ¡£1995Äê·¢²¼µÄPHP2.0¶¨ÃûΪPHP/FI(Form Interpreter)¡£PHP/FI¼ÓÈëÁ˶ÔMySQLµÄÖ§³Ö£¬´Ó´Ë½¨Á¢ÁËPHPÔÚ¶¯Ì¬ÍøÒ³¿ª·¢ÉϵĵØÎ»¡£
PHPÖ®¸¸Rasmus Lerdorf
µ½ÁË1996Äêµ×£¬ÒÑÓÐ15000¸öÍøÕ¾Ê¹Óà PHP/FI£»Ê±¼äµ½ÁË1997Ä꣬ʹÓÃPHP/FIµÄÍøÕ¾Êý×Ö³¬¹ýÎåÍò¸ö¡£¶øÔÚ1997ÄêÖУ¬¿ªÊ¼Á˵ÚÈý°æµÄ¿ª·¢¼Æ»®£¬¿ª·¢Ð¡×é¼ÓÈëÁË Zeev Suraski ¼° Andi Gutmans£¬¶øµÚÈý°æ¾Í¶¨ÃûΪPHP3¡£2000Ä꣬PHP4.0ÎÊÊÀÁË£¬ÆäÖÐÔö¼ÓÁËÐí¶àеÄÌØÐÔ£¬¶øÕâÐ©ÌØÐÔ¶¼ÊÇ¿ª·¢Õߺ͵±Ê±µÄÏîĿǿÁÒÐèÒªµÄ¡£
´Ó1.0°æ±¾µ½4.0°æ±¾£¬PHPÔÚ¿ªÔ´ÉçÇøºÍZend¹«Ë¾µÄÖ§³Öϱ£³ÖÎȶ¨µÄÔö³¤ºÍ½ø²½¡£ÔÚÕâÖÖ¿ìËٵijɳ¤ ......
×î½üÒ»¶Îʱ¼ä£¬ÔÚæºõ£ò£õ£â£ùµÄ²âÊÔ¿ò¼Ü¡£
´Ó²»ÊìϤBDD,RSpecµ½Ä¿Ç°Äܹ»ÉÔ΢×öµã¶«Î÷£¬¸Ð¾õ·Ç³£²»´í¡£
RubyÊÇÃŷdz£Áé»îµÄ½Å±¾ÓïÑÔ£¬´Ó¶øÒ²×ÔÈ»ÏëÓÃËü×÷Ϊ²âÊԽű¾¡£ÈÃÎÒÃDZàдµÄ´úÂë½øÈë£Ô£Ä£ÄµÄģʽ¡£
µ±È»£Ô£Ä£Ä¾¹ýÕâЩÄêµÄ·¢Õ¹£¬ÏÖÔÚÒѾ½øÈëBDD(Behaviour-Driven Develop)µÄʱ´ú¡£
BDDºÍTDDÖ÷ÒªµÄת±äÊÇÄ¿±êµÄת±ä¡£
TDDÖ÷ÒªÊÇÒÔTestΪÖ÷£¬¶ø²»ÊÇÒÔÇåÎú½â¾öÎÊÌâΪÖ÷¡£
¶øBDD¾ÍÊÇÒԷdz£ÇåÎúµÄ·½Ê½ËµÃ÷µ±Ç°µÄ´úÂëµÄÒâͼ£¬´Ó¶ø±ãÓÚÈËÃǵŵͨ£¨°üÀ¨·Ç±àÂëÈËÔ±Ò²ºÜÈÝÒ×Àí½â£©¡£
µ±È»BDD»¹ÊÇÓÐTestµÄ£¬ËüÖ»²»¹ýÊǽ«ÏÈǰTDDµÄģʽÉÔ΢¸ü½øÒ»²½£¬Ëü¿ÉÒÔÇåÎúµÄ±í´ïµ±Ç°µÄ¹¦ÄÜ¡£
´Ó±àд´úÂë½Ç¶ÈÀ´Ëµ£¬ BDDºÍTDDÊÇÀàËÆµÄ¡£
RSpec ¾ÍÊÇrubyʵÏ֣£ģĵĿò¼Ü¡£
°²×°: gem install rspec
±àдһ¸ö½Å±¾test_spcec.rb£º
describe "App " do
it 'should be empty ' do
end
end
ÔËÐУº¡¡
spec -fs test_spcec.rb
ÉÏÃæÎÒÃÇÓõÄÊÇÒ»¸ödummyµÄ½Å±¾£¬ÄãÄܹ»ÔËÐÐÆðÀ´¡£
¾ßÌåµÄʹÓã¬ÍøÉÏÓзdz£ÀàËÆTDDµÄģʽ±àдµÄ´úÂë¡£
Test-driven development and RSpec£º
http://www.ibm.com/developerworks/web/ ......
1.µÃµ½µ±Ç°µÄʱ¼ä
Calendar cal = Calendar.getInstance();
String time=formatter.format(cal.getTime());
String strEnd=time.substring(0, 16);// 2007-10-30 09:30
Calendar cal = Calendar.getInstance();
String time=formatter.format(cal.getTime());
String strEnd=time.substring(0, 16);// 2007-10-30 09:30
2.µÃµ½Ç°Ò»ÌìµÄʱ¼ä
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -1);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String mDateTime=formatter.format(c.getTime());
String strStart=mDateTime.substring(0, 16);//2007-10-29 09:30
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -1);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String mDateTime=formatter.format(c.getTime());
String strStart=mDateTime.substring(0, 16);//2007-10-29 09:30
3.µÃµ½Ç°¼¸ÌìµÄʱ¼ä
Calendar c = Calendar.getInstance();
c.ad ......