�p�^�[�������Q�[�W�i�ς��[���񂰁[���j�F���V�X�e���p�ꎖ�T

pattern language / �p�^�������Q�[�W / �p�^�[������

» 2008�N03��31�� 00��00�� ���J
[��IT���}�l�W�����g�ҏW���C��IT]

�@�X�Â���⌚�z�f�U�C���Ȃǂ̑n���ߒ��ňÖٓI�Ɏg���Ă����m�E�n�E�����̉��l�ςɊ�Â��w�j��m�I�̌n�Ƃ��Č`�����������̂ŁA���p�ҎQ���^�v���Z�X�ɂ���Ē��a���鐬�ʕ��𐶂ݏo�����Ƃ��”\�ɂ���n���x���c�[���B

�@�p�^�[�������Q�[�W�͋ߑ�s�s�v��ᔻ�̗��ꂩ��V���Ȍ��z���@�_�Ƃ��āA���z�ƂŃJ���t�H���j�A�B����w�o�[�N���[�Z�̊‹��f�U�C���w�������������N���X�g�t�@�[�E�A���O�U���_�[�iChristopher Alexander�j���A1970�N�ォ��񏥂��Ă�����̂ł���B

�@�A���O�U���_�[�����̌��z�̓����́A���ꂩ���錚�z���̐݌v���p�^�[�������Q�[�W�Ƃ�������̌n���g���āA���͂̌`�Ő������Ă������Ƃɂ���B�����Đ}�ʂȂǂŊ����`���Œ肷��̂ł͂Ȃ��A�{�H�̒��ŕK�v�ɉ����ĕύX�������Ȃ��猚�݂�i�߂Ă����B���̉c�݂��A���\�`���S�N�̒P�ʂő����A�X�⌚����Q�i�I�ɐ��������Ă����̂ł���B

�@�A���O�U���_�[�́A����́g�l�H�̓s�s�h�͖L���Ȑl�Ԑ��������Ă���Ɣᔻ���A���̌����͋ߑ�s�s�v��̌�����`�ɂ���āA�s�s���@�\�����ɒ��ڂ����c���[�\���Ƃ��Čv�悳��Ă��邽�߂��Ƃ����B����A�v���r�������R�̃v���Z�X�ɂ���Ē������Ԃ������Č`�����ꂽ�g���R�̓s�s�h�͏��v�f���d�Ȃ荇���\���i�Z�~���e�B�X�\���j�ɂȂ��Ă���A���������ʐS�n�悳�\�\��Ɂu���t�����ʎ��v�Ɩ��t����ꂽ�\�\������Ǝ咣����B���������S�n�悳���������s�s�⌚�z�Ɏ��߂��A�g�L�@�I�����h���񕜂��邽�߁A�}�X�^�[�v�����i��{�v�揑�j�ɑウ�čl�Ă��ꂽ�̂��p�^�[�������Q�[�W�ł���B

�@���z�i���ɐ݌v�j������s�ׂƂƂ炦�錩���͂��˂Ă��炠��A�p�^�[�������Q�[�W�����̌n����1�‚ƌ��邱�Ƃ��ł���B�������A�p�^�[�������Q�[�W�͌��z�ƌl�̌��ꊈ���ł͂Ȃ��A�s�s�Z����R�~���j�e�B�ō��ӌ`�����ł��鋤�ʌ���Ƃ��č\�z����Ă���B

�@�p�^�[�������Q�[�W�̓p�^�[����v�f�Ƃ���A����̂悤�ȋK���V�X�e���ł���B���Ȃ킿�A���{���p��Ƃ��������R���ꂪ���@��Ӗ��I�K���Ɋ�Â��ĒP��i��b�j��g�ݍ��킹�邱�Ƃɂ���Ė����ɕ������o���悤�ɁA�p�^�[�������Q�[�W�͗L�@�I�ȑ��݋K�������ƒp�^�[�����m����������\������ԃf�U�C���𐶐�����V�X�e���Ƃ��ĈӐ}����Ă���B

�@�p�^�[���Ƃ́A���R����������z�ɐ��ށA���a����`�Ԃ𔭐�������悤�ȃ��[���ł���A�悢�X�E�����Â���̂��߂̎w�j�ł���A�ߋ���������p����Ă������j�ƕ����������L�q�ł���B�A���O�U���_�[�͓s�s�⌚�����p�^�[���̐܂�d�Ȃ�ƂƂ炦�A�p�^�[�������a���邱�ƂŁu���t�����ʎ��v��������ƍl�����̂ł���i�������A��ɂ̓p�^�[�������Q�[�W�����ł͕s�����Ƃ�������ɓ]����j�B

�@�p�^�[�������Q�[�W�ɂ����āA�p�^�[���́u���O�v�u�w�i�v�u���v�u������v�u�t�H�[�X���v�̑g����Ȃ鎩�R���ŋL�q�����i�����̌����ł�if-then���[���ŋL�q���鎎�݂��s��ꂽ�j�B�A���O�U���_�[��̒����wA Pattern Language�x�ɂ́A253�̃p�^�[�������^����Ă���B�t�H�[�X�ɂ͐��񎖍��Ƃ��āA�ق��p�^�[���Ƃ̊֌W��g�ݍ��킹�̉”ۂɂ‚��ď�����Ă��邪�A���ꂪ�p�^�[�������Q�[�W�̕��@�ł���A�p�^�[�������Q�[�W���P�Ȃ�m�E�n�E�W�ł͂Ȃ��A�Ӗ��_�I�\�������ƒ����Q�[�W�Ƃ��č\�������|�C���g�ł���B

�� ���z�݌v�̐��ʕ��͎{�H���o�āA�����I�ȗ́i�t�H�[�X�j�̑��ݍ�p���x�z����‹����ɒu�����B�������琧��I�e���Ƃ��čl�����Ȃ���΂Ȃ�Ȃ��Ώۂ��t�H�[�X�Ƃ����B

�@���ЁwA Pattern Language�x�̃p�^�[���́A�u�X�v�u�����v�u�{�H�v��3�‚ɕ��ނ���Ă���A��ʂ̃p�^�[�����牺�ʂ̃p�^�[���֊֘A�t�����Ȃ���Ă���B�g�����͂܂��A253�̃p�^�[���̒�����e�[�}�ɉ����čŏ��̃p�^�[�����߂�B����Ɋ֘A����p�^�[���̂����A�L�p�Ǝv������̂����ׂĔ����o���A�K�v�ɉ����ăp�^�[���̕ύX�E�lj����s���B�������Ăł����p�^�[���̗���u�v�惉���Q�[�W�v�Ƃ����A�]���̌��z�v��̑���ƂȂ���̂ł���B

�@�p�^�[���͏�Ɍ�������A����������̂ł����āA�A���O�U���_�[�������ɂ���253�̃p�^�[�����u�����ł���v�Ƃ��Ă���B���ۂ̌��z�v���W�F�N�g�Ŏg����p�^�[�������Q�[�W�́A�Q�������o�[�i�Z���Ȃǁj�ɂ���ăv���W�F�N�g���ƁA�X���Ƃɒ�߂�����̂ł���B�ߑ㌾��w�i�\�V���[������w�j�ł͌���i�����K�[�W���j���Љ�I����i�����O�j�ƌl�I���b�\�́i�p���[���j�ɋ�ʂ��邪�A�p�^�[�������Q�[�W���X��n�拤���̂���߂�A���ʌ���Ƃ��Ẵp�^�[�������Q�[�W�݂̂����݂���p���[�����Ƃ������ƂɂȂ�B

�@�A���O�U���_�[�̎v�z�ł͏Z������̂ƂȂ����݌v���u�����Ă�����̂́A����̃p�^�[�������Q�[�W�̎��H�ɂ����Ắu�A�[�L�e�N�g�r���_�[�v�Ƃ����E�킪�u�����B�A�[�L�e�N�g�r���_�[�̓��[�U�[�v�����v�惉���Q�[�W�ɂ܂Ƃ߂���A�v���Ɛ�������Ƃ̃o�����X���Ƃ�����A�����݌v�Ƃ��̈ꕔ�{�H���s������ƁA�݌v�Ǝ{�H�̑o���ɂ��������Ƃł���B

�@�p�^�[�������Q�[�W�����ۂ̌��z�ɓK�p��������Ƃ��Ắu�I���S����w�̃}�X�^�[�v�����v�u�m�i�w�����썂�Z�̌��݁v�Ȃǂ��L�������A���z�E�ōL�����p�����܂łɂ͎����Ă��Ȃ��B�Ȃ��A�^�ߒ����z�s�Ȃǂł́A�i�Ϗ����߂�ۂɃp�^�[�������Q�[�W�̎�@�𗘗p���Ă���B

�@���z�E�Ƃ͑ΏƓI�Ƀp�^�[�������Q�[�W�ɑ傫�ȉe�����󂯂��̂��A�R���s���[�^�E�\�t�g�E�F�A�̐��E�ł���B���̐��E�ŃA���O�U���_�[�v�z�̓������ŏ��ɏ������̂́A�P���g�E�x�b�N�iKent Beck�j�ƃE�H�[�h�E�J�j���K���iWard Cunningham�j��2�l�ŁA�ނ��1987�N�ɁwUsing Pattern Languages for Object-Oriented Programs�x�Ƃ����_����A���Ŕ��\�����B���̃e�N�j�J���y�[�p�[�́AGUI�v���O���~���O�ɂ�����p�^�[���̗��p��񎦂������̂ŁA���[�U�[�C���^�[�t�F�C�X�̐݌v�𓖂̃��[�U�[�ɂ�������₷�����邽�߂�5�‚̃p�^�[����񎦂��Ă���B

�@����́u�Ƃ�I�t�B�X�́A���ۂɂ����ɂ���l�����̎�ɂ���Đ݌v����A�����ׂ����v�Ƃ����A���O�U���_�[�̖��ӎ����󂯌p���ł���A�x�b�N�ƃJ�j���K���͂₪�āA�v���O���~���O�ɂ�����u�Q�i�I�Ȑ݌v�v�u�}�X�^�[�v�����̔p�~�v�����������̂Ƃ��āA�G�N�X�g���[���E�v���O���~���O��Wiki�𐶂ݏo�����ƂɂȂ�B

�@1994�N�ɂȂ�ƁA�G�[���q�E�K���}�iErich Gamma�j�A���`���[�h�E�w�����iRichard Helm�j�A�����t�E�W�����\���iRalph E. Johnson�j�A�W�����E�u���V�f�B�[�X�iJohn Matthew Vlissides�j��4�l���uDesign Patterns: Elements of Reusable Object-Oriented Software�v�Ƃ������Ђ��o�ŁA�\�t�g�E�F�A�̓����݌v�Ƀp�^�[���T�O���������񂾁B�����Ŏ����ꂽ23��ނ̃f�U�C���p�^�[���͔��ɐ�������A�g������ɗD��Ă������߁A�����ł�GoF�p�^�[���igang of four��4�l�g�̃p�^�[���j�Ƃ��ăI�u�W�F�N�g�w���J���҂ɏd�󂳂�Ă���B����GoF�p�^�[�������������Ƀ\�t�g�E�F�A�J���Ɋւ��邳�܂��܂ȃp�^�[�����o�ꂵ�A�\�t�g�E�F�A�p�^�[���Ƒ��̂���Ă���B

�@�\�t�g�E�F�A�p�^�[���̗����������āA�ߔN�ł͕��L������Ńp�^�[�������Q�[�W�����ڂ����悤�ɂȂ��Ă����B��Ƃ��C�m�x�[�V�������i�A�w�K���c�Ƃ������t�@�V���e�[�V�����A�v���W�F�N�g���i�Ƃ������̈�ŁA�V���ȃp�^�[�������Q�[�W����āE��������Ă���B

�Q�l����

���w�I���S����w�̎����x �N���X�g�t�@�[�E�A���O�U���_�[�A�V�������E�G���W�F���A�h�j�E�A�u�����X�����^�{�{�떾����^�����o�ʼn�^1977�N12���i�wThe Oregon Experiment�x�̖M��j

���w�p�^���E�����Q�[�W ���E�����E�{�H�\�\�‹��݌v�̎���x �N���X�g�t�@�[�E�A���O�U���_�[�����^���c�˓߁���^�����o�ʼn�^1984�N12���i�wA Pattern Language�x�̖M��j

���w���𒴂������݂̓��x �N���X�g�t�@�[�E�A���O�U���_�[�����^���c�˓߁���^�����o�ʼn�^1993�N10���i�wThe Timeless Way of Building�x�̖M��j

���w�N���X�g�t�@�[�E�A���O�U���_�[ �\�\���z�̐V�����p���_�C�������߂āx �X�e�B�[�u���E�O���{�[�����^�g�c�N�A�C��q�q�A���ː�������^�H��Ɂ^1989�N6���i�wChristopher Alexander: The Search for a New Paradigm in Architecture�x�̖M��j

���w�I�u�W�F�N�g�w���v���O�����̂��߂̃p�^�[������̎g�p�x Kent Beck�AWard Cunningham�����^kdmsnr����^2005�N�i�wUsing Pattern Languages for Object-Oriented Programs�x�̖M��j�I�u�W�F�N�g�w���v���O�����̂��߂̃p�^�[������̎g�p�x Kent Beck�AWard Cunningham�����^kdmsnr����^2005�N�i�wUsing Pattern Languages for Object-Oriented Programs�x�̖M��j


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