�v���g�^�C�s���O�̐����͎����Z�p�ɍ��E������FRuby�ŃA�W���C���v���g�^�C�s���O�i6�j�i1/2 �y�[�W�j

�{�L����Ruby on Rails�i�ȉ�RoR�j���g���ăv���g�^�C�v���쐬���A�A�W���C�������m�ɃN���C�A���g����̋@�\�v�������܂Ƃ߂邱�Ƃ��Ă���A�ځuRuby�ŃA�W���C���v���g�^�C�s���O�v�̍ŏI��ł��B�ŏI��́A����܂ł̘A�ړ��e�̂����ł��d�v�ȗv�_�𕜏K����ƂƂ��ɁA�v���g�^�C�s���O��RoR�̂��ꂩ����l���܂��B

» 2006�N05��17�� 12��00�� ���J
[�G���q�_�i�i�a�V�X�e���}�l�W�����g�j, ����m�i�i�a�V�X�e���}�l�W�����g�j, �яG��i�A�[�N�s�A�j�C��IT]

�A�W���C���v���g�^�C�s���O4�‚̃|�C���g

�@�����܂Ōv5��̘A�ڂŁA�A�W���C���v���g�^�C�s���O�Ƃ͉����A���ꂪ�Ȃ��L�v�Ȃ̂��ɂ‚��Đ������Ă��܂����B�����ł́A���̑��܂Ƃ߂Ƃ��āA�A�W���C���v���g�^�C�s���O�𗝉����A���������鍜�g�݂ƂȂ�4�‚̃|�C���g�𕜏K���܂��B

�� �J������E�‹��̃p���[�𗝉�����

�@�A�W���C���v���g�^�C�s���O�́A��ɏ㗬�H���Ƀt�H�[�J�X���Ă��܂����A���̐����͋�̓I�Ȏ����Z�p�̑I���ɑ傫�����E����܂��B���ɃA�[�L�e�N�g��ڎw���ꍇ�́A�V�X�e���S�̂⃆�[�U�[�v���ւ̎��_�����ˆ���ŁA�ŐV�̎����Z�p�𗝉����邱�Ƃ��d�v�Ȃ̂͂����܂ł�����܂���B�A�W���C���v���g�^�C�s���O��1�̃|�C���g�́A�u�㗬�H���ł͊J������E�‹��Ȃ�Ċ֌W�Ȃ��v�u�J������E�‹��Ȃ�Ăǂ���卷�Ȃ��v�Ƃ����l���Ɋׂ炸�A�J������E�‹��̔\�͍��𗝉����A���Y���A�ύX�e�Ր��̍����p���t���Ȍ�����������A�I���ł���ڂ����‚��Ƃł��BRuby�ɂ‚��Ă͘A�ڑ�2��uRuby�������v�ARoR�ɂ‚��Ă͑�3��u�A�W���C���v���g�^�C�s���O��Ruby on Rails�v�A��4��u�v���g�^�C�s���O�Ɍ���RoR��DB�ڍs�E�ϊ��@�\�v�� ���̃|�e���V������������܂����B���ɃA�W���C���v���g�^�C�s���O�Ɋ�^���鋭�݂�������x�A�m�F���Ă����܂��B

Ruby

  • ��肽�����Ƃ𒼊��I�ɕ\���ł���Ȍ��ȕ��@
  • ���I�^�t������
  • �R���p�C���s�v

RoR

  • DRY�����̓��P�ɂ��A�����R�[�h���J��Ԃ������K�v���Ȃ�
  • �l�������ꂽ�f�t�H���g�ݒ�iConvention over Configuration�j�ɂ��A�J���҂���������XML�ȂǂŐݒ���L�q����K�v���Ȃ�
  • �\�[�X�R�[�h�ЂȌ`�̎����������”\
  • Migration�ɂ��DB�X�L�[�}�ύX�̎��s���낪�e��

�� �J���҂̃N���G�C�e�B�r�e�B�Ƀt�H�[�J�X����

�@�J������A�‹��̃p���[�𗝉�����΁A�J���҂̃N���G�C�e�B�r�e�B��啝�Ɍ���ł���”\���������Ă��܂��B����͒P�ɍ�Ɨʂ��팸�����Ƃ����悤�ȏ����Ȍ��ʂł͂Ȃ��A�ȉ��̂悤�ȃ����b�g�𐶂ݏo���܂��B

  • ������Ƃ����@�\�lj��E�ύX�ɑ΂��āA�u�ʓ|���v�Ƃ����S����ǂ��Ȃ��Ȃ邱�Ƃɂ��A����̒x���A���s��������Ă��܂����Ƃɂ��i������@��̑������h�~�ł���
  • ���Y���̍�����Ƃ͖{���I�Ɋy�����A�y�����Ƃ���������Y�������コ����Ƃ����X�p�C���������܂��
  • �ق��čl�����ނ��A��Ƃ����Ă��������A�C�f�A�̂킭���Ƃ�����
  • �Z���Ԃō�Ƃ������ł��邱�Ƃɂ���āA�҂��̊Ԃ̎v�l��~���ԁA���Ԃɕʂ̃^�X�N���s��������ۂɔ������铪�̃R���e�L�X�g�X�C�b�`���Ԃ�啝�ɍ팸�ł���

�@�����̂��Ƃ��瓱������2�̃|�C���g�́A�A�W���C���v���g�^�C�s���O�ɂ��N���G�C�e�B�r�e�B�̌��オ���`�ł͂Ȃ��A�w���֐��I�Ȑ��Y���E�i���̌���������炷���Ƃł��B

�@�㗬�H�����牺���H���܂ŁA�V�X�e�������Ƃ����d�����{���I�ɒm���J���ł��邱�Ƃ͋^���悤������܂��񂪁A���̂悤�Ȓm���J���҂ɂƂ��Ắu�N���G�C�e�B�r�e�B�v�̖{�����‚��ނ��Ƃ��̗v�ł��B

�� �ŗD��œ������̂��쐬����

�@��3�̃|�C���g�́A�N���G�C�e�B�r�e�B�𓮍�”\�Ȑ��ʕ��ɏW�����邱�Ƃł��B�A�ڑ�1��u�A�W���C���v���g�^�C�s���O�ŏ㗬�H�����ς���v�ŁA�㗬�H���������ł��邢���‚��̖����N���܂����B

  1. �v�����͂����肵�Ă��Ȃ�
  2. �v������݌v�ւ̃M���b�v�ɔY��ł���
  3. �ڋq�̃C���[�W�ƊJ�������V�X�e���̓������H������Ă���
  4. 3�̌��ʁA�J������Ɏd�l���u���Ă��܂��A���̉e���͈͂��傫��
  5. �ڍא݌v�������������A�R�[�f�B���O�������ʁA�݌v���ς���Ă��܂���

�@����”\�Ȑ��ʕ��ɂ���āA�����̖��̔�����啝�ɗ}���ł��邱�Ƃ͂����܂ł�����܂���B

�@�������A�Ɩ����͂�V�X�e���̊T�v�݌v�Ƀh�L�������g�͕K�v�ł����A�����܂ŕK�v�\���ȗʂɍi��A����”\�Ȑ��ʕ��Ƀp���[�������邱�Ƃ��d�v�ł��B

�� ����”\�Ȑ��ʕ��ŁA�t�B�[�h�o�b�N���ő剻����

�@�Ō�̃|�C���g�́A�ڋq����̃t�B�[�h�o�b�N�𓾂邽�߂ɁA����”\�Ȑ��ʕ����ő���Ɋ��p���邱�Ƃł��B�A�W���C���v���g�^�C�s���O�̍ŏI�ړI�́A�������ꂽ�ڋq�̗v�]�A�f�[�^���f���A��ʍ\���Ȃǂ��琬��m���𓾂邱�Ƃł��B�A�ڑ�4��ŏЉ���悤�ɁA����”\�Ȑ��ʕ��ɂ���āA�ʁA���Ƃ��ɐ\�����Ȃ��m����������ł��傤�B

�@�ȏ�4�‚̃|�C���g����������Ɖ������āA���Ȃ��̃v���W�F�N�g�ŃA�W���C���v���g�^�C�s���O�𐬌������Ă��������B

�@�@�@�@�@�@ 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