�v���g�^�C�s���O�̐����͎����Z�p�ɍ��E����� �F Ruby�Ń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 ]
�@�����܂Ō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
�@�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������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
�@��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
�v�����͂����肵�Ă��Ȃ�
�v������v�ւ̃M���b�v�ɔY��ł���
�ڋq�̃C���[�W�ƊJ�������V�X�e���̓������H������Ă���
3�̌��ʁA�J������Ɏd�l���u���Ă��܂��A���̉e���͈͂��傫��
�ڍא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
�@�Ō�̃|�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
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);