Ruby�������FRuby�ŃA�W���C���v���g�^�C�s���O�i2�j�i1/2 �y�[�W�j

» 2005�N12��07�� 12��00�� ���J
[�G���q�_, ����m, �яG��C�i�a�V�X�e���}�l�W�����g/�i�a�V�X�e���}�l�W�����g/�A�[�N�s�A]

�@�{�L����RoR���g���ăv���g�^�C�v���쐬���A�A�W���C�������m�ɃN���C�A���g����̋@�\�v�������܂Ƃ߂邱�Ƃ��Ă���A�ځu�A�W���C���v���g�^�C�s���O with Rails�v�̑�2��ڂł��B�A�ڑ�1��uRuby on Rails�ōs���v���g�^�C�s���O�v�́A�v���g�^�C�v���쐬���邱�Ƃ̗L�p���ƌ���̃v���g�^�C�v�쐬���ǂ̂悤�Ȗ��_�������Ă��邩�ARoR���g�p���ăv���g�^�C�v���쐬���邱�Ƃłǂ̂悤�ȃ����b�g�������炳��邩�ɂ‚��ĉ�����܂����B�A�ڑ�2��ڂ́ARoR���g�������Ō������Ȃ�Ruby�ɂ‚��ĉ�����܂��B

Ruby����҂ɂ͂����̏��Ђ������߂��܂�

�@�{�A�ڂ�2��ڂ́A�܂��܂��m���x���ႢRuby�ɑ΂��ēǎ҂̕��ɃC���[�W���‚���ł��炤���Ƃ�ړI�Ƃ��Ă��܂��B�ł��̂ŁA���̋L����ʓǂ��Ă�Ruby���ł���悤�ɂȂ�킯�ł́i���R�j����܂���B����̋L����ʓǂ��Ă��������������ŁARuby���L�`���ƕ׋��������Ɗ�����ꂽ���ɂ͈ȉ��̏��Ђ������߂��܂��B

  • �u���̂���Ruby�v�m*1�n
  • �uRuby���V�s�u�b�N 268�̋Z�v�m*2�n

�m*1�n �������`�A�㓡�T���A�܂‚��Ƃ䂫�Ђ�A���̂���Ruby �\�t�g�o���N�p�u���b�V���O 2002�N3��

�m*2�n �–ؕ��Y�A�㓡�T���A�������`�A�܂‚��Ƃ䂫�Ђ�ARuby���V�s�u�b�N 268�̋Z �\�t�g�o���N�p�u���b�V���O 2004�N5��


Ruby�Ƃ́H

�@Ruby�Ƃ͂ǂ̂悤�ȓ���������������Ȃ̂ł��傤���H �ȉ��́AWikipedia�����Ruby�̍��̈ꕔ�����ł��B

�@Ruby�i���r�[�j�́A�܂‚��Ƃ䂫�Ђ�i�ʏ�Matz�j�ɂ��J�����ꂽ�I�u�W�F�N�g�w���X�N���v�g����ł���A�]��Perl�Ȃǂ̃X�N���v�g���ꂪ�p�����Ă����̈�ł̃I�u�W�F�N�g�w���v���O���~���O����������B�i�����jRuby�̓N���X��`�A�K�[�x�W�R���N�V�����A���͂Ȑ��K�\�������A�}���`�X���b�h�A��O�����A�C�e���[�^�E�N���[�W���AMixin�A���Z�q�I�[�o�[���[�h�Ȃǂ̋@�\�����B



�@�I�u�W�F�N�g�w���X�N���v�g����Ƃ���܂����ARuby�̓C���^�[�v���^�ŋN������I�u�W�F�N�g�w������ł���A�Ɠǂݑւ��邱�Ƃ��”\�ł��B�܂���L�̖L�x�ȋ@�\���ȒP�ȃV���^�b�N�X�ŗ��p�ł��邱�ƁAC#�AJava�ȂǂƔ䂵�Ĕ�r�I�w�K�R�X�g���Ⴂ���ƁA�����Y�̃v���O���~���O����ł��邱�ƂȂǂ���ȑO�����{�����ł�Ruby�̒��ړx�͍��������̂ł��B

�@�������A���܂�RoR�̗����A�u���t�@�N�^�����O�v�u�G���^�[�v���C�Y�A�v���P�[�V�����A�[�L�e�N�`���p�^�[���v�Ȃǂ̒���Œm����Martin Fowler�������ڂ��Ă���m*3�n�Ȃǂ̗��R�ɂ��Ruby�͑S���E�I�Ƀz�b�g�Ȍ���ɂȂ�‚‚���܂��B


�m*3�n Martin Fowler�ARuby�Ȑl�X�i����FRuby People�j�Ahttp://capsctrl.que.jp/kdmsnr/wiki/bliki/?RubyPeople


�ǂ�����Ruby�Ȃ̂�

�EJava�łȂ������Ȃ��́H

�@Java��Web�A�v���P�[�V�������쐬����ۂɁA�ŋ߂ł�Spring�ASeasar�̂悤��DI�R���e�i���g�p���邱�Ƃ��嗬�ɂȂ�‚‚���܂��BDI�R���e�i���g�p����ƁA����̃R���|�[�l���g��t���[�����[�N�x���_���i�ȂNJ‹��ւ̈ˑ����O���ݒ�t�@�C���ɊO�o�����A���̈ˑ������A�v���P�[�V�����̎��s���ɉ������邱�Ƃ��ł��܂��B���̌��ʁA�\�[�X���N���[���ɂȂ�A�“ǐ��̌���A�e�X�g�—p���̌���Ȃǂ����҂ł��܂��B

�@�Ƃ���ŁA�M�҂̓��t�@�N�^��C���ŃN���X����ύX�����̂ɐݒ�t�@�C����ύX���Y���Ƃ������Ƃ��Ƃ��ǂ�����܂��B�r���h���ăf�v���C���ďC�������m�F���悤�ƃe�X�g�f�[�^�𗬂������_�Ńf�v���C�����A�v���P�[�V�����������Ȃ��āA����Ɛݒ�t�@�C�����C�����Y�ꂽ���ƂɋC�t���܂��B���̏ꍇ�ݒ�t�@�C���ɋL�q���ꂽ�N���X�����[�h�ł��Ȃ��������Ƃ����̌����Ȃ̂ł����A��������Java�̂悤�ȐÓI�^�t������ł͂��������d���i�N���X�̑��݃`�F�b�N�j�̓R���p�C��������Ă����͂��������̂ł͂Ȃ��ł��傤���H

�@�ȉ��ɕM�҂��悭����Ă��܂��A�N���X����ύX��������ǐݒ�t�@�C���i����̗��Spring�j���C�����Y���P�[�X�������܂��B

1. Zaku�N���X���쐬�B

public class Zaku implements MobileSuits { ...}

2. Zaku�N���X��Spring�̐ݒ�t�@�C���ɋL�q���܂��B

... <bean id="zaku" name="zaku" class="org.zeon.ms.Zaku" />...

3. Zaku�N���X�̃N���X����Gufu�ɕύX���܂��B

public class Gufu implements MobileSuits { ...}

4. �A�v���P�[�V�������s����Zaku�N���X�����[�h�ł��Ȃ��I�I�I

�E�ÓI�^�t������Ɠ��I�^�t������

�@Java �͐ÓI�^�t������ƌĂ΂�Ă��܂��B����ɑ΂���Ruby�͓��I�^�t������ƌĂ΂�Ă��܂��B��ʂɁA�I�u�W�F�N�g�w������ł́u���̃R���e�L�X�g�Ō��肳��Ă���I�u�W�F�N�g�̃N���X�Ƀ��\�b�ha����`����Ă��邩�v�Ń��\�b�h�̌Ăяo���̉”ۂ����肵�܂��B�R���e�L�X�g�Ƃ����̂́A������ƕ�����Â炢�̂ł����u�R�[�h���̕����v�̈Ӗ��łƂ炦�Ă��������B

�@�ÓI�^�t������ł̓R���e�L�X�g�̓R���p�C�����Ɍ��肳���̂ŁA�‚܂茾��d�l�I�ɕϐ��̐錾�ɂ͏�Ɍ^�̐錾���K�v�ɂȂ邽�߁A�R���p�C�����Ƀ��\�b�h�̌Ăяo���̉”ۂ����肷�邱�Ƃ��ł��܂��B���������t���N�V�������g�p����ꍇ���̌���ł͂���܂���B

�@���I�^�t������ł̓R���e�L�X�g�͎��s���Ɍ��肳��邽�߁A����I�u�W�F�N�g�����\�b�ha���Ăяo���邩�́A���s���Ă݂Ȃ��ƕ�����܂���B�t�ɂ����ƁA����I�u�W�F�N�g�̃N���X���Ȃ�ł���A���\�b�ha����`����Ă���΁Aa�i�Ƃ������O�����ƒ��\�b�h�j�����s���邱�Ƃ��ł��܂��B���I�^�t������ł̓R�[�h�̑Ó����̓��j�b�g�e�X�g�����s���Đ��������삷�邱�ƂŒS�ۂ���Ƃ����̂�����ł��B

[�⑫]�@���I�^�t������͂قƂ�ǂ��C���^�[�v���^�`���Ŏ��s�����iSmalltalk�̂悤�ȗ�O������܂��j���߁A�ÓI�^�t������ō쐬���R���p�C���ς݂ł���A�v���P�[�V�����Ɣ�ׂĎ��s���x�ɂ����ė��X��������܂��B���̂悤�ɐÓI�^�t�����ꂾ���炷�ׂă_���Ƃ����킯�ł͂Ȃ��A���ꂼ��K�ޓK���������ăP�[�X�ɉ����Ďg��������Ηǂ��A�ƕM�҂͍l���Ă��܂��B



�E���Ǔ������Ă݂Ȃ���Ε�����Ȃ�

�@�����������肩������܂��񂪁ADI�R���e�i���g�p�����ꍇ�AJava�̓R���e�i������o�����I�u�W�F�N�g�̃N���X�����s���Ɍ��肷�邱�ƂɂȂ�܂��B����Ɠ��l�̂��Ƃ� Struts�̂悤��Web�A�v���P�[�V�����t���[�����[�N�AHibernate��O/R�}�b�p�[���g�p�����ꍇ�ɂ������܂��B�O���ݒ�t�@�C���̓R���p�C���̑ΏۂɂȂ�Ȃ��̂ŁA�{���Ȃ�R���p�C�����ɔ�������ׂ��N���X�̑��݃`�F�b�N�G���[�Ȃǂ��R���p�C�����ɂ͋N����܂���B�����ł��B���j�b�g�e�X�g���邢�̓f�v���C�Ȃǂ��āA�������Ă݂Ȃ���΁A���������ǂ����ȑO�ɓ������ǂ�������������܂���B����̓\�[�X���N���[���ɂȂ������Ƃɑ΂���ÓI�^�t������̒����������Ă��܂��Ƃ����O���ݒ�t�@�C���̕���p�ƍl���邱�Ƃ��ł��܂��B

�ERuby���A�W���C��

�@������x�C�e���[�V�������J��Ԃ��Đ݌v�����Ȃ�Ă��Ă��A�N���X���̕ύX��C���^�[�t�F�C�X�̕ύX������̕ύX�͋N����܂��B�܂��ăA�[�L�e�N�`���̕����t���ŃN���C�A���g�Ƃ̍ŏI���ʕ��̃C���[�W���L�Ɏg�p�����v���g�^�C�v���쐬���Ă���悤�ȏꍇ�ł́A���ꂱ���L�̖ڂ̂��Ƃ��ς���Ă������Ƃł��傤�B

�@Java�ł�Eclipse�Ȃǂ̃��b�`��IDE���g�p���邱�Ƃł��̕��S���y�����Ă��܂��BRuby�͓��I�^�t������̉��b���󂯂āA�ύX�_���̂��̂����Ȃ��čς݂܂��B�܂��{�A�ڂ̎���ȍ~�ɉ�����܂����ARoR�ł͐ݒ�t�@�C�����]����Java�^Web�A�v���P�[�V���������f�R���Ȃ��A���ŠȒP�ɍ쐬�A�C�����邱�Ƃ��ł��܂��BRoR�Ȃ���Z�����Ԃ�Web�T�[�o���N�����A�v���P�[�V�����̓�����m�F���邱�Ƃ��ł��܂��B�v���g�^�C�v���A�W���C���ɍ쐬���邽�߂�Ruby�iRoR�j���g���Ă݂����Ȃ�܂��񂩁H

�@�@�@�@�@�@ 1|2 ���̃y�[�W��

Copyright © ITmedia, Inc. All Rights Reserved.

'; e_dlv.innerHTML = html; adRequest({position:dlv_pos,dom:true}); }else if(ad_type === 'gam'){ var html = '
'; e_dlv.innerHTML = html; refreshGam('InArtSpecialLink'); }else if(ad_type === 'logly'){ var html = '
'; e_dlv.innerHTML = html; loglySet(g_id); }else if(ad_type === 'google'){ var html = '
'; e_dlv.innerHTML = html; googletag.cmd.push(function(){ var slot8 = googletag.defineSlot('/43042345/nlab_artinsert_RT',[[336,280],[300,250],'fluid'],'div-gpt-ad-1551176482959-0').addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); googletag.display('div-gpt-ad-1551176482959-0'); googletag.pubads().refresh([slot8]); }); } }; var insert_ok = function(_target,_str){ var clearfix = d.createElement('div'); clearfix.className = 'colBoxClear'; if(ad_float_fix){ e_body.insertBefore(e_dlv,_target); e_body.insertBefore(clearfix,_target.nextElementSibling); }else{ e_body.insertBefore(e_dlv,_target); } set_dlv(); }; var insert_ng = function(_str){ e_dlv.style.display = 'none'; }; var main = function(){ var e_nodes = e_body.childNodes; // BODY �����q�v�f var e_tags = []; // BODY �����^�O var p_num = []; // BODY ���� P �^�O�ʒu var p_target_num; // �g�}����ʒu var o_float = {}; // ��荞�ݗv�f var o_this = {}; // �A�N�e�B�u�^�O var o_next = {}; // �A�N�e�B�u�^�O�̎��̃^�O var flag_insert = 0; // �}���t���O // ��荞�ݗv�f�`�F�b�N var check_float = function(_e){ var e = 0; if(_e.id.match(/^col\d{3}(l|r)$/)){ e = _e; } return e; }; // �v�f�� Y ���W�ƍ����̍��v�l var get_element_y = function(_e){ var ey = 0; var eh = _e.offsetHeight; while(_e){ ey += _e.offsetTop; _e = _e.offsetParent; } return ey + eh; }; var check_ptag = function(_e){ var e = 0; if(_e.tagName && _e.tagName === 'P'){ e = _e; } return e; }; var try_insert = function(){ p_target_num = Math.floor(p_num.length / 2) - 1; if(p_target_num >= _maxrange) p_target_num = _maxrange; if(dis_con) p_target_num = 0; for(var i = p_num[p_target_num]; i < e_tags.length; i++){ o_this.e = check_ptag(e_tags[i]); if(o_this.e){ o_next.e = check_ptag(e_tags[i + 1]); if(o_next.e){ if(!o_float.e || check_float(e_tags[i - 1])){ o_float.e = check_float(e_tags[i - 1]); o_float.n = i - 1; } if(o_float.e && o_float.n < i + 1){ o_float.y = get_element_y(o_float.e); o_this.y = get_element_y(o_this.e); set_line(o_float.y,'red'); set_line(o_this.y,'blue'); if(o_float.y < o_this.y){ flag_insert = 1; insert_ok(o_next.e,_threshold + ' �p���ȏ��荞�݂���'); break; } }else{ flag_insert = 1; insert_ok(o_next.e,_threshold + ' �p���ȏ��荞�݂Ȃ�'); break; } } }else{ o_float = {}; } } if(!flag_insert){ insert_ng('�}���ʒu�Ȃ�'); } }; // �S�q�v�f����^�O�̂ݔz��ɓ���� for(var i = 0; i < e_nodes.length; i++){ if(e_nodes[i].tagName){ e_tags.push(e_nodes[i]); } } // �S�^�O���� P �^�O�ʒu��z��ɓ���� for(var i = 0; i < e_tags.length; i++){ if(e_tags[i].tagName === 'P') p_num.push(i); // �ŏ��̉�荞�ݗv�f���i�[ if(!o_float.e){ o_float.e = check_float(e_tags[i]); o_float.y = get_element_y(o_float.e); o_float.n = i; } } if(p_num.length >= _threshold){ try_insert(); }else{ insert_ng('P �^�O ' + _threshold + ' �ȉ�'); } }; if(e_body){ main(); }else{ insert_ng('�L���{���Ȃ�'); } })(document,4,5);

���ڂ̃e�[�}

���Ȃ��ɂ������߂̋L��PR