ObjectSquare [2008 �N 7 ����]

�m�Z�p�u���n


Seaside �� GO!!

-- �y�X�T�[�o�T�C�h Web �v���O���~���O --

 
seaside logo
��P��:Seaside ������
�u���[�v���C��
�~�V �^�j

1. �͂��߂�

1.1 ������ Web �A�v���t���[�����[�N?

Happy Squeaking!! �ȗ��A���悻 10 �N�Ԃ�̓o��ƂȂ�܂��B �~�V�ł��B ���̘A�ڂł� Web �A�v���P�[�V�����t���[�����[�N Seaside �������Ă����܂��B ���W���[�� Web �A�v���t���[�����[�N�ɂ� Struts �� Ruby on Rails �Ȃǂ�����܂����ASeaside �͂����������̂Ƃ͂��Ȃ�قȂ�l�����ō���Ă��܂��B ���� Web �A�v���t���[�����[�N�͌��O�����Ƃ����l�ɂƂ��Ă��A�����ƐV�N�ȋ�����^���Ă������̂Ǝv���܂��B

�A�ڂ� 6 ��ɂȂ�\��ł��B ����������ɂȂ�܂����A���‚������������B

2. Seaside �Ƃ�?

2.1 Seaside �̃R���Z�v�g

Seaside �̃I���W�i���̊J���� Avi Bryant �͂���Ȏ��������Ă��܂�(����1)�B

���N�ɂ킽���� Web �̐��E�ł͊J���̂��߂̃x�X�g�v���N�e�B�X���~�ς���Ă����B
�o��������Ԃ�ێ����Ȃ�
���Ӑ[���ᖡ���ꂽ�Ӗ��̂��� URL ���g��
���f���ƕ\���𕪗����邽�߂Ƀe���v���[�g��p����
���ł���B
Seaside �͂����������[����S�Ĕj���� Web �A�v���P�[�V�����t���[�����[�N���B Web �J���ł���܂ʼnb�q�Ƃ���Ă������Ƃ�������Ă݂�Ɖ���������̂�? ���ɑ����̂��Ƃ��A����ꂽ�̂��B
--Avi Bryant

�‚܂�ASeaside �ł͍��܂� Web �n�ł��񑩂Ƃ���Ă������Ƃɔ�����ȉ��̂悤�ȓ����������܂��B

�Ȃ񂾂��߂��Ⴍ����̂悤�ł����A�Ӗ����Ȃ����t���Ă���킯�ł͂���܂���B ����ɂ��A��������܂ŁA�O�ꂵ�ăI�u�W�F�N�g�w���� Web �A�v���t���[�����[�N���������Ă��܂��B

 

��ʓI�� Web �A�v���t���[�����[�N�́A�����Ԑ�������Ă��Ă�����̂́A�܂��܂��葱���w���ł�����̂������ƌ����܂��B �I�u�W�F�N�g�w���Ńv���O���~���O�Ƃ������́A�t���[�����[�N���p�ӂ��镡�G�Ȑݒ�t�@�C�������낢��Ƃ�����Ƃ������̂��唼�ł��B Hello, World! �Əo�����������Ȃ̂ɁA���‚��ݒ�t�@�C�����������ꂽ�o�����F����ɂ������Ƃ��邱�Ƃł��傤�B

 

�܂��AWeb �A�v���t���[�����[�N�ł悭������uMVC �A�[�L�e�N�`���v�Ƃ������̂��A�Ȃ��Ȃ��̂����҂ł��B MVC �ȂǂƂ����ĕ������͗ǂ����̂́A�P�ɗl�X�ȃt�@�C�������f���ƃr���[�ƃR���g���[���̃f�B���N�g���ɕ�����Ă���݂̂ŁA���ꂼ��̘A�g�͍��ЂƂ‚Ƃ������̂��قƂ�ǂ�����ł��B ���f���E�r���[�E�R���g���[���̂��ꂼ�ꂪ�A�C���e���W�F���g�ȑ���(�I�u�W�F�N�g)�Ƃ��đ��ݍ�p����̂��{���� MVC �ł��B ������ Web �ł� MVC �́A�葱���R�[�h(�R���g���[���ƌĂ΂�Ă��܂�)���A�f�[�^�\��(���f���ƌĂ΂�Ă��܂�)�����o���āA�o�̓e���v���[�g(�r���[�ƌĂ΂�Ă��܂�)�ɗ������ނ��̂Ƃ������̂ɂ��ӂ�Ă��܂��B ���̏ꍇ�A�N�e�B�u�ȑ��݂̓R���g���[���Ƃ����葱���R�[�h�����ł��B

���� Web �n�� MVC �ŊJ������ɂ́A������̖��O���ԈႦ�Ȃ��悤�ɂ��邱�Ƃ��d�v�ł��B �݂���A�g�����邽�߂ɂ́A�e���v���[�g�⃂�f���̃t�B�[���h����A���ꂼ��̃t�@�C�����Ȃǂ𒍈Ӑ[�����킹��K�v������܂��B ������Ƃ����ύX�ɂ����Ă��A��������̃t�@�C����ҏW���Ȃ���΂Ȃ�Ȃ��d�g�݂Ƃ����̂́A�{���ɕ֗��Ȃ̂ł��傤���B

 

Seaside �́AWeb �ł䂪�߂��Ă��܂��� MVC �ł͂Ȃ��A�{���̃I�u�W�F�N�g�w���ɂ�� MVC ���������Ă��܂��B �J���҂͒ʏ�t�@�C���� HTML �y�[�W�Ƃ��������̂��ӎ����܂���B �����Ə�ʂ̃R���|�[�l���g�Ƃ����P�ʂ������܂��B �ʏ�̃I�u�W�F�N�g�w���v���O���~���O (Smalltalk) �� Web �A�v���̊J�����s����悤�ɂȂ��Ă���A���R�Ȃ���p����Ϗ����s���܂��B ���������I�u�W�F�N�g�w���� GUI �v���O���~���O�����Ă��邩�̂悤�ɁA�T�[�o�T�C�h�� Web �v���O���~���O���ł���A���ꂪ Seaside �ł��B


*1 OSCON 2006�ɂ�

3. Seaside �ɐG���

3.1 �C���X�g�[��

�R���Z�v�g�̏Љ�͂��̂��炢�ɂ��܂��B ���͂Ƃ�����A���ۂɓ��肵�Ď����Ă݂邱�Ƃɂ��܂��傤�B ���ɓ��������₷���Ƃ������Ƃ� Seaside �̒����̈�‚ł��B

 

Seaside �̖{�ƃT�C�g�� https://www.seaside.st �ɂȂ�܂��B ����������肷�邱�Ƃ��������”\�ł����A���{��p�b�`�K�p�̍�Ƃ��s��Ȃ���΂Ȃ�܂���B �����Ƃ��ȒP�Ȃ̂� SeasideJOnePlus ���g�����Ƃł��B ����́A���{�l�L�u(���ł�)�̎�ōs��ꂽ All-in-one �p�b�P�[�W�ŁA��L�̑Ή��ɉ����A���{��̐���������T���v���R�[�h�Ȃǂ��������ꂽ���̂ƂȂ��Ă��܂��B

�T�C�g�͉��L�ɂȂ�܂��B
SeasideJOnePlus

���M���_�ł� 2008/06/20 �ł��ŐV�ɂȂ��Ă��܂��B Zip �t�@�C���ɂȂ��Ă���̂Ń_�E�����[�h���ēW�J���܂��傤�B �C���X�g�[���͂���ŏI���ł��B

SeasideJOnePlus �ɂ́AWindows�AMacintosh�ALinux �p�̋N���p�̃X�N���v�g�����ꂼ��p�ӂ���Ă��܂��B Windows �ł���� win_seaside.bat ���_�u���N���b�N����� Seaside ���X�^�[�g���܂��B

�N������ƈȉ��̂悤�ȉ�ʂ������オ��܂��B

} 1: SeasideJOnePlus ̋N
�} 1: SeasideJOnePlus �̋N��

�E�̕��ɏo�Ă��鏬���ȑ��� Seaside �̃T�[�o�I�u�W�F�N�g�́u�C���X�y�N�^�v�ł��B Seaside ���|�[�g�ԍ� 9090 �œ����Ă���Ƃ������Ƃ��킩��܂��B

 

Seaside �� Smalltalk �œ����Ă��܂�2�̂ŁA�J���‹��Ǝ��s�‹�����̂ɂȂ��Ă��܂��B �ʓr IDE �Ȃǂ����E�C���X�g�[�����Ȃ��Ƃ��A�J���̂��߂̃p���t���ȃc�[�����ŏ�����g�����Ƃ��ł��܂��B

 

�J���Ɏg������� Smalltalk �ł��B Seaside �ł́A�y�[�W�̏���t���Ȃǂŕ����I�� CSS ���g�����Ƃ͂���܂����A��{�I�ɂ͋�������܂ň�‚̌���ŏ����Ă������Ƃ��ł��܂��B

Smalltalk �̉�����̂��̂ɂ‚��ẮA�{�A�ڂł͍s���܂���B �����‚܂�Ō����� Ruby �̂悤�ȃ_�C�i�~�b�N�ȓ��������ƒI�u�W�F�N�g�w������ł��B ���@�͔��ɊȌ��ŁA�����ɏK�����邱�Ƃ��ł��܂��B �܂��́u���킩�� Smalltalk�v�����Ă݂�̂��ǂ��ł��傤�B ���̑��A���ڂ����Q�l�����ɂ‚��Ă͖����ɍڂ��Ă����܂����B


*2 Seaside �͂��܂��܂� Smalltalk �œ��삵�܂��B�{�A�ڂł� Squeak Smalltalk �ł� Seaside �������Ă��܂��B

3.2 �T���v��������

�ł́A���� Seaside �̃T���v���A�v���P�[�V�����ɃA�N�Z�X���Ă݂܂��傤�B URL�͉��L�̂悤�ɂȂ�܂��B

https://localhost:9090/seaside/

�A�v���P�[�V�����̃��X�g���\������܂��B

} 2: Seaside ւ̍ŏ̃ANZX
�} 2: Seaside �ւ̍ŏ��̃A�N�Z�X

examples �Ƃ��������N������܂��̂ŁA������N���b�N���A�X�� counter �Ƃ��������N�����ǂ��Ă݂܂��傤�B

 

�ȉ��̂悤�ȉ�ʂɂȂ�܂��B

} 3: Counter AvP[V
�} 3: Counter �A�v���P�[�V����

���ɎE���i�ȃA�v���P�[�V�����ł����ASeaside �̓������悭�\�������̂ɂ��Ȃ��Ă��܂��B ++ �̃����N�� 5 ��قǃN���b�N���Ă݂܂��傤�B

} 4: JE^𑝂₷
�} 4: �J�E���^�𑝂₷

�����ł����� -- �̃����N�łȂ��A�u���E�U�� Back �{�^�����g���Ė߂��Ă݂܂��傤�B 3 �܂Ŗ߂�܂��B

} 5: Back {^ 3 ܂Ŗ߂
�} 5: Back �{�^���� 3 �܂Ŗ߂�

���āA���̂Ƃ��ɁAWeb �u���E�U���ƃT�[�o (Seaside) ���ʼn����N�����Ă���ł��傤���B Back �{�^���Ŗ߂����ꍇ�A�P�Ƀu���E�U�̃L���b�V�������邱�ƂɂȂ�̂ŁAHTTP �ɂ��ʐM�͔������܂���B ����āA�T�[�o���� 3 �ɖ߂��ꂽ�Ƃ������Ƃ�m�炸�A�J�E���^�̒l�� 5 �̂܂܂̂͂��ł��B �����ł�����x ++ ���N���b�N����ƁA�͂����ăJ�E���^�͂ǂ��Ȃ�ł��傤�B

} 6: ++ ̃N 4 \
�} 6: ++ �̃����N�� 4 ���\�������

6 �ɂȂ�Ǝv������A���Ȃ� 4 �ɂȂ�܂��B �s�v�c�ł��ˁB ���ꂪ Seaside �̑傫�ȓ����̈�u��Ԃ̕ێ��v�ɂȂ�܂��B

3.3 URL�̔閧

���Ƃ��� Web �A�v���P�[�V�����́ACGI ����n�܂��Ă��܂��B �‚܂�u���E�U����̃��N�G�X�g�ɉ����āA���炩�̏����ȃX�N���v�g���N�����A���ʂ� HTML �ɂ��ĕԂ��Ƃ�����������{�ł��B �v���O�����͈�‚̃��N�G�X�g�̂��тɋN�����Ă����ɏI�����邱�ƂɂȂ邽�߁A��Ԃ������܂���B

�������ʂ�Ԃ������Ƃ������A��ߐ��̏����̏ꍇ�́A�������������ł��܂�Ȃ��̂ł����A�ŋ߂� Web �A�v���P�[�V���������Ȃ蕡�G�ɂȂ��Ă��Ă��܂��B �V���b�s���O�J�[�g�Ɍ�����悤�ɁA���[�U�������̃y�[�W���s�������邱�Ƃ�����܂��B ���̂悤�ȏꍇ�ɂ��A�����܂Ń��[�U����͈�‚̃A�v���P�[�V�����𗧂��グ�Ă���悤�Ɍ����Ȃ���΂Ȃ�܂���B

�����������ꃆ�[�U����̕����A�N�Z�X���܂Ƃ߂邽�߂ɁA�Z�b�V���� ID �Ƃ������̂��悭�g���܂��B �v���O�����̏�Ԃ̓��N�G�X�g�̓x�ɔj������܂����AID ���L�[�ɂ��āADB �Ƀ��[�U���Ƃ̏�Ԃ�ۑ����Ă����܂��B ID �� URL �� Cookie �ɖ��ߍ���ł������ƂŁA���O�̃��N�G�X�g�̏�Ԃ� DB ���畜�����A�o���o���̃��N�G�X�g����A�̂��̂Ƃ��Ĉ������Ƃ��ł���̂ł��B

} 7: ZbVɂAvP[VԊǗ
�} 7: �Z�b�V�����ɂ��A�v���P�[�V������ԊǗ�

Java �� Servlet �̂悤�ɁA�T�[�o���Ńv���Z�X���펞�����グ�Ă����`�����ꍇ�ɂ́ADB ���g�킸�Ƃ��A�I���������ŏ�Ԃ��Ƃ��Ă������Ƃ��ł��܂��B DB �����������Q�Ƃ�������A���x�I�ɗL���ȕ����ƌ����܂��B Seaside ���I���������ŃZ�b�V��������ێ����Ă��܂��B �Z�b�V�����̏��� URL �ɖ��ߍ��܂�܂�3�B

���������ǁACounter �� URL �����Ă݂܂��傤�B

https://localhost:9090/seaside/examples/counter?_s=dprpbMsJoWWmwokI&_k=VatUOsrJ

��L�� URL �̃p�����[�^�Ƃ��� _s=dprpbMsJoWWmwokI �̕������Z�b�V���� ID ��\���Ă��܂��B ����ɂ�� Seaside �̓��[�U����肵�Ă���̂ł��B ++ �� -- ���N���b�N���Ă����� ID �͕ς�邱�Ƃ�����܂���B �u���E�U(��^�u)��‚���Ȃǂ��� Counter �A�v���P�[�V�������I������܂œ����l���g���܂��B

�u���E�U��V�K�ɊJ���Ahttps://localhost:9090/seaside/examples/counter �Ƃ������ URL ���w�肷��ƁA��قǂƂ͕ʂ̃Z�b�V���� ID ���U����Ƃ������Ƃ��킩��ł��傤�B (�M�҂̏ꍇ�� _s=abDvKApYFhiepEyc �ƂȂ�܂���)�B

 

�����܂ł́A�ɂ߂ĕ��ʂł��B Seaside �łȂ��Ƃ����̂悤�Ȏd�g�݂����� Web �A�v���P�[�V�����t���[�����[�N�͑�������܂��B

 

������ URL �����߂Č���ƁA_k=VatUOsrJ �Ƃ����ӏ������邱�ƂɋC�Â��܂��B ++ �� -- ���N���b�N���邽�тɂ��̒l�͕ς��܂��B ���͂��� ID �́u�p�� ID�v�ƌĂ΂�A���[�U�́u����(�A�N�V����)�v����肷�邽�߂Ɏg���Ă��܂��B

�Ⴆ�΃��[�U�� 3 ���� 4 �Ɉڂ邽�߂� ++ �������Ƃ������삪����܂��B �܂� 4 ���� 5 �Ɉڂ�Ƃ������������ł��傤�B ������ ID ���‚��ĊǗ����Ă���̂ł��B

�Z�b�V���� ID �݂̂̏��ł́A�T�[�o�̓��[�U�̒��߂̃��N�G�X�g�̒l�����ێ����邱�Ƃ��ł��܂���B ���̂��߃u���E�U�� Back �{�^�����������肷��ƁA�u���E�U�ƃT�[�o���Ƃł��ꂪ�����邱�ƂɂȂ�܂��B

������ Seaside �ł͂���ɍׂ����P�ʂŃ��[�U�̏�Ԃ��Ǘ��ł��܂��B Back �{�^���Ŗ߂����Ƃ��Ă��A���[�U���u3 ���� 4 �ֈڂ�v���߂� ++ �����N�������΁A���� ID �ɂ���āASeaside �� 3 ���� 4 �ֈڂ�A�N�V������(���߂̏�ԂƊ֌W�Ȃ�)�A������x���s���邱�Ƃ��ł��܂��B �u�u���E�U�� Back �{�^���Ŗ߂�Ȃ��ʼn������v�u�����{�^���͈�񂾂��N���b�N���Ă��������v�Ȃǂ������ӏ����́A Seaside �ł͕s�v�ł��B �A�v���P�[�V�����̏�Ԃ��A���[�U�̓���Ƃ����P�ʂŁA����Ǘ��ł��邩��ł��B

} 8:[UANVƂ̏ԊǗ
�} 8:���[�U�A�N�V�������Ƃ̏�ԊǗ�

Seaside �́u�p���v�Ƃ����d�g�݂ɂ���āA���̗D�ꂽ�@�\���������Ă��܂��B �p����p���� Web �A�v���P�[�V�����t���[�����[�N�ɂ́ASeaside �����łȂ��AKahua �Ȃǂ�����܂��B �p�����̂��̂̐����́A�{�A�ڂ͈̔͂𒴂��Ă��܂��܂��̂ŁA�����̂�����͖����̎Q�l��������������ǂ�ł݂�Ɨǂ��ł��傤�B

 

�����Ƃ���҂� Avi Bryant ����́ASeaside �ɂ�����u�p���v�̗��p������قǏd�v�����Ă���킯�ł͂���܂���B AJAX �ȂǁA�ʂ̕��@�ɂ���Ă��A���s�i�K�Ɋ�Â��ăA�v���P�[�V�����̏�Ԃ��Ǘ�����Ƃ������Ƃ͉”\������ł��B �ނ��� Seaside �ŏd�v�Ȃ̂́AWeb �A�v���P�[�V�����ɂ����Ă��u�ł��邾����Ԃ�ێ�����v�Ƃ����X�^���X�ɗ��������Ƃ��Ƃ��Ă��܂��B ����ɂ���āAWeb �A�v���P�[�V�����Ȃ�ł̖͂��Ȋ�������[�U�ɉ����‚����A���ʂ̃A�v���P�[�V�����̂悤�Ɍ����邱�Ƃɐ������Ă��܂��B


*3 �ݒ�� Cookie �Ɉڂ����Ƃ��ł��܂��B

4. �J���‹��𖡂키

�u�p���v�Ƃ����d�g�݂��g�����ƂŁASeaside �̓��[�U���猩�Ď��R�Ȏp�� Web �A�v���P�[�V������񋟂���Ƃ������Ƃ��킩��܂����B ����ł͊J���҂ɂƂ��Ă͂ǂ��Ȃ̂ł��傤���B

 

Seaside �̂�����‚̖��͂́A�J���‹������ɏ[�����Ă���Ƃ������Ƃł��B Web �A�v���P�[�V�����J���Ƃ����ƁA�Ƃ����ׂ��ȃe�L�X�g�t�@�C����ҏW����Ƃ����t�@�C���x�[�X�̂��̂��A�z����܂����ASeaside �̏ꍇ�́u�����ɂ���I�u�W�F�N�g�𒼐ڂ‚��ށv�^�C�v�́A�����I�ȊJ�����”\�ł��B

4.1 �J���җp���j���[

Counter �A�v���̃y�[�W�����߂Č���ƁA���̂ق��� "New Session" �� "Configure" �Ȃǂ̃����N�����邱�Ƃ��킩��܂��B ����͊J�����ɂ̂ݕ\�������悤�ɂȂ��Ă���AWeb �u���E�U����A�J���ɕ֗��Ȋe��̋@�\���g����悤�ɂȂ��Ă��܂��B

} 9: Jҗpj[
�} 9: �J���җp���j���[

�ł́A���̒��ōł��悭�g�� 3 �Ԗڂ� "Toggle Halos" �ŁAWeb �u���E�U����ǂ̂悤�ȊJ�����s����̂����m���߂邱�Ƃɂ��܂��傤�B

4.2 �n���[���o��

�n���[�Ƃ́A�u����v�̂��ƂŁASqueak �� Morphic �ɂ�� GUI �v���O���~���O�ł��Ȃ��݂� UI �ł��B �I�u�W�F�N�g�̎���ɁA���̃I�u�W�F�N�g�𑀍삷�邽�߂̃n���h�������͂ނ悤�ɕ\�������̂ŁA���̂悤�ɌĂ΂�Ă��܂��B

Seaside �̃n���[�� Morphic �ɃC���X�p�C�A���ꂽ���̂ł��B "Toggle Halo" ���N���b�N����ƁA�A�C�R���‚��̘g���\�������悤�ɂȂ�܂��B (�g�O���Ȃ̂ōĂуN���b�N����ƌ��ɖ߂�܂�)�B

} 10: n[̕\
�} 10: �n���[�̕\��

���̃n���[�ɂ��A���݂̃y�[�W���ǂ��������R���|�[�l���g���\�����Ă���̂������o�I�ɂ킩��܂��B �J�E���^�̗�ł́A�n���[�̍���� WACounter �Ƃ���܂��B ����� WACounter (�Ƃ����N���X�̃C���X�^���X)���\�����s���Ă���Ƃ������Ƃ������Ă��܂��B

 

�E��ɂ��� "R" �� "S" �̃����N�ŁA�R���|�[�l���g�̕\���̎d����ς��邱�Ƃ��ł��܂��B R(endering) ���f�t�H���g�ƂȂ��Ă���A�R���|�[�l���g�����̂܂ܕ\�����Ă����Ԃł�4�B S(tring) ���N���b�N����ƁAXHTML �𒼐ڌ��邱�Ƃ��ł��܂��B

} 11: XHTML ̕\
�} 11: XHTML �̕\��

*4 R �̓����_�����O�̗��ł��B�R���|�[�l���g�̕\���� Seaside �ł̓����_�����O�ƌĂт܂��B

4.3 �X�^�C���V�[�g�G�f�B�^

�n���[�̍��㕔���ɂ���A�C�R���́A�X�̃R���|�[�l���g�̏�Ԃ�������ҏW�����肷����̂ɂȂ��Ă��܂��B �܂��͈�ԉE�̃X�^�C���V�[�g�G�f�B�^���N�����Ă݂܂��傤�B

} 12: X^CV[gGfB^̋N
�} 12: �X�^�C���V�[�g�G�f�B�^�̋N��

���L�̂悤�ȉ�ʂƂȂ�܂��B

} 13: X^CV[gGfB^
�} 13: �X�^�C���V�[�g�G�f�B�^

������ CSS �������� "Save" ���邱�ƂŁA�R���|�[�l���g���g���X�^�C����ݒ�ł��܂�5�B

�����ق� XHTML ���m�F�����Ƃ��ɃJ�E���^�̐����� H1 �^�O�ŏ�����Ă������Ƃ��킩��܂����̂ŁA����ɑ΂��ăX�^�C����K�p���Ă݂邱�Ƃɂ��܂��B

H1 {
  color: red;
}

�ȂǂƂ���Ηǂ��ł��傤�B �������񂾌�A"Save" ���A����̃n���[�� x (�‚���)�{�^���ŃG�f�B�^��‚��܂��B

} 14: X^CV[gGfB^‚
�} 14: �X�^�C���V�[�g�G�f�B�^��‚���

�R���|�[�l���g�ɃX�^�C���������ɓK�p����܂����B

} 15: X^C̔f
�} 15: �X�^�C���̔��f

*5 �X�^�C���̐ݒ�ɂ́u���C�u�����v�Ƃ����d�g�݂��g�����@������܂��B��̉�ň����܂��B

4.4 �C���X�y�N�^

����ł͎��ɐ^�񒆂̃A�C�R�����N���b�N���Ă݂邱�Ƃɂ��܂��傤�B

} 16: CXyN^̋N
�} 16: �C���X�y�N�^�̋N��

���x�͈ȉ��̂悤�ȉ�ʂɐ؂�ւ��܂��B

} 17: IuWFNgCXyN^
�} 17: �I�u�W�F�N�g�C���X�y�N�^

a WACounter �ƂȂ��Ă���̂́AWACounter �Ƃ����R���|�[�l���g�N���X�̃C���X�^���X�����Ă��邩��ł��B ����(�C���X�^���X�ϐ�)�Ƃ��� decoration �� count �������Ă���Ƃ������Ƃ��킩��܂��B decoration �͂Ƃ肠������������Ƃ��āAcount �̒l�����������Ă݂邱�Ƃɂ��܂��傤�B

 

count ��I�����A���̃y�C���ɓK���Ȓl�������āA"do it" ���܂��B

} 18: CXyN^̒l̏
�} 18: �C���X�y�N�^����̒l�̏�������

�C���X�y�N�^��‚���ƃR���|�[�l���g�̒l������������Ă��邱�Ƃ��킩��܂��B

} 19: l̏ Counter
�} 19: �l�̏���������� Counter

���̂悤�ɃC���X�y�N�^���g���΁A�R���|�[�l���g�̒l��ǂ񂾂�A�����������肷�邱�Ƃ��u���E�U�o�R�ʼn”\�ɂȂ�܂��B

4.5 �R�[�h�u���E�U

���x�͈�ԉE�̃A�C�R�����N���b�N���Ă݂܂��B

} 20: R[huEŰN
�} 20: �R�[�h�u���E�U�̋N��

Web �u���E�U�̒��ɁASmalltalk �̃R�[�h�u���E�U���o�����܂��B

} 21: R[huEU
�} 21: �R�[�h�u���E�U

WACounter �N���X���ŏ�����I������Ă��܂��B �������ɕ\������Ă���R�[�h�y�C�����g���ƁAWACounter �N���X�̒�`�⃁�\�b�h�̓��e�����������邱�Ƃ��”\�ł��B

 

��ԉE�̃��X�g���AWACounter �̃��\�b�h�ꗗ�ɂȂ��Ă��܂��B increase ��I��ł݂܂��傤�B�R�[�h���C��������ƁA

increase
    count := count + 1

�ƂȂ��Ă��܂��B ��قǃC���X�y�N�^�Ō��� count �̒l�� 1 �������₵�Ă���̂ł��B

 

�����

increase
    count := count + 2

�̂悤�ɏ��������A"Accept" �������Ă݂܂��傤�B

} 22: R[huEU 2 悤ɏ
�} 22: �R�[�h�u���E�U���� 2 ���������悤�ɏ�������

�ŏ��̕ύX�Ȃ̂ŁA�J���҂̃C�j�V�����𕷂���܂��B �����̃C�j�V������K���ɓ���ĉ������B

} 23: CjV̓
�} 23: �C�j�V�����̓���

�C�j�V��������͂���ƁA�u���E�U�ɖ߂�܂��B ����̃n���[�� x (�‚���)�{�^���Ńu���E�U��‚���ƁA���� Counter �̉�ʂɂȂ�܂��B ++ �̃����N���N���b�N���Ă݂܂��傤�B

} 24: ̊mF
�} 24: ����̊m�F

�T�[�o���̃R�[�h�������������̂ŁA2 ���’l����������悤�ɂȂ�܂����B

4.6 �f�o�b�K

�����܂ł���� Web �u���E�U��Ńf�o�b�O�Ƃ����������̂ł��B �c�O�Ȃ���S�Ă� Web �u���E�U����Ƃ����킯�ɂ͂����܂��񂪁ASeaside �� Web �u���E�U�ƃT�[�o���̃f�o�b�K�Ƃ̘A�g�@�\�������Ă��܂��B

 

�܂��͐�قǂƓ����悤�ɂ��� increase �����������܂��B ���x�͐����łȂ� nil ���������悤�ɂ��Ă��܂��܂��B

increase
    count := count + nil
} 25: R[huEU nil 悤ɏ
�} 25: �R�[�h�u���E�U���� nil ���������悤�ɏ�������

Accept �������Ƃ� Counter �ɖ߂� ++ �������ƁA���R�Ȃ���G���[���N����܂��B Web �u���E�U�ɂ̓G���[���N����Ɏ������X�^�b�N�g���[�X���\������܂��B

} 26: X^bNg[X̕\
�} 26: �X�^�b�N�g���[�X�̕\��

�X�^�b�N�g���[�X��̃����N�����ǂ�A�e�i�K�ł̃I�u�W�F�N�g�̏�Ԃ����邱�Ƃ��ł��܂����ASeaside �Ń��j�[�N�Ȃ̂́A�㕔�ɕ\������Ă��� "Debug" �����N�ł��B �N���b�N���Ă݂܂��傤�B

 

Web �u���E�U���ł͉��̕ω����Ȃ��悤�Ɍ����܂����A�T�[�o���ł̓f�o�b�K�������オ��܂��B

} 27:  fobK̋N
�} 27: �f�o�b�K�̋N��

�T�[�o���̃f�o�b�K�ł́A�X�^�b�N�g���[�X�̂��ׂ��ȏ������邱�Ƃ��ł��܂��B �Ȃɂ�肱����̂ق������삵�₷���ł��傤�B ���X�g�� 4 �‚قlj��ɂ��ǂ�ƁA�G���[�̌����ƂȂ������\�b�h�ł��� increase �ɂ‚�������܂��B �R�[�h�� 1 ���������悤�Ɍ��ɖ߂��āA�E�N���b�N���j���[��"����"��I��6�A�����"�p��"�{�^���������܂��B

} 28: R[hCAs
�} 28: �R�[�h�C����A���������s

Web �u���E�U�ɖ߂�ƁACounter �̃A�v���P�[�V�������������Ă��邱�Ƃ��킩��܂��B

} 29:  Counter
�} 29: �������� Counter

���̂悤�� Seaside �ł́A�T�[�o���͂��Ƃ��AWeb �u���E�U�����Ƃ�����ēǂݍ��݂����肹���ɁA�ɂ߂ăC���^���N�e�B�u�ɊJ����i�߂Ă������Ƃ��ł��܂��B �ݒ�t�@�C���x�[�X�̊J���‹��ł́A�t�@�C�������������āA�R���p�C�����A�f�v���C�������ĂȂǂ̎�Ԃ�������̂ɑ΂��āASeaside �ł͎v�l��r�؂ꂳ������̂���؂���܂���B �m���X�g�b�v�ł� Web �v���O���~���O���”\�ɂȂ��Ă��܂��B


*6 Control (Mac �̏ꍇ�� Command ) + s �̃L�[�{�[�h�V���[�g�J�b�g�ŗ��������邱�Ƃ��ł��܂��B

5. �܂Ƃ�

����� Seaside �̃R���Z�v�g�̏Љ���C���ł����B Web �A�v���ɂ��ւ�炸�A�u�����ɂ���I�u�W�F�N�g���‚��ށv�^�C�v�̊J�����ł��������Ƃ������G������ꂽ�̂ł͂Ȃ��ł��傤���B ���񂩂�̓R���|�[�l���g��p�����v���O���~���O�̎d���ɓ����Ă����܂��B �����҉������B

6. �Q�l����

Let's "do it"!!

© 2008 Masashi Umezawa
Index Next
Index Next