âã1人ç®QAããšããã¯ãŒããã2020幎ããããããèãããã«ãªããŸããã âãã¡ãããã以åãããçµç¹ã®äžã§1人ç®ã®QAãšããŠæŽ»åããããŠããæ¹ã¯ããããããŸããã ããããQAãšã³ãžãã¢ãšããè·çš®ã®èªç¥ãåºãŸã£ãããšã§ãããŸãŸã§QAå°éã®äººã¯å±
ãªãã£ããã©ããŠãã«ãèŠãããããšæãã¯ãããäŒç€Ÿãå€ããªããæ¡çšåéãå®éã«1人ç®QAãšããŠãä»äºãããæ¹ãå¢ããããã«æããŸããâ ç§èªèº«ããçŸåšã¯1人ç®ã®QAãšããŠè©Šè¡é¯èª€ãããŠãã身ã§ãã âããã§ãæ¬èšäºããã¯â1人ç®QAãšããŠã®ç«ã¡åãâã·ãªãŒãºãšããŠã1人ç®ã®QAã«æ±ããããŠããããšãå®éã«ãã£ãŠã¿ãŠå€§äºã ãšæã£ãããšãªã©ããäŒãããŠãããŸããâ ãªããæ¬èšäºã§ã¯ãQAãšã³ãžãã¢ããæããŠãQAããšè¡šçŸããŸãã 1人ç®QAããšã¯ãªã«ã âãŸãã¯ã¿ã€ãã«ã«ãããã1人ç®QAããããããäœãªã®ããããèããŠã¿ãŸãããã âäŒç€Ÿã®1人ç®ãªã®ããéšçœ²ã®1人ç®ãªã®ãããªã©ã¯çµç¹ã«ãã£ãŠãã©ãã©ã§ãããå
±éããã®ã¯ãåä»»è
ãååã®QAãå±
ãªãç¶æ
ãã«æ°ãã«å
¥ã£ãŠããQAãšã³ãžãã¢ãšããç¹ã§ãã åä»»è
ãååãå±
ãªããšããããšã¯ã ãã¹ããå質ä¿èšŒãéçºè
ã詊è¡é¯èª€ããªããè¡ã£ãŠããããã¹ããå質ä¿èšŒã®äœå¶ãæŽã£ãŠããªã QAã®å
·äœçãªåœ¹å²ãããŒã«èšå®ããªã ãšããããšã§ããã€ãŸãã1人ç®QAã¯ãããã¯ãã®ãã¹ããå質ä¿èšŒæ¥åãšäžŠè¡ããŠãããããæ±ºããã»ã€ããããšãæ
ãååšããšãããŸãã éèŠãå¢ããŠãã1人ç®QA âåé ã«ãè§Šããããã«ã2020幎ããããXïŒæ§TwitterïŒäžã§ã1人ç®QAã«é¢ããèšåãå¢ããŠããŠãããæ±äººãµã€ãã§ããQAç«ã¡äžãã¡ã³ããŒããã1人ç®QAããªã©ãåéããäŒæ¥ãç®ã«ããããã«ãªããŸããã âèŠå ã¯ããŸããŸèããããŸãããããããã®ãQAãšã³ãžãã¢ããšããããŒã«ã®èªç¥ã»å¿
èŠæ§ã®çè§£ãé²ãã§ããŠãããããåéããäŒæ¥ãå¢ããããšèããããŸããããã«äŒŽã£ãŠããä»ã¯QAãšã³ãžãã¢ãQAå°ä»»ã®çµç¹ã¯ãªãããã©ããæ°ãã«ç«ã¡äžãããããããšããäŒæ¥ãå¢ããŠããŸããã âQAããŒã ãã€ããããã§ã1人ç®ã®QAã¯ãšãŠãéèŠã§ãã âãã®ããŒã ãçµç¹ã®ã«ã«ãã£ãŒãåµãååšã§ããããŸãããçµç¹ã«ãããQAãå質ãžã®æåŸ
ãææ¡ãã€ã€ãŽãŒã«ãšã¿ã¹ã¯ãå
·äœåããªããé²ããŠããããšããé«é£åºŠã®ä»äºãæ
ãããšã«ãªããŸãã éçºçµç¹ãžã®ã¢ãããŒãã®ä»æ¹ âãããªé£åºŠã®é«ãä»äºãæ
ã1人ç®QAã«ã€ããŠãæ¬èšäºãšä»åŸã®é£èŒãéããŠããã€ãã®åãå£ã§åé¡ã詊ã¿ãŸãã âä»åã¯ã1人ç®QAã«ãããéçºçµç¹ãžã®ã¢ãããŒãã®ä»æ¹ã«ã€ããŠèããŸãã â1人ç®QAãæ°ãã«JoinããŠéçºçµç¹ãšäžç·ã«æ¥åãè¡ãå Žåãèãããããã¿ãŒã³ã¯å€§ãã2ã€ãããŸãã âãã¿ãŒã³1:ç¹å®ã®ããŒã ã«å
¥ã蟌ã ââã²ãšã€ã¯ãç¹å®ã®ããŒã ã«å
¥ã蟌ãã§ããã®ããŒã ã®å°ä»»QAãšããŠå®åãè¡ããã¿ãŒã³ã§ãã âéçºããŠãããããã¯ããäžã€ã ãã®ãšããã«1人ç®ã®QAãšããŠå
¥ãå Žåããå°ä»»QAãå±
ãªãç¶æ
ã§è€æ°ãããã¯ããéçºããŠãããã¡ã®1ãããã¯ãã«å°ä»»QAãšããŠå
¥ãå Žåãªã©ããããŸãã âç¹å®ã®ããŒã ã«1人ç®ã®QAãšããŠå
¥ãå ŽåããããŸã§ã®ãã¹ãã®ããæ¹ãå質ã«å¯Ÿããèãæ¹ãªã©ãææ¡ãã€ã€ããã®ããŒã ã»ãããã¯ãã«ãšã£ãŠæé©ãªå質åäžã®ããã»ã¹ãä»çµã¿ã¥ãããæ
ã£ãŠãããŸãã åæã«ããã®ãããã¯ãã®ãªãªãŒã¹ã«åããæ®æ®µã®ãã¹ããæ¹åæŽ»åãªã©ãè¡ããŸãã âããŒã ãçµç¹ã«ãã£ãŠæ±ããããããšã¯ããŸããŸã§ãããäŸãšã㊠âãã¹ãèšç»ã»åæã»èšèšã»å®è£
ã»å®è¡ã»å ±åãŸã§ã®ããã¹ãããã»ã¹ã«æ²¿ã£ããã¹ã掻åå
šè¬ ãã¹ãããã»ã¹ã®æŽå æ¢çŽ¢çãã¹ãã«ãã âãã°åºãâ ããŒã å
ã®äžå
·å管çãåæ èŠä»¶ãèšèšãåäœãã¹ãçã®ã¬ãã¥ãŒ éçºè
ã«å¯Ÿãããã¹ãææ³ãå質ã«ã€ããŠã®èãæ¹ã®ã¬ã¯ãã£ãŒ ãã¹ãèªåå âãªã©ããããŸãã âå®éã«1人ç®QAãšããŠJoinããæ¹ã«ãšã£ãŠã®ãã¿ãŒã³1ã®ã¡ãªããã¯ãéçºããŒã ãšå¯ã«é£æºã§ããããããã¯ãã®ä»æ§ãéå»ã®çµç·¯ãªã©ããã£ããã¢ããããç¯å²ãçããšããç¹ãæããããã§ãããã âç¯å²ã察象ãããçšåºŠçµãã€ã€ã1人ç®QAãšããŠã®åãçµã¿ãã¿ã¹ã¯ã¬ãã«ã«åè§£ã»åãçµã¿ãããããäžæ¹ã§ãããçšåºŠçæçãªææãæ±ããããããšããããŸãã ãã¿ãŒã³2:è€æ°ããŒã ã«åºãæµ
ãé¢ãã ããã²ãšã€ã¯ãè€æ°ã®ããŒã ããããã¯ãã«æšªæçã«é¢ãããå
Œåã®ãããªåœ¢ã§å€ããå質åäžã®æå©ãããããã¿ãŒã³ã§ãã âå°ä»»QAãå±
ãªãã£ãäŒç€Ÿã«ãããŠãçµç¹å
šäœãšããŠå質åäžã®åãçµã¿ãå§ããããã«1人ç®QAãšããŠå
¥ãå Žåãã瀟å
ã®QAæ¥åãå€éšã®äŒç€Ÿã«äŸé ŒããŠãããšããã«1人ç®ã®æ£ç€Ÿå¡QAãšããŠå
¥ãå Žåãªã©ããããŸãã âãã¡ãã¯ãã¿ãŒã³1ãšã¯ç°ãªããããçµç¹ã«ãã©ãŒã«ã¹ããåããæ±ããããåŸåã«ãããŸãã âããšãã° âçµç¹å
šäœã§ã®ãã¹ãã»QA掻åç¶æ³ã®ææ¡ ãQAãšã³ãžãã¢ãšã¯ãã®èªç¥åäž 2人ç®3人ç®ã®QAãšã³ãžãã¢ã®æ¡çšé¢é£æ¥å ãåè³ªåºæºããããã¹ãæšæºããªã©ãçµç¹å
šäœã«é¢é£ããã«ãŒã«ãåºæºã®å¶å®ããã³æ®å ããŒã ããŸããã ãã¹ãããã»ã¹ãäžå
·åã®ç®¡çã»åææ¹æ³ã®èšå® âãªã©ããããŸãã âãã¡ãã®ãã¿ãŒã³2ã®1人ç®QAãšããŠJoinããã¡ãªããã¯ããã¿ãŒã³1ãšæ¯ã¹ãŠããåºãç¯å²ã«æºãããããšãäžé·æçãªèŠç¹ã§å質åäžæœçãããŒã ããŸããã åå°ã¥ããã«çæã§ããããšãªã©ããããŸãã âäžæ¹ã暪æçã«é¢ããQAåŽãç©æ¥µçã«éçºããŒã ã«å¯ŸããŠåããããããŠãããªããšãå質åäžæœçããªããªãé²ãŸãªããªã©ãææãåºã¥ãããªã£ãŠããŸãé¢ãããã§ãããã â2ã€ã®ãã¿ãŒã³ãè¡ãæ¥ããå Žåã âå®éã«ç§èªèº«ãã1人ç®QAããšããŠä»äºãããŠããããã¿ãŒã³2ã«è¿ã圢ã§åããŠããŸãã â䟿å®äžãã¿ãŒã³1ãš2ããšããåºå¥ãããŸãããããããã¯å®å
šã«å¥ç©ã§ãã£ãããäžæ¹ãéžæãããããäžæ¹ã¯éžã¹ãªãããšãããã®ã§ããããŸãããç¶æ³ã«ãã£ãŠã¯ããããããåãæ¿ããããããçšåºŠäž¡ç«ãããããšããããšãèããããŸãã âããšãã°ç§ãæå±ããéšéã§ã¯ãè€æ°ã®éçºéšãååšããŠãããç§ãå
¥ç€ŸãããŸã§å°ä»»ã®QAã¯å±
ãŸããã§ããã ããã«1人ç®ã®QAãšããŠJoinããããã§ãããæåã«èããã®ããç¹å®ã®ããŒã ã«å
¥ã蟌ãã§åãïŒãã¿ãŒã³1ïŒã®ãšãåºãæµ
ãå
šäœãã¿ãïŒãã¿ãŒã³2ïŒã®ãšãã©ã¡ããããã ããïŒããšããç¹ã§ãã âæåã¯ãã¿ãŒã³2ãéžæããŠãåéçºããŒã ã«å¯ŸããŠå°ããã€é¢ãã£ãŠããŸããããããããã°ããè¡ã£ãŠã¿ããšãããªããªãå質åäžæŽ»åãåã«é²ãã§ããªã宿ããããããã¯ç¹å®ã®ããŒã ã§æåäºäŸãäœããªããšé£ãããã ãšèãããã¿ãŒã³1ã«è¿ã圢ã«å€æŽãããŸããã âãã®åŸãã²ãšã€ã®ããŒã ã«å
¥ã蟌ãã§æŽ»åããã€ã€ãããã§è¡ã£ãå
容ãä»ã®ããŒã ã«ãå
±æããããšã§ããããªããŠããããšå£°ããããŠããããããã«ãªããŸãããçµæãšããŠãå床ãã¿ãŒã³2ã®åœ¢ã«è¿ã¥ããŠããŸãã âããã¯ãããŸã§ãç§ã®äŸã§ããããããæ£è§£ãšããããšã¯ãããŸãããçµç¹èŠæš¡ãéçºããŒã ã®æåãªã©ã«å¿ããŠãã€ã©èããŠããããšã倧åã§ãã ã1人ç®QAããæŽ»èºããããã«ã2ã€ã®ãã¿ãŒã³ãããšã«èããŸããã âä»åã¯ã1人ç®QAã«ã€ããŠã®æŠèŠãšã1人ç®ãšããŠJoinããQAãéçºããŒã ã«é¢ãã£ãп޻åããŠããéã®2ãã¿ãŒã³ã«ã€ããŠã説æããŸããã âç¹å®ã®éçºããŒã ã«å
¥ã蟌ãå Žåãšãè€æ°ã®éçºããŒã ã«å¯ŸããŠå€ããé¢ããå Žåãçµç¹ã®ç¶æ³ãåéæã®èŠä»¶ãªã©ã«ãã£ãŠã©ã¡ããã®ãã¿ãŒã³ã«å®ãŸãããšãããã°ãã©ã¡ãããéžæãããè¡ãæ¥ããªããQA掻åãé²ããããšããããŸãã âããéžæã§ããå Žåã«ã¯ãéçºçµç¹ã®ãããŒãžã£ãŒãªã©ãšãã©ã¡ãã®ãã¿ãŒã³ã§ãããããäžç·ã«èããåæããããšã倧åã§ãã1人ç®QAãšããŠJoinããå Žåããããã¯1人ç®QAãè¿ãå
¥ããå Žåã¯ããããã®ãã¿ãŒã³ãé©åããèããŠã¿ãŠãã ããã The post 1人ç®QAã®äœçœ®ã¥ããšãéçºçµç¹ãžã®ã¢ãããŒãã®ä»æ¹ first appeared on Sqripts .
ã¯ãããŸããŠïŒ ãããã·ã¥ã§ãã çŸåšã®æ¥åã¯ã¢ãžã£ã€ã«QAãšããŠãã客æ§å
ã«åžžé§ããŠæ¥åãè¡ãªã£ãŠããŸãã 9/22ã« JaSST’23 Niigata ãéå¬ãããŸãããä»åããQAçµç¹ã«ä»²éãå¢ãããŠãããšãã«å€§äºãªããšããQAã¹ãã«ã¢ã»ã¹ã¡ã³ããšãªã³ããŒãã£ã³ã°ã§ä¹ãè¶ããå£ãšããããä¹ãè¶ããå£ãçãèªèº«ã®åžžé§å
ã«æ°èŠã¡ã³ããŒãé
å±ãããæã«OJTãšããŠåœ¹ç«ã€ããšãããã®ã§ã¯ãªãããšæãããªã³ã©ã€ã³ã§åå ããŠããŸããã ãã®äžã§ãèªèº«ã®çŸå Žã§åœ¹ç«ã€ãšæããã ãäºäŸçºè¡šã ãããã¯ã¢ãããããŠããã ããåŠã³ã®éšåãå
±æãããŠããã ããããšæããŸãã äºäŸçºè¡š äºäŸçºè¡šã¯ã ãQAã¹ãã«ã¢ã»ã¹ã¡ã³ããšãªã³ããŒãã£ã³ã°ã§ä¹ãè¶ãã å£ãšããããä¹ãè¶ããå£ããšé¡ããŠããããããšå·æº ååãã ïŒfreeeïŒãškenseiããš æ¬å€ 顿ãã ïŒfreeeïŒãç»å£ãããŸãããè¬æŒå
容ããåŸããïŒã€ã®åŠã³ãã以äžã«ãŸãšããŸãã åŠã³ ãã®ïŒïŒOP(ãªã³ããŒãã£ã³ã°ããŒãããŒ)ãšäžç·ã«èª²é¡ãšç®æšãæã£ãŠåãçµãã§ãã è¬æŒã¯ãä»å¹Žã®4æã«äžéå
¥ç€Ÿãããå·æºãããäœéšããfreee ã®ã¹ãã«ã¢ã»ã¹ã¡ã³ããšãªã³ããŒãã£ã³ã°ã«ã€ããŠã®è©±ããå§ãŸããŸããã ãªã³ããŒãã£ã³ã°ãšã¯ ãªã³ããŒãã£ã³ã°ãšã¯ãæ°å
¥ç€Ÿå¡ãã¯ãããäžéæ¡çšç€Ÿå¡ãªã©æ°ããçµç¹ã«å ãã£ã瀟å¡ã®æ©æé¢è·ãé²ããªãããäŒæ¥ã«ãšã£ãŠæçšãªäººæã«è²æããæœçã®ããšã§ãã ãªã³ããŒãã£ã³ã°ãšã¯ïŒäºäŸ5éžïœå®æœã®ãã€ã³ããã¡ãªããã解説 éå»ã«å·æºãããèªåãäœéšããŠããããšãšã®æ¯èŒãäžå¿ã«ä»¥äžã®3ç¹ã«ã€ããŠã話ããã ããŸããã ãããŸã§ã®çŸå Žãšæ¯èŒããŠããã£ãæ ãªã³ããŒãã£ã³ã°ã«å¯ŸããŠã®QAçµç¹ã®é°å²æ° ãªã³ããŒãã£ã³ã°ãåããäžã§å°ã£ãæ ãªã³ããŒãã£ã³ã°ã®é°å²æ°ã話ãããããŠè¯ãã£ããšã®ã話ããããŠããŸãããã°ã«ãŒããã£ãããæŽ»çšããŠåè¬è
仲éãå
茩瀟å¡ãžã®è³ªåããæãç°å¢ãçšæãããŠããã®ãè¯ãã£ãããã§ãã ãŸããå°ã£ããšãã«ãããããã£ãããšãšããŠãOP(ãªã³ããŒãã£ã³ã°ããŒãããŒ)ã®ååšããããšã®ããšã§ãããOPãšã¯ããªã³ããŒãã£ã³ã°ã宿œããåŽãåè¬è
ã²ãšãã²ãšãã®æ
åœã«ãªãå¶åºŠã§ããå·æºãããåè¬è
ãšããŠãäœããæãä»ãããããããæ©ãã§ãããšãã«ãOPã«èª²é¡ãç®æšãçžè«ã»å
±æã§ããç°å¢ããã£ãããšãè¯ãã£ããšã®ããšã§ããã ç§ã®çŸå Žã§ã¯å°ä»»ã®OJTã®æ
åœãèšããŠãããã詳ãã人ã«èããšãã£ãããšã«ãªããã¡ã«ãªã£ãŠããŸããOPã®ãããªååšãçŸå Žã§èšå®ããããšã§ã以äžã®æ¹åãå³ãããšèããŠããã®ã§ãä»åŸåãçµãã§è¡ããã°ãšæããŸãã çªå£ãäžå
åãããã®ã§æ°èŠã¡ã³ããŒã質åãããããªããå¿ççå®å
šæ§ãæ
ä¿ãããç¶æ
ã§æè²ãåããããšãã§ããããš å°ä»»æ
åœè
ã«ãšã£ãŠãåŸèŒ©ãæå°ããçµéšã®å Žãäžããããããš æããåŽãšæããåŽã§ãã£ããã³ãã¥ãã±ãŒã·ã§ã³ãåããªããäžæç¹ãå¿é
äºãä¹ãè¶ããŠããäºãã«æé·ããªããåŠãã§ãããç°å¢ãäœããããšæããŸãã åŠã³ ãã®ïŒïŒãªã³ããŒãã£ã³ã°ãå
šãŠåããããäžäººåãšããããã§ã¯ãªãã è¬æŒã®åŸåã¯å·æºããã®OPã§ãããæ¬å€ããã®æ
åœãšãªãããèªèº«ãå
¥ç€Ÿãããªã³ããŒãã£ã³ã°ã®äœå¶ãæŽã£ãŠããªãã£ããããšçŸåšãšã®æ¯èŒããããšãªã³ããŒãã£ã³ã°ã宿œããåŽã®èŠç¹ã«ã€ããŠä»¥äžã®3ç¹ãäžå¿ã«ã話ãããŠããã ããŸããã ã¹ãã«ã¢ã»ã¹ã¡ã³ãã»ãªã³ããŒãã£ã³ã°å°å
¥ä»¥åã®QAçµç¹ ãªã³ããŒãã£ã³ã°ã®èª²é¡ ã¹ãã«ã¢ã»ã¹ã¡ã³ãã®èª²é¡ ä»åã¯è©³ããè§ŠããŸãããã ã»ãªã³ããŒãã£ã³ã°å°å
¥ä»¥åã®çµç¹ã¯éçºããŒã ã«QAãâŒã£ãŠå¯ã«ã³ãã¥ãã±ãŒã·ã§ã³ãåããªãããã¹ããã§ããã¡ãªããããã£ããã®ã®ãåããŒã ã§ã®ãã¹ãã®ããæ¹ããã©ãã©ã ãšãã課é¡ããã£ãããã§ãã ã»ã¹ãã«ã¢ã»ã¹ã¡ã³ãã§ã¯ãèªå·±è©äŸ¡ã§å人æ¯ã®ãã¬ãçºçããŠããŸããªã©ã®èª²é¡ããã£ãããã§ãã å·æºããã®3ã€ã®ã話ã®äžã§äžçªå€§äºã ãšæããããšã¯ããªã³ããŒãã£ã³ã°åè¬è
ã®èª²é¡ãšããŠããããããããªã³ããŒãã£ã³ã°ãå
šãŠåããããäžäººåãšããããã§ã¯ãªããããšããéšåã§ããããã¯ãåŠãã ããšããã³ãºãªã³ã§å®æœããªããã°ãªããªãã¹ãã«ãšããŠèº«ã«ä»ããªããšããããšã§ãã ç§ã®çŸå Žã§ã¯OJTæé以éã¯å°ä»»ã®æ
åœè
ãä»ããããšããããŸããã§ãããããOJTæéåŸãåŒãç¶ãæ°èŠã¡ã³ããŒã®æ¥åã«ãµãæ
åœãä»ãããªã©ã®ãã©ããŒãç¶ç¶ããããšã§ãææãšæè²ãå¹çããå®è·µã§ããããã«ãªãã®ã§ã¯ãšèããŠããŸãã ãã¡ãããäžçªå€§äºãªããšã¯æ¬äººã®åŠç¿ææ¬²ãšç©æ¥µæ§ã«ãªããšæããŸãã ãŸãšã 以äžãäºäŸçºè¡šããåŸãåŠã³ãã玹ä»ãããŠããã ããŸããã ä»åãªã³ããŒãã£ã³ã°ã®è©±ãäžå¿ã«åãäžããããŠããã ããŸããããã¹ãã«ã¢ã»ã¹ã¡ã³ãã«ã€ããŠã æ¹¯æ¬ åããïŒfreee/ytte LabïŒã®åºèª¿è¬æŒã§åãäžããããŠããŸãã ãQAçµç¹ã«ä»²éãå¢ãããŠãããšãã«å€§äºãªããšããšé¡ããŠãQAçµç¹ã®æ¡å€§ãå³ãäžã§äººå¡å¢å ã«é©ããçµç¹äœãã®èšèšã«ã€ããŠã話ããã ããŠããŸãã 詳ããã¯ä»¥äžããåç
§ãã ããã JaSST’23 Niigata ã¬ããŒã åºèª¿è¬æŒ ã»ãã·ã§ã³ 1 ãQAçµç¹ã«ä»²éãå¢ãããŠãããšãã«å€§äºãªããšã ãªã³ããŒãã£ã³ã°ã«ã€ããŠã¯è²ã
ãªäŒç€Ÿã詊è¡é¯èª€ããŠåãçµãã§ãããšæããŸããåŒç€Ÿã§ãåãçµã¿ãè¡ãªã£ãŠãããŸãããæ°èŠã¡ã³ããŒã«ããè¯ãææãåºããŠãããããã«ããé
å±åŸã®ãµããŒãããã£ãããšè¡ãªã£ãŠãããããšæ¹ããŠæããŸããã ç¶ç¶çãªãµããŒããæåãè¡ãã«ã¯ãµããŒãåŽã®ã³ã¹ãé¢ãæèããªããã°ãªããŸããããæ°èŠã¡ã³ããŒãšããè¯ãææãåºãããã«åªåããŠãããããšæããŸãïŒ æåŸãŸã§èªãã§ããã ãããããšãããããŸããã The post ãªã³ããŒãã£ã³ã°ã®çŸå ޿޻çšã®ãã³ãèŠã€ããïŒïœJaSSTâ23 Niigata åå ã¬ããŒãïœ first appeared on Sqripts .
ããã«ã¡ã¯ïŒããã³ããšã³ããšã³ãžãã¢ã®ã€ããã§ãã ä»åã¯ãç§ãReactéçºã§æ®æ®µå©çšããŠããã¢ã¯ã»ã·ããªãã£ã®ãã§ãã¯ããŒã«ã«ã€ããŠã玹ä»ããããšæããŸãã ã¢ã¯ã»ã·ããªãã£ãšã¯ ã¢ã¯ã»ã·ããªãã£ãšã¯ãæ
å ±ãžã®ã¢ã¯ã»ã¹ãå
šãŠã®äººãå¹³çã«è¡ãããšãã§ããç¶æ
ãæå³ããŸãããŠã§ãã¢ã¯ã»ã·ããªãã£ã¯å
·äœçã«ã¯ãèŠèŠã»èŽèŠãªã©ã®é害ãæã€äººã
ããé«éœ¢è
ãªã©ããŠã§ããµã€ããã¢ããªã±ãŒã·ã§ã³ãå©çšããéã«ééããå¯èœæ§ã®ããå°é£ãè§£æ¶ããããšãç®æããŸãã Reactéçºã«ãããŠããã¢ã¯ã»ã·ããªãã£ã®ç¢ºä¿ã¯éèŠãªèгç¹ãšãªããŸãããã®èšäºã§ã¯ããã®å®çŸããµããŒãããäžéšã®ããŒã«ã玹ä»ããŸãã ã¢ã¯ã»ã·ããªãã£ã®ãã§ãã¯ããŒã« esl int-plugin-jsx-a11y Reactéçºã«ãããŠã¯ãã³ãŒãã£ã³ã°ã®åææ®µéããã¢ã¯ã»ã·ããªãã£ã®åé¡ãç¹å®ããããšãéèŠã§ãããã®äžå©ãšãªãã®ãESLintã®ãã©ã°ã€ã³ã§ãã eslint-plugin-jsx-a11y ã§ãã ãã®ãã©ã°ã€ã³ã¯ãReactã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãããJSXã«ãããã¢ã¯ã»ã·ããªãã£ã«ãŒã«ãæ€èšŒããŸããReactã³ã³ããŒãã³ãå
ã®JSXèŠçŽ ã«é¢é£ããã¢ã¯ã»ã·ããªãã£ã«ãŒã«ããã§ãã¯ããéçºè
ã«æœåšçãªã¢ã¯ã»ã·ããªãã£ã®åé¡ãèŠåãŸãã¯ãšã©ãŒãšããŠè¡šç€ºããŸãã äŸãã°ãimgèŠçŽ ã«alt屿§ãååšããªãå Žåãããã©ãŒã èŠçŽ ãã©ãã«ä»ããããŠããªãå Žåãªã©ãã¢ã¯ã»ã·ããªãã£ã«é¢ããåé¡ãæ€åºããŠãããŸãããã®ããŒã«ã䜿çšããããšã§ãã³ãŒãã®å質ãåäžããã€ã€ã¢ã¯ã»ã·ããªãã£ã®åé¡ãæ©æã«çºèŠã§ããŸãã axe-core axe-core ã¯ãDeque SystemsãéçºãããªãŒãã³ãœãŒã¹ã®ã¢ã¯ã»ã·ããªãã£ã®åé¡ã蚺æããããã®ã©ã€ãã©ãªã§ãããã©ãŠã¶ã®ããããããŒããŒã«ã®ã³ã³ãœãŒã«ã«ã¢ã¯ã»ã·ããªãã£éåã®èŠåã衚瀺ããããšã§ãéçºäžã«ãªã¢ã«ã¿ã€ã ã®ãã£ãŒãããã¯ãåŸãããŸãã å°å
¥æ¹æ³ã¯éåžžã«ã·ã³ãã«ã§ãã¢ããªã±ãŒã·ã§ã³ã®ã¡ã€ã³ã®ãšã³ããªãŒãã¡ã€ã«ã«ä»¥äžã®ããã«ã³ãŒãã远å ããã ãã§ãã Next.jsã®_app.jsã®äŸïŒ import React from 'react'; if (typeof window !== 'undefined' && process.env.NODE_ENV !== 'production') { const ReactDOM = require('react-dom'); const axe = require('@axe-core/react'); axe(React, ReactDOM, 1000); } function MyApp({ Component, pageProps }) { return <Component {...pageProps} />; } export default MyApp; éçºç°å¢ã§ã®ã¿axe-coreãæå¹åããŸãããã®ãããæ¬çªç°å¢ã§ã¯ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããŸããã axe Accessibility Linter axe Accessibility Linter ã¯ãã¢ã¯ã»ã·ããªãã£ããã§ãã¯ããããã®VSCodeæ¡åŒµæ©èœã§ãããã®æ¡åŒµæ©èœã¯ãäžèšã§ç޹ä»ããaxe-coreãããŒã¹ã«ããŠããŸããeslint-plugin-jsx-a11yãšåæ§ãã¢ã¯ã»ã·ããªãã£ã®åé¡ãèªåçã«æ€åºãããšãã£ã¿å
ã§çŽæ¥ãã£ãŒãããã¯ãæäŸããããšãã§ããŸãã Accessibility Insights for Web Accessibility Insights for Web ã¯ãMicrosoftãæäŸããŠããChromeãšEdgeã®æ¡åŒµæ©èœã§ãããã®ããŒã«ã¯ãã¢ã¯ã»ã·ããªãã£ã®åé¡ãèªåçã«æ€åºããä¿®æ£ãã€ã³ããã¬ã€ãã³ã¹ãªã©è±å¯ãªã¬ããŒãæ©èœãéããŠãéçºè
ãã¢ã¯ã»ã·ããªãã£ã®åäžã«åãçµãããšãã§ããŸãã çµãã㫠以äžãç§ãæ¥ã
ã®Reactéçºã«ãããŠæŽ»çšããŠããã¢ã¯ã»ã·ããªãã£ãã§ãã¯ã®ããŒã«ãããã€ã玹ä»ããŸããããããã®ããŒã«ãå©çšããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®ã¢ã¯ã»ã·ããªãã£åé¡ãæ©æã«æ€åºããå¯èœãªéãå€ãã®ãŠãŒã¶ãŒã«ãšã£ãŠäœ¿ããããã¢ããªã±ãŒã·ã§ã³ãéçºããããšãå¯èœã«ãªããŸãã ããããªãããããŒã«ã ãã§å®å
šãªã¢ã¯ã»ã·ããªãã£ãä¿èšŒããããšã¯å°é£ã§ããããŒã«ã®æŽ»çšã¯éèŠã§ããããããšåæã«ãã¢ã¯ã»ã·ããªãã£ã«ã€ããŠã®ç¥èãæ·±ããããšã倧åã§ããå
šãŠã®ãŠãŒã¶ãŒãå¿«é©ã«ã¢ããªã±ãŒã·ã§ã³ãå©çšã§ãããããæã
ã¯åŒãç¶ãåŠã³ãæ·±ããŠãããŸãããïŒ The post Reactéçºã«ãããã¢ã¯ã»ã·ããªãã£ã®ãã§ãã¯ããŒã«ã®çŽ¹ä» first appeared on Sqripts .
ãã®é£èŒã¯ãç»å ŽããŠ20幎ãéããæçæãè¿ãã€ã€ãããã¢ãžã£ã€ã«éçºãã解説ããŸããã¢ãžã£ã€ã«éçºã«ã€ããŠã¯ãäžã®äžã«ããããã®æžç±ãæ
å ±ãããµããŠããŸãããã¢ãžã£ã€ã«ã³ãŒããšããŠ10幎以äžã®çŸå Žçµéšãããšã«ããããããŠåŠã³çŽãããæ
å ±ãäžå¿ã«ãŸãšããŠãããŸãã 第10åç®ã®ããŒãã¯ãããšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã°ïŒXPïŒãã§ããååã¯äŸ¡å€ã®è§£èª¬ãããã®ã§ãä»åã¯ååããã©ã¯ãã£ã¹ã解説ããŸãã ãã®å
容ã¯Udemyã§å
¬éããŠãããªã³ã©ã€ã³ã³ãŒã¹ã çŸåœ¹ã¢ãžã£ã€ã«ã³ãŒããæããïŒåæ¥ã§çè§£ã§ããã¢ãžã£ã€ã«éçºãšã¹ã¯ã©ã å
¥éç·š ãã®å
容ãå
ã«ããŠããŸãã XPã®åå XPã®åå äžè¬çã«èªãããŠããXPã®ååã¯ã第1ç第2çã§å
容ãé²åããããã圱é¿ã§ãããã€ãçš®é¡ããããŸãããã£ãŠãã©ããæ¬ç©ããšãŠããããã«ããã®ã§ãä»åã¯WikipediaïŒ Extreme programming – Wikipedia ïŒã«ãŸãšãŸã£ãŠãããã®ãããŒã¹ã«è§£èª¬ããŠãããŸãã XPã®ååïŒ ãã£ãŒããã㯠ãŸãããã£ãŒãããã¯ãã§ãã顧客ããã®ãã£ãŒãããã¯ã ãã§ãªãããã¹ãã«ãããã£ãŒãããã¯ãå«ã¿ãŸããè¿
éãªãã£ãŒãããã¯ãåŸãããã«ãçããµã€ã¯ã«ã§ã©ãã©ããªãªãŒã¹ãç¹°ãè¿ãããããã¹ããèªååããŠãããããèªåã§ãã¹ãå®è¡ãããããŸããXPã¯è¿
éãªãã£ãŒãããã¯ããã£ãšãéèŠã ãšèããŠããŸãã XPã®ååïŒ ã·ã³ãã«ããåæãšãã æ¬¡ã«ãã·ã³ãã«ããåæãšãããã§ããã·ã³ãã«ãã¯XPã®äŸ¡å€ã«ãç»å ŽããŸããã ã·ã³ãã«ãªãã®ãè€éã«ããŠã¯ãªããŸãããè€éãªãã®ãã·ã³ãã«ã«è§£æ±ºããŠããã®ãéèŠã§ããçãæéã§å°ããéçºããã®ãã·ã³ãã«ãã«ã€ãªãããŸããå°ããã³ãã³ããªãªãŒã¹ãç¹°ãè¿ããŠãããŸãã XPã®ååïŒ å€åãå
容ãã æåŸã«ãå€åãå
容ãããã§ããè±èªã ãšãEmbracing changeããXPãç¥ã人ã«ãšã£ãŠã¯æåãªèšèã§ãããembraceãã¯æ±ãããããå
å²ãããåãå·»ããå
容ãããåãå
¥ãããšãã£ããç©æ¥µçã«åãå
¥ãããæå³ã«ãªããŸãã ãããŸã§ã®ããã»ã¹ã§ã¯å€åãã³ã³ãããŒã«ããããšããæ¹æ³ãåãããŠããŸããããããã§ã¯ãªãå€åãç©æ¥µçã«åãå
¥ããã®ãã¢ãžã£ã€ã«éçºã®å€§ããªç¹åŸŽã§ããå€åãå
容ããããšã§ãããæè»ã«éçºãé²ããŠãããããã«ãªãã®ãã¢ãžã£ã€ã«éçºã®ç®æãæ¹åæ§ã§ãã XPã®ãã©ã¯ãã£ã¹ æåŸã«XPã®ãã©ã¯ãã£ã¹ãèŠãŠãããŸãããã ãã©ã¯ãã£ã¹ã¯ç¶æ³ã«å¿ããŠå®æœããŠãããŸãããŸãããã©ã¯ãã£ã¹å士ãé¢ä¿ãåãéšåãããã®ã§ãããŸãã€ãªãããšå€§ããªå¹æãæºãããŸããããšãã°ã10åã§ãã«ããšåžžæçµåãäžç·ã«ããããšã§ãããã°ã©ã å士ã®çµåããã確å®ã«å®å
šã«è¡ãããŸãã XPã®ãã©ã¯ãã£ã¹ã¯ããããããã®ã§ãããçŸåšã§ã䜿ããè²è€ªããªãæè¡ãã©ã¯ãã£ã¹ãå€ãã§ããçè
èªèº«ããé¡§å®¢ã®æ¯æŽã§XPã®ãã©ã¯ãã£ã¹ãäžå¿ã«å°å
¥ããã±ãŒã¹ã¯å€ããããŸãã çŸåšã ãšãã³ãã¥ãã±ãŒã·ã§ã³ãããŒã éå¶ãäžå¿ã®ã¹ã¯ã©ã ãäž»æµãšãªããæè¡ãã©ã¯ãã£ã¹ãããããã«ãªã£ãŠããŸãçŸå Žãå€ãã§ãããã®çµæãã¢ãžã£ã€ã«éçºã倱æããã±ãŒã¹ãããã®ã§ãããã§ã¯ãã¡ãã£ãšã ã詳ãã解説ããŠãããŸãã XPã®ãã©ã¯ãã£ã¹ã¯åºç€ãšå¿çšã«åãããŠããŸãã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ å
šå¡ååž ã²ãšã€ãã¯ãå
šå¡ååžãã§ãã æè¿ã®ãªãã£ã¹ã ãšããŸããªããããããŸããããæã®ãªãã£ã¹ã ãšããŒãã£ã·ã§ã³ã«åºåããããããŠããŸãããããã¯ããã§å宀ã®ããã«äœ¿ããã®ã§ãéäžã§ããããšãã£ã䟿å©ãªç¹ããããŸããããœãããŠã§ã¢éçºã¯å
±åäœæ¥ãªã®ã§ãããŒãã£ã·ã§ã³ãæåéãå£ã«ãªã£ãŠããŸãå ŽåããããŸãã ãŸããããŒã ã¡ã³ããŒãããããå¥ã®å Žæã§åããŠããå Žåãã³ãã¥ãã±ãŒã·ã§ã³ãåãã«ãããªããŸããåããã«ã§ããã¢ãå¥ã§ã䌌ããããªåé¡ããããŸãã ç¹°ãè¿ããŸãããéçºã¯äººéã«ããå
±åäœæ¥ã§ãã®ã§ãå
šå¡ååžãšãããã©ã¯ãã£ã¹ã¯ã§ãããããåãçµãã§ãããšè¯ããšæããŸããé£ããå Žåã§ããéçºããŒã ã®å³¶ã«ã²ãšã€ã ãããžãã¹ã®åžãäœã£ãŠããã»ã»ã»ãšãããŠãæéããããšãã«ããã«ããŠããã£ãŠäœæ¥ã§ããããã«ããŠãããã»ã»ã»ãªã©ã®å¯Ÿå¿ãæå¹ã§ãã ããŒã ã®åº§åžé
眮ã¯ãããŒã ç«ã¡äžãæã«ããèããŠã¿ããšããã§ãããã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ ããŒã å
šäœ 2ã€ç®ã¯ãããŒã å
šäœãã§ãã ããããè·èœæšªæåããŒã ãã€ãããšããããšã§ããè·èœæšªæåããŒã ãšã¯ããããžã§ã¯ããæåã«å°ãããã®ãã¹ãŠã®ã¹ãã«ãç¥èãçµéšããã€äººéãéãŸã£ãããŒã ã§ãã è·èœæšªæåããŒã ãäœãã®ãé£ããçµç¹ã®å Žåã¯ãã¢ãžã£ã€ã«éçºããªããªãããŸããããªãã±ãŒã¹ãå€ãã§ãããããããããããŸããããè·èœæšªæçããŒã ãç«ã¡äžãããµãããããšãããã©ã¯ãã£ã¹ããããããè¡ãã°ããããŠãã®çŸå Žã¯ã¢ãžã£ã€ã«éçºãããŸãæ©èœãããããæ°ãããŠããŸãã ãŸãã¯ãè·èœæšªæåããŒã ãã§ããã ãäœããé£ããå Žåã¯ãå€éšã®ååãåŸãŠããã®æ©æŠãã§ããã ããªããã»ã»ã»ãšãã£ã察çãèããŠãããšè¯ãã§ãããã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ æ
å ±è±å¯ãªäœæ¥ç©ºé 3ã€ç®ã¯ãæ
å ±è±å¯ãªäœæ¥ç©ºéãã§ãã ããšãã°ãã¢ãžã£ã€ã«ããŒã ã¯ãå£ã«ãµããã貌ãä»ããŠè°è«ãããããã¯ã€ãããŒãã«æ°ããã¢ãŒããã¯ãã£ã®ãã©ããå³ãæžãããããŠãæ
å ±è±å¯ãªäœæ¥ç©ºéãäœã£ãŠãããŸãã ããã«ãããšãããã¢ã«ã³ãŒããŒã¡ãŒã«ãŒããããŠããã£ãŠéè«ç©ºéãäœã£ãããããã«ããã€ããããŠéãŸããããããããã工倫ããããããŸãã ç§èªèº«ããéçºããŒã ã®åº§åžã®è¿ãã«ãããã€çœ®ãå ŽãããããããŸããããã¯ããã€ç¥ç€Ÿãªã©ãšåŒã°ãããã©ã¯ãã£ã¹ã§ãã¡ã³ããŒã¯ãããªé¡ã®ãéãã賜éç®±ã«å
¥ããŠããèåããã¹ãŸãã賜éç®±ã®ãéã䜿ã£ãŠãèåãè£å
ããã®ãåã®åœ¹ç®ã§ããã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ 掻æ°ã®ããä»äº 4ã€ç®ã¯ã掻æ°ã®ããä»äºãã§ãã第1çã ãšãé±40æéåŽåããšããååã®ãã©ã¯ãã£ã¹ã§ããã ã¢ãžã£ã€ã«ãããã§ã¹ãã«ããããŸãããæç¶å¯èœãªéçºãéèŠã§ãããã£ãŠãXPã§ã¯é±40æéå€åãããŒã¹ãšããŠããã£ããäŒæ¯ãåãããã«ããŠããŸããã ããããŸãã®ããšã®ããã«æããããããŸããããæã¯æ®æ¥ã§ã«ããŒã暪è¡ããŠããã®ã§ãæç€ºçã«ãããŒæ®æ¥ããŒããäœãã®ãæã§ãã ãã ãæ®æ¥ãã ããšããããã§ã¯ãããŸãããå Žåã«ãã£ãŠã¯ãå¿
èŠãªãšããããã¯ããªã®ã§ããããšããŠãç¡çã®ãªãæ¹æ³ããšããã¡ã³ããŒãçŽåŸã®äžã§åããç°å¢ãäœãã®ãéèŠã ãšæããŸãã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ ãã¢ããã°ã©ãã³ã° 5ã€ç®ã¯ããã¢ããã°ã©ãã³ã°ãã§ããéç§°ãã¢ããã¯ãæåãªãã©ã¯ãã£ã¹ã§ãããè³åŠãåããããã©ã¯ãã£ã¹ã§ããããŸãã ãã¢ã§ããã°ã©ãã³ã°ãããã®ã§ãéçºéã¯2åã®1ã«ãªããŸãããã ãéæè°è«ãè¡ããªããã³ãŒãã£ã³ã°ããã®ã§ãã¬ãã¥ãŒã®ã³ã¹ããæžããããçµå±ãã¡ãã®ã»ããå¹çãè¯ãã£ããããŸãããŸãããã¢ã§äœæ¥ããããšã§ãç¥èãçµéšã¯åã®ã¹ããŒãã§åŸãããããã«ãªããŸãã ãã¢ããã®çç£æ§ã«ã€ããŠã¯ãéå»å€ãã®è°è«ãè¡ãããŠããŸãããå°ãªããšãããã£ãšãã¢ãããã§ããªããŠããæ°ããã¡ã³ããŒãã¯ãã£ãŠãããšãããé£ããå®è£
ããããšããªã©ã«ããŒã£ãŠããã¢ãããéšåçã«æŽ»çšã§ããŸãã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ ã¹ããŒãªãŒ 6ã€ç®ã¯ãã¹ããŒãªãŒãã§ãããŠãŒã¶ãŒã¹ããŒãªãŒãšåŒã°ãããããŸãã ã¹ããŒãªãŒã®ç¹åŸŽã®ã²ãšã€ã¯ãèŠç©ããããã°ããã·ã³ãã«ã«è¡ããããšã§ãããã£ãŠãå¿
ç¶çã«ã¹ããŒãªãŒã¯ãã§ããã ãå°ããäœããªããã°ãªããªããªããŸãã1000ããŒãžã®èŠä»¶å®çŸ©æžãããã1æã®ã«ãŒãã«æžããããéã®ã¹ããŒãªãŒãXPã¯ãã€ãããŸãã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ 1é±éãµã€ã¯ã« 7ã€ç®ã¯ã1é±éãµã€ã¯ã«ãã§ãã第1çã§ã¯èšç»ã²ãŒã ãšãããã©ã¯ãã£ã¹ã§ããã ã¢ãžã£ã€ã«éçºã§ã¯ã€ãã¬ãŒã·ã§ã³ïŒã¹ã¯ã©ã ã ãšã¹ããªã³ãïŒãšåŒã°ããçããµã€ã¯ã«ã§éçºãè¡ããŸããæžç±ã¯åœå2ã3é±éãæšå¥šãããŠããŸãããã第2çã§ã¯1é±éã«ãªã£ãŠããã®ãè峿·±ãç¹ã§ããããçãæéã§ãªãªãŒã¹ãç¹°ãè¿ããŠããããšãããããŠããã®ãããããŸããã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ ååæãµã€ã¯ã« 8ã€ç®ã¯ãååæãµã€ã¯ã«ãã§ãã çããµã€ã¯ã«ã§éçºãè¡ããŸãããäžé·æçãªèšç»ã倧åã§ããååæãã€ãŸãäžã¶æãããã®æéã§å€§ããªç®æšã®èª¿æŽãè¡ã£ãŠãããŸãã é·æçãªèšç»ã«ã€ããŠã¯ãçŸå Žã«åãããŠé·ãã調æŽãããšè¯ããšæããŸãããã ããé·ãèŠç©ãã£ãŠãã1幎ãã2幎ããããéçã ãšæããŸããæå³ã®ããç¯å²ã§èšç»ãç«ãŠãŠãããŸãããã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ ããšã 9ã€ç®ã¯ãããšããã§ããããšãã§æåãªãã®ãšããŠã¯Googleã®20ïŒ
ã«ãŒã«ããããŸãã ããããšãè©°ã蟌ãã§ãã倧æµã¯ããŸãçµãããŸãããã©ããããŸããããªãããšããæ¯åã®ã€ãã¬ãŒã·ã§ã³ã§è¡ããšã©ãã©ãèŸããªã£ãŠããŸãããã£ãŠãããçšåºŠã®ããšããèšãããã®åé¡ã解決ããŠãããŸãã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ 10åãã«ã 10çªç®ã¯ã10åãã«ããã§ãã ã·ã¹ãã ã®èŠæš¡ã«ãã£ãŠå€ãã£ãŠãããããããŸããããããã§ã¯10åãšããç®å®ãèšå®ããŠããŸãã10å以å
ãšããå¶éãããããšã§ãå®è¡åæ°ãç¶æãããããªããŸãããæéãé·ããªã£ãŠããŸã£ããšãã«æ°ãã€ããŸãã ãã«ãæéã¯çãã«è¶ããããšããããŸãããæéã«ã€ããŠã¯ãèªåãã¡ãåŸ
ãŠãæéãèšå®ããŠããããšæããŸãã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ åžžæçµå 11çªç®ã¯ãåžžæçµåãã§ãã ããã¯ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ïŒCIïŒã§ããæžç±ã§ã¯2ã3æéããšã«çµåãšãã¹ããè¡ããšãããŸãããæè¿ã ãšãœãŒã¹ãã³ãããããããèªåã§CIãåãæ¹æ³ããšã£ãŠããæãå€ããšæããŸãã 倧æµã®å Žåãåé¡ã¯çµåéšåã«ãããŸãããã£ãŠãåžžæçµåããŠããã°ããã®åé¡ã«ããããã€ããããã«ãªããŸãããããCIãå©çšããã¡ãªããã§ãã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ ãã¹ããã¡ãŒã¹ãããã°ã©ãã³ã° 12çªç®ã¯ããã¹ããã¡ãŒã¹ãããã°ã©ãã³ã°ãã§ãããã¹ããã¡ãŒã¹ããšãã¹ãé§åéçºã¯ãè³åŠäž¡è«ãèµ·ãããããã©ã¯ãã£ã¹ã§ãã 倱æãããã¹ãããŸãæžãããã¹ãã倱æããªãããã«ã³ãŒããä¿®æ£ããŠãããã©ã¯ãã£ã¹ã§ããã¯ãããããã¹ããã¡ãŒã¹ãã§è¡ãã®ãé£ãããªããã³ãŒããšãã¹ããåæã³ãããããã«ãŒã«ããå§ããŠããããšæããŸãããªãã«ãããèªåãã¹ãã¯ã¢ãžã£ã€ã«éçºã«å¿
é ã®æè¡ãã©ã¯ãã£ã¹ã§ãã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ ã€ã³ã¯ãªã¡ã³ã¿ã«èšèš 13çªç®ã¯ãã€ã³ã¯ãªã¡ã³ã¿ã«èšèšãã§ãã第1çã§ã¯ã·ã³ãã«ãªèšèšãšãããã©ã¯ãã£ã¹ã§ããã ããã¯èª¬æãé£ãããã©ã¯ãã£ã¹ã§ããããã£ãããããšãã¡ãã£ãšãã€èšèšããŸãããã§ãããã®çç±ã¯ãå
šéšããŸãšããŠèšèšããã®ã¯ã³ã¹ãããããããã§ããã¡ãã£ãšãã€èšèšããã°ãããŸæ±ºããªããŠãè¯ãããšãããããããŸã§å
å»¶ã°ãããŠããããŸã§ã«åŸãæ
å ±ã䜿ã£ãŠããšã§æ±ºããããŸããå
å»¶ã°ããããŸãäœ¿ãæ¹æ³ã§ããããã¯ããšã§è§£èª¬ãäºå®ããŠãããªãŒã³ãœãããŠã§ã¢éçºã«ããæçµè²¬ä»»æç¹ããšãã䌌ããããªèšèãã§ãŠããŸãã ãããŸã§åºç€ãã©ã¯ãã£ã¹ã解説ããŠããŸãããæ¬¡åã¯å¿çšãã©ã¯ãã£ã¹ã®è§£èª¬ãè¡ããŸãã é£èŒäžèЧ 第1åïŒã¢ãžã£ã€ã«éçºã®éå»ãçŸåšãæªæ¥ãç¥ããïŒ ç¬¬2åïŒå£°ã«åºããŠèªã¿ããã¢ãžã£ã€ã«ãããã§ã¹ã 第3åïŒåŸæ¥åéçºãšã¢ãžã£ã€ã«éçºã®éãããã®ïŒ 第4åïŒåŸæ¥åéçºãšã¢ãžã£ã€ã«éçºã®éãããã®ïŒ 第5åïŒã¢ãžã£ã€ã«éçºã®ãããã誀解ãè§£ããŠãããïŒ ç¬¬6åïŒäžçäžã§å€§äººæ°ã®ç§å¯ã«è¿«ãïŒã¹ã¯ã©ã ã䜿ã£ããœãããŠã§ã¢éçº ç¬¬7åïŒãããããã§ãããã«ããã¹ã¯ã©ã ããŒã ã®è²¬ä»» 第8åïŒã¹ã¯ã©ã ã€ãã³ãã®å®è·µæ¹æ³ 第9åïŒãšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã°ãšãã®äŸ¡å€ The post 第10å ãšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã°ã®ååãšåºç€ãã©ã¯ãã£ã¹ first appeared on Sqripts .
ããã«ã¡ã¯ãèªåãã¹ããšã³ãžãã¢ã®ãããã§ãã 2023幎8æã«LogiGear瀟ã®èªåãã¹ãããŒã«ãTestArchitectããã¢ãã€ã«ã¢ããªã®ãã¹ãã«å¯Ÿå¿ããŸãããä»åã¯ãã®æ©èœã®æŠèŠã玹ä»ããŸãã TestArchitectãšã¯ ã TestArchitect ãã¯AGESTã®ã°ã«ãŒãäŒç€Ÿã§ããLogiGear瀟ãéçºããèªåãã¹ãããŒã«ã§ãã10幎以äžã®éçšå®çžŸããããŸããåœåã¯ç¹å®ã®é¡§å®¢ã®èŠæã«æ²¿ã£ãŠéçºããããªã³ããã³ãããŒã«ã§ããããæ©èœè¿œå ãšæ¹åãç¹°ãè¿ããŠæ±çšæ§ã®é«ã補åã«é²åããŸãããçŸåšãç©æ¥µçã«éçºãé²ããããŠããŸãã 2023幎8æã«ã¢ãã€ã«ãã€ãã£ãã¢ããªã®ãã¹ãæ©èœã远å ( v9.3 )ãããããšã§ãæ°ããèªåãã¹ãããŒã«ã®äžã§ã察å¿ã§ãããã¹ãç¯å²ãåºãããŒã«ãšãªããŸãããã¬ã³ãŒãæ©èœãå©çšããç°¡åãªèªåãã¹ããããã»ãããŒã«ãšã®é£æºãã¹ã¯ãªãããå©çšããè€éãªèªåãã¹ããŸã§äœæã§ããé©çšç¯å²ã®åºãããŒã«ã§ãã TestArchitectã®ç¹åŸŽ TestArchitectã®ã¡ãªãã ããŒã¯ãŒãé§åãšè±å¯ãªçµã¿èŸŒã¿ã¢ã¯ã·ã§ã³ã§å®è£
ãšã¡ã³ããã³ã¹ã«ãããã³ã¹ããå°ãªãããã¹ãã³ãŒãã®å¯èªæ§ãé«ãããã¬ãã¥ãŒã®ã³ã¹ããæžããããšããã¡ãªããããããŸãããã¹ã察象ãWindowsãã€ãã£ãã¢ããªããã©ãŠã¶ã®ä»ãã¢ãã€ã«ãã€ãã£ãã¢ããªïŒAndroidã¢ããª/iOSã¢ããªïŒã«ã察å¿ããŠãããããä»ã®èªåãã¹ãããŒã«ãšæ¯ã¹ãŠãå¹
åºãéçºããŒã ã§å©çšå¯èœã§ãã åäœç°å¢ TestArchitectã¯Windows PCã§åäœããŸãã Windows 10,11 â»ãã®ä»åäœç°å¢ã¯èªåå察象ã飿ºããããŒã«ã«ãã£ãŠç°ãªããŸãã詳ããã¯å
¬åŒããã¥ã¡ã³ãã Supported platforms ãããåç
§äžããã ãã¹ã察象 Webãã©ãŠã¶ïŒChromeãEdgeãFirefoxãIEïŒ Windowsãã€ãã£ãã¢ã㪠Androidãã€ãã£ãã¢ã㪠iOSãã€ãã£ãã¢ããª äž»ãªæ©èœ ããŒã¯ãŒãé§ååãã¹ã TestArchitectã¯ããŒã¯ãŒãé§ååãã¹ããæ¡çšããŠããŸããæäœå
容ãã·ã³ãã«ãªããŒã¯ãŒãã§èšè¿°ã§ããããå¯èªæ§ãé«ããã¹ããäœæã§ããŸãããŸãããã¹ãã®ä¿®æ£ã容æã«ãªããšããå©ç¹ããããŸãã ã¬ã³ãŒãæ©èœ æäœããå
容ãèšé²ããŠãã¹ãã³ãŒããšããŠå©çšã§ããããã誰ã§ãç°¡åã«ãã¹ããäœæã§ããŸããèšé²ãããã¹ãã¯ç°¡æœãªUIã§è¡šç€ºããç·šéã容æã§ãã â»v9.3ã§ã¯ãWebãã©ãŠã¶ãWindowsã¢ããªãã¹ããã¬ã³ãŒãæ©èœã«å¯Ÿå¿ããŠããŸããã¢ãã€ã«ã¢ããªãã¹ãã«ã€ããŠãéçºäžã§ãã ããããæäœã«å¯Ÿå¿ããã¢ã¯ã·ã§ã³ TestArchitect㯠èšå€§ãªã¢ã¯ã·ã§ã³ ãå®çŸ©ãããŠããŸãããã¹ãã§å¿
èŠãªæäœã¯ãããã®ã¢ã¯ã·ã§ã³ãçµã¿åãããããšã§å®çŸå¯èœã§ãããŠãŒã¶ãŒãèªåã§éçºããå¿
èŠã¯ãããŸããã ããã°ã©ãã³ã°èšèªãå©çšå¯èœ ãã¹ãã¯ããã°ã©ãã³ã°èšèªã§ã«ã¹ã¿ãã€ãºããããšãå¯èœã§ããæ¢ã«ããã°ã©ãã³ã°èšèªã§å®è£
ãããã¹ããããå ŽåããããTestArchitectã®ãã¹ãã«çµã¿èŸŒãããšãã§ããŸãã å©çšå¯èœèšèª Java Python C# ãã®ä»ãç»åèªèæ©èœãä»ç€ŸããŒã«ãšã®é£æºæ©èœãèªç€Ÿç«¯æ«ãå©çšå¯èœãDBãšé£æºããããŒã¿é§ååãã¹ããã§ãããªã©ãæ§ã
ãªãªãŒããŒã«å¯Ÿå¿ã§ããæ©èœãåããŠããŸãã ã¢ãã€ã«ã¢ããªãã¹ãæ©èœ ãã¹ãç°å¢ã®æ§æå³ TestArchitectã®ã¢ãã€ã«ã¢ããªãã¹ãæ©èœã¯AppiumãµãŒããŒãå©çšããŠåäœããŸããææã¡ã®ç«¯æ«ã®ã»ããRemote TestKitãªã©ã®ç«¯æ«ã¯ã©ãŠããµãŒãã¹ãå©çšå¯èœã§ãã AppiumãµãŒããŒãä»ããŠæäœãããããiOS端æ«ããã¹ãããå Žåã¯Xcodeãã€ã³ã¹ããŒã«ããMacãå¿
èŠã§ãã äœæã§ãããã¹ãã®äŸ TestArchitectã¯AndroidãšiOSã亀äºã«æäœããããè€æ°ã®ç«¯æ«ãåãæ¿ããªããæäœããããšãã§ããŸããAndroidãšiOSã§é³å£°é話ãè¡ããã¹ããã3端æ«ä»¥äžã§ã¡ãã»ãŒãžã®ããåãããããã¹ããªã©ãå®è£
ããããšãã§ããŸãããã®ãããªè€éãªæäœã§ãçµã¿èŸŒã¿ã¢ã¯ã·ã§ã³ãçšæãããŠããããã³ãŒãã£ã³ã°ã®å¿
èŠã¯ãããŸããã ãŸããã¢ãã€ã«ã¢ããªãWindowsãã©ãŠã¶ãWindowsã¢ããªãªã©ãåãæ¿ããŠæäœããã¯ãã¹ãã©ãããã©ãŒã ãã¹ããäœæã§ããŸããã¢ãã€ã«ã¢ããªã§ç»é²ããæ
å ±ãWindowsã®ããŒã¿ããŒã¹ã¢ããªã§ç¢ºèªããããšãã£ããã¹ããäœæå¯èœã§ãã ãã¹ãäœæã®æé iOS端æ«ã§åçãæ®åœ±ãããã¹ããäœæããæé ã玹ä»ããŸãã 端æ«ãžã®æ¥ç¶ TestArchitectã®ãã€ã³ã¿ãã§ãŒã¹ãã¥ãŒã¯ãŒãæ©èœã«æ¥ç¶ãã端æ«ã®æ
å ±ãå
¥åããŠãæ¥ç¶ããã¿ã³ãã¯ãªãã¯ããŸãã èŠçŽ ã®ååŸ ãã©ãŒç»é¢äžã§ååŸããã察象ãã¯ãªãã¯ãããšèŠçŽ ã®ããããã£ã衚瀺ãããŸããèŠçŽ ã®æ€åºã«å©çšãããããããã£ã«ãã§ãã¯ããããŠä¿åããã ãã§ååŸãå¯èœã§ãã ä¿åãã¿ã³ãæŒããšãTestArchitectã®ã€ã³ã¿ãŒãã§ãŒã¹ã«ååŸããèŠçŽ ã衚瀺ãããŸãã ãã¹ãã³ãŒãã®äœæ çµã¿èŸŒã¿ã¢ã¯ã·ã§ã³ãšååŸããèŠçŽ ãå©çšããŠãã¹ããäœæããŸããExcelã©ã€ã¯ãªUIã§ãããããã¹ã¯ãªããèšèªã§äœæãããã¹ãã±ãŒã¹ãããåããããããã¹ãã³ãŒããäœæã§ããŸããèŠçŽ ã®ååã«ã¯è±æ°å以å€ã«æ¥æ¬èªãå©çšå¯èœã§ãã ãã¹ãã®å®è¡ãšçµæã¬ããŒã ãã€ã³ã¿ãã§ãŒã¹ãã¥ãŒã¯ãŒããå©çšããæãšåæ§ã«æ¥ç¶å
ã®ç«¯æ«æ
å ±ãå
¥åããã ãã§å®è¡ã§ããŸãã ãã¹ãçµæã¬ããŒãã¯html圢åŒã§åºåãããŸãã倱ææã ãã§ã¯ãªããæäœæ¯ã«ã¹ã¯ãªãŒã³ã·ã§ãããèªåçã«æ®åœ±ããããã«èšå®ããããšãã§ããŸãããããã®ã¹ã¯ãªãŒã³ã·ã§ããã¯æäœç®æãèµ€ãäžžã§å²ãŸãã確èªç®æã¯èµ€ãæ ã§å²ãŸããŠããŸãããã¹ãã®å
容ãåããããããçµæã®ç¢ºèªãã¹ã ãŒãºã«è¡ãããšãå¯èœã§ãã ã»ã«ã¡ã©ã¢ããªãtapããååŸã§ã¹ã¯ãªãŒã³ã·ã§ãããæ®åœ±ããå Žåã®ã¬ããŒã ã»æäœã確èªç®æã¯èµ€ãããªã©ã§æç€ºãããŸãã äœ¿çšæ ç§ã¯Appiumãšããã°ã©ãã³ã°èšèªã®Pythonãå©çšããŠãã«ã¹ã¯ã©ããã®èªåãã¹ããäœæããçµéšããããŸãããããšæ¯èŒãããšãTestArchitectãå©çšããèªåãã¹ãã«ã¯å€ãã®ã¡ãªããããããšæããŸãã ãã¹ãã³ãŒããéãäœæã§ãã ãã«ã¹ã¯ã©ããã§å®è£
ãããšãã¯Appium Inspectorã§èŠçŽ ãååŸããŠã³ããã§ã³ãŒãã«åŒµãä»ããäœæ¥ãäœåãç¹°ãè¿ãå¿
èŠããããŸããããTestArchitectã¯ã€ã³ã¿ãŒãã§ãŒã¹ãã¥ãŒã¯ãŒã§ã¹ããã®ãã©ãŒç»é¢ãã¯ãªãã¯ããã ãã§ã€ã³ã¿ãŒãã§ãŒã¹å®çŸ©ã«åºåã§ããŸãããã¹ãã³ãŒãã«ã€ããŠãæ¢ã«ã»ãšãã©ã®ã¢ã¯ã·ã§ã³ãæºåãããŠããããããããåŒã³åºãã ãã§çµãããŸããã¢ã¯ã·ã§ã³ã®äœ¿ãæ¹ã¯F1ããŒãæŒãã ãã§TestArchitectãã該åœã®ã¢ã¯ã·ã§ã³ã解説ããå
¬åŒããã¥ã¡ã³ãã«é·ç§»ã§ããŸããæ¢ãå¿
èŠã¯ãããŸããããã«ã¹ã¯ã©ããã®ã³ãŒãã£ã³ã°ãããããªãéããã¹ãã³ãŒããäœæã§ããŸãã ãã ãã¢ã¯ã·ã§ã³ãèšå€§ã«ãããããæ
£ãããŸã§ã¯äœ¿ãããã¢ã¯ã·ã§ã³ãæ¢ãã®ã«æéãããããŸãã ãã¹ãã³ãŒããèªã¿ããã ç§ã¯ã³ãŒãã®çŸ
åãšã€ã³ãã³ãã«ããåºå¥ã«æ
£ããŠããã®ã§ãTestArchitectã®Excelã¿ãããªèŠãç®ã¯ã¡ãã£ãšâŠãšæã£ãŠããŸãããå®éã«äœ¿ã£ãŠã¿ããšããªãèªã¿ãããå°è±¡ã§ããããã«ã¢ã¯ã·ã§ã³ãã€ã³ã¿ãŒãã§ãŒã¹ã«æ¥æ¬èªåã䜿ããšå
容ãäžç®ã§åãããŸããèªåãã¹ãã®å®è£
æ
åœè
ãã¬ãã¥ã¢ãŒã«ã¯ãšã³ãžãã¢ã§ã¯ãªãã¡ã³ããŒãå«ãŸããå Žåããããããã³ãŒããèªã¿ãããç¹ã¯ã¡ãªããããããšæããŸãã ãã¹ãå®è¡ãç°¡å å®è¡ãããã¹ãã±ãŒã¹ãå®è¡å¯Ÿè±¡ã®ç°å¢ïŒç«¯æ«ãªã©ã®æ¥ç¶å
ïŒãæå®ãããã¹ãå®è¡çšã®ããããã¡ã€ã«ãã¯ã³ã¯ãªãã¯ã§äœæã§ããæ©èœããšãŠã䟿å©ã§ãããã¹ãã¹ã€ãŒãããã¹ãç«¯æ«æ¯ã«äœæããŠãããšå¿
èŠãªãã¹ããããã«å®è¡ããããšãã§ããŸããJenkinsãªã©ã®å€éšããŒã«ã§å®æå®è¡ãããšãã£ãCI/CDã«çµã¿èŸŒãããšãç°¡åã§ãã ããã°ã©ãã³ã°èšèªãå©çšå¯èœ TestArchitectã¯JavaãPythonãšãã£ãã©ã€ãã©ãªãå
å®ããŠããããã°ã©ãã³ã°èšèªã§æ¡åŒµã§ãããããå
¬åŒã®ãµããŒãããªãããŒã«ã飿ºãããããããªãç¹æ®ãªåŠçã§ãèªåãã¹ãã«çµã¿èŸŒãããšãã§ããŸããä»ã®ãã¹ãèªååããŒã«ã®å€ãã¯å¯Ÿå¿ããŠããèšèªãJavaScriptã®ã¿ã§ãã£ãããéå®ãããç¯å²ã§ããå©çšã§ããªããšãã£ãå¶çŽããããŸãããããšãªã£ããã³ãŒããæžããç¹ã¯èªåãã¹ããšã³ãžãã¢ãšããŠå®å¿ã§ããæ©èœã ãšæããŸãã ãããã« TestArchitectã®ã¢ãã€ã«ãã¹ãæ©èœã¯ãAppiumãšããã°ã©ãã³ã°èšèªãå©çšãããã¹ããšæ¯èŒãããšç°¡åã«ãã€éãäœæãã§ããä¿®æ£ã«ãããå·¥æ°ãå°ãªãæžã¿ãŸããæäœã容æã§ããäžæ¹ã§ãèªåãã¹ãããŒã«ã®äžã§ã倿©èœãã€æ¡åŒµæ§ãé«ããšããç¹åŸŽããããŸãã TestArchitectã¯Freeã©ã€ã»ã³ã¹ãæäŸããŠããŸããèªåãã¹ãããŒã«ãæ¢ããŠããæ¹ã¯ãã²ã詊ããã ããã https://www.testarchitect.com/ AGESTã§ã¯TestArchitectã®å°å
¥ãèããŠããæ¹ãå°ãã§ãèå³ãããæ¹ã«åããŠèª¬æäŒã宿œããŠããŸãããæ°è»œã«ãåãåããäžããã The post TestArchitectã¢ãã€ã«ãã¹ãæ©èœã®çŽ¹ä» first appeared on Sqripts .
ããã«ã¡ã¯ãããã¯ãšã³ããšã³ãžãã¢ã®ãŸãã§ãã ãã®èšäºã§ã¯ãProtocol Buffersã®Linterã®äžã€ã§ãã Buf ã䜿ã£ãLintã€ããŠãå®è·µäŸãšãšãã«ã玹ä»ããŸãã Protocol Buffersãšã¯ Protocol Buffersã¯ãGoogleãéçºãããã€ããªããŒã¿ã®ã·ãªã¢ã©ã€ãºåœ¢åŒã§ããããŒã¿èšè¿°åœ¢åŒã®äžçš®ãªã®ã§JSONãXMLãšæ¯èŒãããããšããããŸãããProtocolBufferã¯ãã€ããªåœ¢åŒã§ä¿åããããããJSONãXML圢åŒãªã©ã®ããã¹ãããŒã¹ã®åœ¢åŒãããããŒã¿ãµã€ãºãå°ãããããé«éã«ããŒã¿è»¢éãã§ããŸãã Protocol Buffersã¯ãGoogleãéçºããRPCãã¬ãŒã ã¯ãŒã¯ã§ãã gRPC ã«äœ¿ãããŠããŸããProtocol BuffersãšgRPCã®é¢ä¿ã¯ãJSONãšHTTPéä¿¡ã®é¢ä¿ã«ãã䌌ãŠããŸããHTTPéä¿¡ãããŒã¿èšè¿°åœ¢åŒãšããŠJSONã䜿çšããããã«ãgRPCã¯ProtocolBufferã䜿çšããŠéä¿¡ãè¡ããŸãã Bufãšãã®ä»ã®Linterã®æ¯èŒ æã
ã®ãããžã§ã¯ãã§ã¯ãåãã¯Protocol Bufferã®Linterãšã㊠Google API Linter ãæ¡çšããŠããŸãããProtocol BuffersãGoogle補ãªã®ã§ãLinterãGoogle補ã®ãã®ã䜿ãã°å®å¿ã ãããšèããŠããããã§ãã ããããGoogle API Linterã®ã«ãŒã«ã¯ããããå³ããããããããããžã§ã¯ãã®ã·ã¹ãã æ§æã®èŠçŽãã®ã¿ã€ãã³ã°ã§Linterã®éžå®ãèŠçŽãããšã«ãªããŸãããåéžå®ã®éã«æ±ºããèŠä»¶ã¯ä»¥äžã®3ã€ã§ãã æè¿ãŸã§æŽæ°ãããïŒéçºãæ¢ãŸã£ãŠããªãïŒ å人éçºã§ãªãïŒä»åŸãæŽæ°ãç¶ããããå¯èœæ§ãé«ãïŒ Lintã®ã«ãŒã«ãå³ããããªã æ€èšããLinterã¯ä»¥äžã®éãã§ãã prototool çŽè¿ã®æŽæ°ã2020幎ãšå€ããå
¬åŒã®çºèšãèŠãŠãä»åŸã¢ããããŒããããå¯èœæ§ãäœãã protolint å人éçºã§ããç¹ãäžå®ã Buf prototoolã®åŸç¶ã«ããããæŽæ°é »åºŠã¯é«ããã«ãŒã«ãåé¡ãªãã ãããã®Linterã䜿ã£ãŠè»œãPoCãè¡ããæçµçã«ã¯ãã¹ãŠã®èŠä»¶ãæºãããŠããBufãæ¡çšããŸããã .protoãã¡ã€ã«ã®æºå ãããããå®éã«Bufã䜿ã£ãlintã®äŸãã玹ä»ããŸãã Bufãã€ã³ã¹ããŒã«ããåã«ããŸãã¯Lint察象ã®.protoãã¡ã€ã«ãçšæããŸããããä»åã¯ã以äžã®ãããªç°¡åãª.protoãã¡ã€ã«ïŒbook.protoïŒã䜿ããŸãã æžç±ããŒã¿ãäœæããCreateBookãšãæžç±ããŒã¿ãååŸããGetBookãšãã2ã€ã®ã¡ãœããããããŸãããã®2ã€ã®ã¡ãœããã®Responseã¯å
±éã®ã¡ãã»ãŒãžåïŒBookïŒã䜿çšããŠããŸãã syntax = "proto3"; package book.v1; service BookService { rpc CreateBook(CreateBookRequest) returns (Book); rpc GetBook(GetBookRequest) returns (Book); } message Book { string id = 1; string title = 2; string author = 3; int32 pages = 4; } message CreateBookRequest { string title = 1; string author = 2; int32 pages = 3; } message GetBookRequest { string id = 1; } 以äžã®ãããªãã£ã¬ã¯ããªæ§æã«ããŠãv1ã®äžã«book.protoã眮ããŸãããã sample-project âââ pb-proto âââ book âââ v1 âââ book.proto ããã§æºåå®äºã§ãã Bufã®ã€ã³ã¹ããŒã«ãšã»ããã¢ãã æ¬¡ã«ãBuf CLIãã€ã³ã¹ããŒã«ããŸãã $ brew install bufbuild/buf/buf Homebrew以å€ã®ã€ã³ã¹ããŒã«æ¹æ³ã«ã€ããŠã¯ãå
¬åŒã® ã€ã³ã¹ããŒã«ã¬ã€ã ãåç
§ããŠãã ããã buf CLIã®ã€ã³ã¹ããŒã«ãçµãã£ãããLintã®ããã®ã»ããã¢ãããããŸãããããžã§ã¯ãçŽäžã«ä»¥äžã®ãããªå
容㮠buf.work.yaml ãäœæããŸãããã directories ã«ã¯pb-protoãæå®ããŸãã version: v1 directories: - pb-proto æåŸã«ä»¥äžã®ã³ãã³ããå®è¡ããŸããããã«ããã buf.yaml ãpb-protoãã£ã¬ã¯ããªã«çæãããŸãã cd pb-proto buf mod init æçµçãªãã£ã¬ã¯ããªæ§æã以äžã®ããã«ãªã£ãŠãããæåã§ãã sample-project âââ buf.work.yaml âââ pb-proto âââ buf.yaml âââ book âââ v1 âââ book.proto Bufãã€ãã£ãLint ãã£ããBufã䜿ã£ãŠbook.protoãLintããŠã¿ãŸãããã $ buf lint ./book/v1/book.proto åºåãèŠãŠã¿ããšãããã€ãLintãšã©ãŒãåºãŠããããšãåãããŸãã pb-proto/book/v1/book.proto:5:3:"book.v1.Book" is used as the request or response type for multiple RPCs. pb-proto/book/v1/book.proto:5:46:RPC response type "Book" should be named "CreateBookResponse" or "BookServiceCreateBookResponse". pb-proto/book/v1/book.proto:6:3:"book.v1.Book" is used as the request or response type for multiple RPCs. pb-proto/book/v1/book.proto:6:40:RPC response type "Book" should be named "GetBookResponse" or "BookServiceGetBookResponse". 1ã€ç®ãš3ã€ç®ã¯ãã Book ãšããã¡ãã»âãžåãè€æ°ã®RPCã§äœ¿ãããŠãããããã«çãããšã©ãŒã§ãã Bufã®å
¬åŒã® Configuration and options ããŒãžã«ã¯ã以äžã®ãããªèšè¿°ããããŸãã ææ°ã® Protobuf éçºã«ãããŠæãéèŠãªã«ãŒã«ã® 1 ã€ã¯ããã¹ãŠã® RPC ã«å¯ŸããŠäžæã®ãªã¯ãšã¹ãã¡ãã»ãŒãžãšã¬ã¹ãã³ã¹ã¡ãã»ãŒãžãæã€ããšã§ããè€æ°ã®RPCéã§Protobufã¡ãã»ãŒãžãå
±æãããšããã®Protobufã¡ãã»ãŒãžã®ãã£ãŒã«ãã倿Žããããšãã«è€æ°ã®RPCã圱é¿ãåããããšã«ãªããŸããïŒçè
ç¿»èš³ïŒ Configuration and options èŠã¯ãã¡ãã»ãŒãžåã䜿ããŸãããªããšããããšãèšã£ãŠããŸãããã©ã®ãããªåç§°ã«å€æŽããã¹ããã¯2è¡ç®ãš4è¡ç®ãåèã«ããã°ããã§ãã ä¿®æ£åŸã®book.protoã¯ä»¥äžã®ããã«ãªããŸãã syntax = "proto3"; package book.v1; service BookService { rpc CreateBook(CreateBookRequest) returns (CreateBookResponse); rpc GetBook(GetBookRequest) returns (GetBookResponse); } message CreateBookRequest { string title = 1; string author = 2; int32 pages = 3; } message CreateBookResponse { string id = 1; string title = 2; string author = 3; int32 pages = 4; } message GetBookRequest { string book_id = 1; } message GetBookResponse { string id = 1; string title = 2; string author = 3; int32 pages = 4; } ããäžåºŠLintããããŠã¿ããšããšã©ãŒãåºãªããªã£ãããšãåãããšæããŸãã éçºã®éœåã§ç¡å¹åãããã«ãŒã«ãããå Žåã¯ãbuf.yamlã« except ã®æ®µèœãäœã£ãŠç¡å¹åãããã«ãŒã«åãæå®ãããšããã§ãã 以äžã RPC_RESPONSE_STANDARD_NAME ãš RPC_REQUEST_RESPONSE_UNIQUE ãç¡å¹åããbuf.yamlã®äŸã§ãã version: v1 breaking: use: - FILE lint: use: - DEFAULT except: - RPC_RESPONSE_STANDARD_NAME - RPC_REQUEST_RESPONSE_UNIQUE ãããããšãä¿®æ£åã®book.protoã§ãLintãéããŸããä»ã®ã«ãŒã«ã®åç§°ã«ã€ããŠã¯å
¬åŒããŒãžã® Rules and categories ãåç
§ããŠãã ããã çµããã« Bufã䜿ã£ãŠProtocol BufferãLintããæ¹æ³ãã玹ä»ããŸãããBufã¯Lintæ©èœã䜿ãã ããªãéåžžã«ã·ã³ãã«ã§ãåŠç¿ã³ã¹ããããããªããšæããŸãã ãã®èšäºãã¿ãªããã®ã圹ã«ç«ãŠã°å¹žãã§ãã The post Protocol Buffersã®Lintãã§ãã¯å
¥é: Bufã䜿ã£ãå®è·µã¬ã€ã first appeared on Sqripts .
æ¬é£èŒã§ã¯ããããã¯ãã§ãŒã³ã®åºæ¬çãªä»çµã¿ã解説ããªããããªã³ãã§ãŒã³ããŒã¿ãåæããããã®åºæ¬çãªææ³ã«ã€ããŠãå
š8åã§ç޹ä»ããŸãã 第6åã®ä»åã¯ãåŒãç¶ããªã³ãã§ãŒã³ããŒã¿ã®ãªã³ã©ã€ã³åæãµãŒãã¹ã®DuneïŒ https://dune.com/ ïŒãçšããŠãEthereumã察象ãšããããŒã¿åæã®æŒç¿ãå§ããŠãããŸãã Raw Blockchain Dataã®ç¢ºèª Duneã®æäŸããããŒã¿ããŒãã«ã«ã¯ã第5åã®èšäºã§ãã玹ä»ããéããDecoded projectsãSpellsãªã©ã®åæã®ããã«å å·¥ããã䟿å©ãªããŒã¿ããŒãã«ãæã£ãŠããŸãããããä»åã¯ããããã¯ãã§ãŒã³ã®åºæ¬çãªããŒã¿æ§é ãçè§£ããããã«ãããããã¯ãã§ãŒã³ã®çã®ããŒã¿ã«è¿ãRaw Blockchain Dataãäžå¿ã«åãæ±ã£ãŠã¿ãŸãããã EVM Raw Table Data Duneã§ã¯ãBitcoinãEthereumãã¯ãããPolygonãOptimismãBNB Chainãªã©ãããŸããŸãªãããã¯ãã§ãŒã³ã®ããŒã¿ãæäŸããŠããŸãããã®ãã¡ãBitcoinãSolanaãªã©ã®å°æ°ã®äŸå€ãé€ããã»ãšãã©ã®ãããã¯ãã§ãŒã³ã¯Ethereum Virtual Machine(EVM)ãšåŒã°ããä»®æ³ãã·ã³ãå©çšããŠããŸãã Ethereumã®ã¯ã©ã€ã¢ã³ãããã°ã©ã ã«ã¯ããã€ãã®å®è£
ãååšããŸããããã¹ãŠã®ã¯ã©ã€ã¢ã³ããåãEVMã®ä»æ§ã«æºæ ããããšã§ãå®è£
ã®éããæ°ã«ããããšãªãåãã¹ããŒãã³ã³ãã©ã¯ããå®è¡ããŠåãçµæãåŸãããšãã§ããŸãããŸããEthereum以å€ã®ãããã¯ãã§ãŒã³ã§ãã£ãŠããEVMã®ä»æ§ã«æºæ ããŠãããã§ãŒã³ã§ããã°ãEthereumçšã«å®è£
ãããã¹ããŒãã³ã³ãã©ã¯ããåããããšãã§ããŸãã ã¹ããŒãã³ã³ãã©ã¯ããå®è¡å¯èœãªãããã¯ãã§ãŒã³ã¯æ°å€ãååšããŸããããã®äžã§ãEVMãšäºææ§ã®ãããã§ãŒã³ãããã¡ã¯ãã¹ã¿ã³ããŒããšãªã£ãŠããããããŸãã¯Ethereum(EVM)ã®ããŒã¿æ§é ã«æ
£ããŠãããšæ±çšæ§ãé«ãŸããŸãã BlocksãšTransactions 第3åã®èšäº ã§ãã玹ä»ãããšãããå€ãã®ãããã¯ãã§ãŒã³ã¯ãããã¯ãšãã©ã³ã¶ã¯ã·ã§ã³ãšããããŒã¿æ§é ãæã£ãŠããŸãã Ethereumã«ããããããã¯ãšãã©ã³ã¶ã¯ã·ã§ã³ã®çããŒã¿ã¯ãDuneäžã§ã¯ãããããethereum.blocksããethereum.transactionsããšããããŒãã«åã§åç
§ã§ããŸãã äžèšã®ã³ãŒã1.ãDuneã®ã¯ãšãªãšãã£ã¿ã«èšèŒããRunãã¯ãªãã¯ããŠEthereumã®ãããã¯ããŒã¿ã10ä»¶ååŸããŠã¿ãŸããããFROMå¥ã«æ¬²ããããŒã¿ã®ããŒãã«åãæå®ããSELECTå¥ã«æ¬²ããã«ã©ã åãåæããŸãããã¹ãŠã®ã«ã©ã ãååŸãããå Žåã¯ãïŒããå©çšã§ããŸãããŸãããã¹ãŠã®ããŒã¿ãååŸããã®ã¯éåžžã«æéããããå¯èœæ§ããããããLIMITå¥ã§ååŸããããŒã¿ã®ä»¶æ°ãæå®ããçãã€ããŠãããšå®å¿ã§ãã ã³ãŒã1 . Ethereumã®ãããã¯ããŒã¿ã10ä»¶ååŸããã¯ãšãª SELECT *FROM ethereum.blocksLIMIT 10 ç¡äºã«å®è¡ãçµäºãããšãå³1ã®ãããªã¯ãšãªçµæç»é¢ã衚瀺ãããŸãããªããSQLã«ãããããŒãã«ã¯ã衚èšç®ãœããã«ãããããŒãã«ãšã¯ç°ãªããé åºãæããªãããŒã¿ã®éåã§ãã®ã§ãååŸããã10ä»¶ã®ããŒã¿ã¯å®è¡ããšã«ç°ãªããã®ãååŸãããå¯èœæ§ããããŸããä»åã®å®è¡çµæã§ã¯ã2015幎9æ12æ¥ã®ã¿ã€ã ã¹ã¿ã³ããä»äžãããããããã¯çªå·ã224095ãã®ããŒã¿ã1ä»¶ç®ã«ååŸãããŠããŸãã å³1. ethereum.blocksããŒãã«ã®ãµã³ãã«ããŒã¿ Duneã§ååŸããããŒã¿ãæ£ãããã©ãããEtherscanïŒ https://etherscan.io/ ïŒã®ãµã€ãã§ã確èªããŠã¿ãŸããããEtherscanã®æ€çŽ¢çªã«ãããã¯çªå·ãå
¥åããŠæ€çŽ¢ãããšã該åœãããã¯ã®è©³çްæ
å ±ãèšèŒããããŒãžãé²èЧã§ããŸãã å³2 . ãããã¯çªå·ã224095ãã®è©³çްæ
å ±ïŒ https://etherscan.io/block/224095 ïŒ å³1ãšå³2ãæ¯èŒããŠã¿ãŠãTimestampãDifficultyãªã©ãåºæ¬çãªæ
å ±ãäžèŽããŠããããšã確èªããŠã¿ãŠãã ããã ããŒã¿å å·¥ã®ããã®SQL äžèšã®ãããã¯ããŒã¿ã察象ãšããŠãSQLãçšããç°¡åãªããŒã¿å å·¥ã®æŒç¿ãããŠã¿ãŸãããã SQLã«ãããããŒã¿å å·¥ã®ããã®æŒç®ã¯ã倧ããåããŠæ°å€ãæååãªã©ã®ã¹ã«ã©å€ã察象ãšããæŒç®ãšãããŒã¿ã®éåã§ããããŒãã«ïŒãªã¬ãŒã·ã§ã³ïŒã察象ãšããæŒç®ãååšããŸããäž¡è
ã«ã€ããŠå
·äœäŸã確èªããŠã¿ãŸãããã å€ã察象ãšããæŒç® å³1ã§ç€ºããã¯ãšãªã®åºåçµæã®ãã¡ãã¿ã€ã ã¹ã¿ã³ãã衚ãã2015-09-12 17:04ããšãã£ãããŒã¿ãããããã¯çªå·ã衚ãã224095ããšãã£ãããŒã¿ã«å¯ŸããŠãSQLãçšããŠå¥œããªå å·¥ãæœãããšãã§ããŸããç¹ã«ããããã¯ãã§ãŒã³ã®ããŒã¿ã®å€ãã¯ã¿ã€ã ã¹ã¿ã³ããä»äžãããæç³»åããŒã¿ã§ãã®ã§ãã¿ã€ã ã¹ã¿ã³ããåæãããã圢ã«å å·¥ããæ©äŒãå€ããããŸãã ã³ãŒã2ã«ãã¿ã€ã ã¹ã¿ã³ããåãæ±ãå
žåçãªé¢æ°ã®èšèŒäŸã瀺ããŸããyearãmonthãšãã£ã颿°ã¯ãã¿ã€ã ã¹ã¿ã³ãããç¹å®ã®èŠçŽ ãæœåºãã颿°ã§ããdate_trunc颿°ã¯ãã¿ã€ã ã¹ã¿ã³ããæå®ããæ¡ã§åãæšãŠãå€ãååŸãã颿°ã§ãæ¥æ¬¡ã鱿¬¡ã§ã®ããŒã¿éèšã宿œãããå Žåã«ããçšããããŸããformat_datetime颿°ã¯Javaã®æå»é¢æ°ã§ãããDune SQLã§ã¯ãã®ãããªSQLæšæºã«ã¯ååšããªããã®ã®æçšãªé¢æ°ãå€ã察å¿ãè¡ãããŠããŸãã Dune SQLã§ã©ã®ãããªé¢æ°ãå®è£
ãããŠãããã¯ãå
¬åŒã®ããã¥ã¡ã³ãïŒ https://dune.com/docs/query/DuneSQL-reference/Functions-and-operators/ ïŒãåç
§ããŠãã ããã ã³ãŒã2 . ã¿ã€ã ã¹ã¿ã³ããå å·¥ãã颿°äŸ SELECT time, year(time), month(time), day(time), date_trunc('day', time), date_trunc('week', time), format_datetime(time, 'MMM-dd-yyyy KK:mm:ss a +z'), number FROM ethereum.blocks WHERE number = 224095 LIMIT 10 å³3. ãã³ãŒã2ãã®å®è¡çµæäŸ SQLã«ãããå€ã察象ãšããæŒç®ã®æ³šæç¹ãšããŠã察象ããŒãã«ã«å«ãŸãããã¹ãŠã®ã¬ã³ãŒãã®ã«ã©ã ã«å¯ŸããŠãåãæŒç®ãé©çšãããç¹ã«æ³šæããŠãã ãããäŸãã°ã100ä»¶ã®ããŒã¿ãååšããå Žåã«ãäžè¬çãªæç¶ãåã®ããã°ã©ãã³ã°èšèªã§ã¯ãforæãªã©ã®ã«ãŒãæ§æãçšããŠã1ä»¶ãã€æŒç®ãé©çšããŠããããšãå€ããšæããŸããäžæ¹ãSQLã¯éåæŒç®ãåºæ¬ãšããŠãããããã«ãŒãæ§æãªã©ã¯ååšããã100ä»¶ã®ããŒã¿ãã¹ãŠã«å¿
ãåãæŒç®ãé©çšãããããšã«ãªããŸãã ãŸããå€ã察象ãšããæŒç®ã§ã¯ãå
¥åããããŒãã«ã«å«ãŸããã¬ã³ãŒãæ°ãšãåºåãããã¬ã³ãŒãæ°ã¯å¿
ãäžèŽããããšã«ã泚æããŠãã ããã100ä»¶ã®ã¬ã³ãŒããå«ãããŒãã«ã«å¯ŸããŠå€ã倿ŽããæŒç®ãå®è¡ããå Žåãåºåçµæã®ã¬ã³ãŒãæ°ãå¿
ã100ä»¶ãšãªã£ãŠããŸãã ãããæåŸ
ããŠããåæçµæãã¬ã³ãŒãæ°ã®å¢æžã䌎ããããªãã®ã§ããã°ã次ã®ããŒãã«ã察象ãšããæŒç®ãå¿
èŠã§ãã ããŒãã«ã察象ãšããæŒç® éåæŒç®ãšããŠã®SQLã䜿ãããªãããã«ã¯ãããŒãã«ã«å¯ŸããŠæŒç®ããããªã£ãŠå¥ã®ããŒãã«ãäœæããããšããã€ã¡ãŒãžãæã€ããšãéèŠã§ãã éåæŒç®ãšããŠã®SQLãäœéšããåæºåãšããŠãããã»ã©ç€ºããdate_trunc颿°ãçšããŠãã¿ã€ã ã¹ã¿ã³ããæ¥ä»ã§åãèœãšãããäžæããŒã¿ãäœæããŠã¿ãŸããã³ãŒã3ã§ã¯ãdate_truncã®èšç®çµæã«ã©ã ã«å¯ŸããŠãASå¥ãçšããŠãdayããšããååãä»ããŠããŸããã³ãŒã2ã®ãããªæžãæ¹ã§ã¯ãåºåçµæã®ã«ã©ã ãã_col1ãã_col2ããšãã£ãããã©ã«ãã®é£çªåãšãªã£ãŠããŸãããããããã«åãããããååãã€ããããšã§ãåæã®èŠéããã¯ãšãªã®åå©çšæ§ãåäžããŸãã ãŸããååŸããã¬ã³ãŒãã®æ¡ä»¶ãWHEREå¥ã§æå®ããã¬ã³ãŒãã®çµã蟌ã¿ããããªã£ãŠããŸããWHEREå¥ã®æ¬¡ã«æå®ããåŒãTRUEãšãªãã¬ã³ãŒãã ããåºåçµæã«è¡šç€ºãããŸãããtimestamp ‘2023-01-01 00:00:00’ <= timeããšããæ¡ä»¶åŒã¯ã’2023-01-01 00:00:00âãšããæååãtimestampåã«å€æããtimeã«ã©ã ã®å€ãšæ¯èŒããŠããåŒã§ãã ã³ãŒã3 . date_trunc颿°ãçšããååŠç SELECT time, date_trunc('day', time) AS day, number, size FROM ethereum.blocks WHERE timestamp '2023-01-01 00:00:00' <= time å³4 . ãã³ãŒã3ãã®å®è¡çµæäŸ å³4ã«ç€ºãããšãããã¿ã€ã ã¹ã¿ã³ãããæå»æ
å ±ãåãèœãšãããæ¥ä»æ
å ±ã瀺ãdayã«ã©ã ãæã£ããµã³ãã«ã¬ã³ãŒããååŸããããšãã§ããŸããã ãã®ãµã³ãã«ã¬ã³ãŒãã察象ãšããŠãæ¥ä»ããšã«ã©ããããã®ãããã¯ãçæãããŠããããéèšããã¯ãšãªãèšè¿°ããŠã¿ãŸãããã ãŸããããŒãã«ã«å¯ŸããŠæŒç®ãé©çšããããšãã€ã¡ãŒãžããããã«ãã³ãŒã4ã®ãããªæžãæãããããªã£ãŠã¿ãŠãã ãããã³ãŒã3ã«éããããã¹ãŠã®SELECTæã®åºåçµæã¯ããŒãã«ïŒãªã¬ãŒã·ã§ã³ïŒã®åœ¢åŒãããŠããã®ã§ããã®åºåçµæãFROMå¥ã«æå®ããŠãããã«å¥ã®SELECTæãèšè¿°ããããšãå¯èœã§ããã³ãŒã4ã®å®è¡çµæã¯ãå³4ã§ç€ºããã³ãŒã3ã®å®è¡çµæãšåãã§ãã ã³ãŒã4 . ãã³ãŒã3ãã®SELECTæãFROMå¥ã«æå®ããã¯ãšãª SELECT * FROM ( SELECT time, date_trunc('day', time) AS day, number, size FROM ethereum.blocks WHERE timestamp '2023-01-01 00:00:00' <= time ) éçŽé¢æ° ããŒãã«ã察象ãšããæŒç®ãšããŠä»£è¡šçãªãã®ã«ãéçŽé¢æ°ãšåŒã°ãã颿°çŸ€ããããŸããã³ãŒã5ã¯ãã³ãŒã3ã®åºåçµæã®ããŒãã«ã«å¯ŸããŠãéçŽé¢æ°ã§ããcount, max, min颿°ãé©çšããã¯ãšãªã§ãã ã³ãŒã5 . ãã³ãŒã3ãã®åºåçµæã«éçŽé¢æ°ãé©çšããã¯ãšãª SELECT count(1), max(day), min(day) FROM ( SELECT time, date_trunc('day', time) AS day, number, size FROM ethereum.blocks WHERE timestamp '2023-01-01 00:00:00' <= time ) å³5 . ãã³ãŒã5ãã®å®è¡çµæäŸ ã³ãŒã5ã®èšç®çµæã¯ãFROMå¥ã§æå®ããããŒãã«ã«å«ãŸããã¬ã³ãŒãæ°ãdayã«ã©ã ã®æå€§å€ãšæå°å€ã瀺ããŠããŸããããã§ãåºåçµæã®ããŒãã«ã®ã¬ã³ãŒãæ°ã1ä»¶ãšãªã£ãŠããããšã«æ³šæããŠãã ãããããŒãã«ã察象ãšããæŒç®ã¯ãå€ã察象ãšããæŒç®ãšç°ãªããå
¥åããŒãã«ã®ã¬ã³ãŒãæ°ãšåºåããŒãã«ã®ã¬ã³ãŒãæ°ã¯å¿
ãããäžèŽããŸããã GROUP BYå¥ éçŽé¢æ°ãGROUP BYå¥ãšçµã¿åãããŠäœ¿ãããšã§ãéçŽããããªãç²åºŠãæå®ããããšãã§ããŸããGROUP BY dayãšæå®ããããšã§ãdayãåãå€ãæã€ã¬ã³ãŒã矀ãåäœãšããŠéçŽé¢æ°ãé©çšããdayãããŒãšããæ°ããªããŒãã«ãçæãããŠããŸãããªããèšç®çµæã®è¡šç€ºé ã¯ããã©ã«ãã§ã¯äžå®ã®ãããORDER BYå¥ãçšããããšã§ãœãŒãããŠè¡šç€ºããããšãã§ããŸãã ã³ãŒã6 . æ¥ä»ããšã«ãããã¯æ°ãã«ãŠã³ãããã¯ãšãª SELECT day, count(1) FROM ( SELECT time, date_trunc('day', time) AS day, number, size FROM ethereum.blocks WHERE timestamp '2023-01-01 00:00:00' <= time ) GROUP BY day ORDER BY day å³6 . ãã³ãŒã6ãã®å®è¡çµæäŸ WITHå¥ïŒå
±éããŒãã«åŒïŒ ä»»æã®SELECTæã®çµæã¯FROMå¥ã«æå®ããŠæ°ããªSELECTæãžã®å
¥åãšããŠæå®ã§ããŸãããå€ãã®SELECTæããã¹ãããã¯ãšãªã¯å¯èªæ§ãäžããå¯èœæ§ããããŸãã WITHå¥ãçšããå
±éããŒãã«åŒãšããæ§æãçšãããšãSELECTæã®çµæã«äžæçãªããŒãã«åãä»äžããããšãã§ããäžé£ã®ã¯ãšãªã®ãªãã§åå©çšãã§ããããã«ãªããŸãã ã³ãŒã7ã¯ãã³ãŒã3ã®SELECTæã®çµæã«tmpãšããååãä»ããWITHå¥ãçšããŠå
±éããŒãã«åŒåããã¯ãšãªã§ããåºåçµæã¯ã³ãŒã6ãšåæ§ã«ãªããŸãã ã³ãŒã7 . WITHå¥ãçšãããã³ãŒã6ãã®æžãæã WITH tmp AS ( SELECT time, date_trunc('day', time) AS day, number, size FROM ethereum.blocks WHERE timestamp '2023-01-01 00:00:00' <= time ) SELECT day, count(1) FROM tmp GROUP BY day ORDER BY day JOINå¥ ããŒãã«ã察象ãšããæŒç®ã«ã¯ãã¬ã³ãŒãããã£ã«ã¿ãããéçŽãããããWHEREå¥ãéçŽé¢æ°ãšã¯éã«ãè€æ°ã®ããŒãã«ãçµã¿åãããŠã¬ã³ãŒãæ°ãã«ã©ã ãå¢å ãããæŒç®ãååšããŸãã äžèšã®blocksããŒãã«ã«å«ãŸããæ
å ±ã ãã§ã¯ããããã¯ã«å«ãŸãããã©ã³ã¶ã¯ã·ã§ã³æ°ãªã©ãææ¡ããããšãã§ããŸããã§ããããããã¯ããšã®ãã©ã³ã¶ã¯ã·ã§ã³æ°ã®éèšã¯ãtransactionsããŒãã«ãçšããŠèšç®ã§ããŸããtransactionsããŒãã«ã®èšç®çµæãšãblocksããŒãã«ã®ã«ã©ã æ
å ±ãçµã¿åãããŠçµæã«è¡šç€ºããããå Žåã¯ãè€æ°ã®ããŒãã«ãæå®ããããŒã§çµåããJOINå¥ãå©çšã§ããŸãã ã³ãŒã8ã¯ãWITHå¥ã«ããå
±éããŒãã«åŒã§ããã©ã³ã¶ã¯ã·ã§ã³æ°ãéèšããtx_countããŒãã«ãäœæããblocksããŒãã«ã®numberã«ã©ã ãšãtx_countããŒãã«ã®block_numberã«ã©ã ãšãããŒã«ããŠçµåããã¯ãšãªã§ãã ã³ãŒã8 . ãããã¯ã«å«ãŸãããã©ã³ã¶ã¯ã·ã§ã³æ°ã®éèšã¯ãšãª WITH tx_count AS ( SELECT block_number, COUNT(1) AS tx_count FROM ethereum.transactions GROUP BY block_number ) SELECT number, time, miner, difficulty, tx_count FROM ethereum.blocks AS b JOIN tx_count AS t ON b.number = t.block_number ORDER BY b.number DESC LIMIT 10 å³7. ãã³ãŒã8ãã®å®è¡çµæäŸ 次åäºå ä»åã®èšäºã§ã¯ããããã¯ãã§ãŒã³ã®åºæ¬çãªããŒã¿æ§é ã§ãããããã¯ããã©ã³ã¶ã¯ã·ã§ã³ã®ããŒãã«ããµã³ãã«ãšããŠãããŒã¿åæã§åœ¹ç«ã€SQLã®åºæ¬çãªæ§æããSQLç¹æã®æèæ¹æ³ã«ã€ããŠç޹ä»ããŸãããæ¬¡åèšäºã§ã¯ãEVMã®ããŒã¿æ§é ã®æ·±æãããçºå±çãªSQLã®æ§æã«ã€ããŠè§£èª¬ããªããããªã³ãã§ãŒã³ããŒã¿åæã®æŒç¿ãé²ããäºå®ã§ãã é£èŒäžèЧ ã第1åããããã¯ãã§ãŒã³ãšã¯ ã第2åããããã³ã€ã³ã®ä»çµã¿ ã第3åãã€ãŒãµãªã¢ã ã®ä»çµã¿ ã第4åãããã°ããŒã¿åæã®ããã®SQLåºç€ ã第5åãEthereumããŒã¿åææŒç¿ 1 The post ã第6åãEthereumããŒã¿åææŒç¿2 first appeared on Sqripts .
ããã«ã¡ã¯ã ãšã³ãžãã¢ã® nobushi ã§ãã RDBãæ±ãWebã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããŠãããšRDBã®ã¬ããªã±ãŒã·ã§ã³ç°å¢ãå¿
èŠãšããããšããããšæããŸãã ã¢ããªã±ãŒã·ã§ã³åŽã§å¯Ÿå¿ãå¿
èŠãªã®ã§ã§ããã°éçºãè¡ãããŒã«ã«ç°å¢ã®æ®µéã§å°å
¥ããããšããã§ãã ããã§ä»åã¯æè»œã«ããŒã«ã«ã®docker-composeã§RDBã®ã¬ããªã±ãŒã·ã§ã³ç°å¢ãæ§ç¯ããŠã¿ãããšæããŸãã 䜿çšããRDB㯠PostgreSQL ã§ãã ã€ãã§ã«æ€èšŒçšã« pgAdmin ãå°å
¥ããŠã¿ãŸãã å°å
¥ docker-compose ã䜿ããç°å¢ã§ãä»»æã®ãã£ã¬ã¯ããªã«ä»¥äžã®ãã¡ã€ã«ãé
眮ã㊠/ db_primary/ init.sh pg_hba.conf db_read_replica/ entrypoint.sh docker-compose.yml é
眮ãããã£ã¬ã¯ããªã§èµ·åããŠãã ããã docker compose up -d docker-compose.yml services: db_primary: image: postgres:14.8 command: -c "hba_file=/etc/postgresql/pg_hba.conf" environment: - POSTGRES_PASSWORD=hoge - POSTGRES_DB=main volumes: - db_primary_data:/var/lib/postgresql/data - ./db_primary/pg_hba.conf:/etc/postgresql/pg_hba.conf - ./db_primary/init.sh:/docker-entrypoint-initdb.d/init.sh healthcheck: test: ["CMD", "pg_isready", "-U", "postgres"] db_read_replica: image: postgres:14.8 entrypoint: /etc/postgresql/entrypoint.sh volumes: - db_read_replica_data:/var/lib/postgresql/data - ./db_read_replica/entrypoint.sh:/etc/postgresql/entrypoint.sh healthcheck: test: ["CMD", "pg_isready", "-U", "postgres"] depends_on: db_primary: condition: service_healthy pgadmin: image: dpage/pgadmin4:7.3 volumes: - pgadmin_data:/var/lib/pgadmin environment: - PGADMIN_DEFAULT_EMAIL=johndoe@example.com - PGADMIN_DEFAULT_PASSWORD=johndoe ports: - 50080:80 volumes: db_primary_data: driver: local db_read_replica_data: driver: local pgadmin_data: driver: local æ§æã¯PostgreSQLã®ã€ã³ã¹ã¿ã³ã¹ããã©ã€ããªãã¬ããªã«ã§ããããäžã€ã pgAdminãäžã€ã§ãã ãŸããããã®ããŒã¿ä¿æçšã®ããªã¥ãŒã ãå®çŸ©ããŠããŸãã db_primary/init.sh #!/bin/sh -xeu psql -v ON_ERROR_STOP=1 <<- _EOT_ CREATE USER replicator WITH REPLICATION; SELECT pg_create_physical_replication_slot('my_replication_slot'); _EOT_ db_primary/pg_hba.conf local all all trust host all all 127.0.0.1/32 trust host all all ::1/128 trust local replication all trust host replication all 127.0.0.1/32 trust host replication all ::1/128 trust host replication replicator 0.0.0.0/0 trust host all all all scram-sha-256 db_read_replica/entrypoint.sh #!/bin/sh -xeu pg_basebackup \\ -h db_primary \\ -D ${PGDATA} \\ -S my_replication_slot \\ -X stream \\ -U replicator \\ -R || true /usr/local/bin/docker-entrypoint.sh postgres ãã©ã€ããªDB ãã©ã€ããªDBã§å¿
èŠãªããšã¯ä»¥äžã®3ç¹ã§ãã ã¬ããªã±ãŒã·ã§ã³ã¹ãããã®äœæ ã¬ããªã±ãŒã·ã§ã³ãŠãŒã¶ãŒã®äœæ ã¬ããªã±ãŒã·ã§ã³ãŠãŒã¶ãŒã®èªèšŒèšå® ã¬ããªã±ãŒã·ã§ã³ã¹ãããã®äœæ ã¬ããªã±ãŒã·ã§ã³æ¥ç¶ãè¡ãããã®ã¬ããªã±ãŒã·ã§ã³ã¹ããããäœæããŸãã init.sh ã§è¡ã£ãŠããŸãã SELECT pg_create_physical_replication_slot('my_replication_slot'); ã¬ããªã±ãŒã·ã§ã³ãŠãŒã¶ãŒã®äœæ ã¬ããªã«åŽããã®æ¥ç¶çšã«ãŠãŒã¶ãŒãäœæããŸãã init.sh ã§è¡ã£ãŠããŸãã CREATE USER replicator WITH REPLICATION; ãã®ãµã³ãã«ã§ã¯ã»ãã¥ãªãã£ã¯æ°ã«ããªãã®ã§ãã¹ã¯ãŒãã¯èšå®ããŸããã ã¬ããªã±ãŒã·ã§ã³ãŠãŒã¶ãŒã®èªèšŒèšå® pg_hba.conf ã¯èªèšŒèšå®ãã¡ã€ã«ã§ãã ããã©ã«ãã® pg_hba.conf 㯠/var/lib/postgresql/data/pg_hba.conf ã«ãããŸãã®ã§ããããããŒã¹ã«ããŠä»¥äžã®èšå®ã远å ããŠããŸãã host replication replicator 0.0.0.0/0 trust ãã®èšå®ã«ãã replicator ãŠãŒã¶ãŒã®ã¬ããªã±ãŒã·ã§ã³æ¥ç¶ã¯æ¥ç¶å
ã«é¢ä¿ãªããã¹ã¯ãŒãäžèŠãšãªããŸãã æ¬ãµã³ãã«ã¯ããŒã«ã«ã®ç°å¢çšã§ãã®ã§ç°¡æçã«èšå®ããŸãã db_primaryã®èšå® 䜿çšãã pg_hba.conf ã倿Žããããã«ã³ãã³ããèšå®ããŠããŸãã command: -c "hba_file=/etc/postgresql/pg_hba.conf" ãŸãããã¡ã€ã«ãå·®ãæ¿ããããã«volumeãèšå®ããŠããŸãã - ./db_primary/pg_hba.conf:/etc/postgresql/pg_hba.conf - ./db_primary/init.sh:/docker-entrypoint-initdb.d/init.sh ã¬ããªã«DB ã¬ããªã«DBã§ã¯ pg_basebackup ã䜿çšããŠã¬ããªã±ãŒã·ã§ã³ãäœæããŸãã pg_basebackup ã¯PostgreSQLã®èµ·ååã«å®è¡ãã PostgreSQLã®èµ·åæã«ã¯ã¬ããªã±ãŒã·ã§ã³DBãæ¢ã«çæãããŠããããã«å¶åŸ¡ããå¿
èŠããããŸãã ãã®ããã«ENTRYPOINTãå·®ãæ¿ããŠã åŸæ¥ã®ENTRYPOINTã®åã« pg_basebackup ãå®è¡ããããã«ããã®ã entrypoint.sh ã§ãã pg_basebackup ã®åŒæ°ã¯ãã©ã€ããªDBã®èšå®å
容ã«åããããã®ã§ãã ãŸãã2åç®ä»¥éã®èµ·åæã«ã¯ãã§ã«ããŒã¿ããããã pg_basebackup ããšã©ãŒçµäºããŸãã ãã®å Žåã¯ãšã©ãŒãç¡èŠããããã« || true ãã€ããŠããŸãã pg_basebackup \\ -h db_primary \\ -D ${PGDATA} \\ -S my_replication_slot \\ -X stream \\ -U replicator \\ -R || true ãŸãããã©ã€ããªDBåŽãèµ·åããç¶æ
ã§ãªããšèµ·åã«å€±æããããã composeã§ãã©ã€ããªDBã®ã¹ããŒã¿ã¹ãHealthyã«ãªã£ãŠããèµ·åããããã«å¶åŸ¡ããŠããŸã depends_on: db_primary: condition: service_healthy pgAdminã§æ€èšŒ ã§ã¯pgAdminã§åäœç¢ºèªããŠã¿ãŸãã pgAdminãžã®ã¢ã¯ã»ã¹ã¯ docker-compose ã®éãã§ããã° http://127.0.0.1:50080 ã§ã¢ã¯ã»ã¹å¯èœãªã¯ãã§ãã login ãã°ã€ã³ç»é¢ã衚瀺ãããã®ã§ docker-compose ã®ç°å¢å€æ°ã§èšå®ãã以äžã®ã¡ãŒã«ã¢ãã¬ã¹ããã¹ã¯ãŒãã§ãã°ã€ã³ããŸãã johndoe@example.com / johndoe æ¥ç¶ ãã°ã€ã³ãããåãµãŒããŒãžã®æ¥ç¶ã远å ããŸãã General / Name Connection / Host name Connection / Username Connection / Password db_primary db_primary postgres hoge db_read_replica db_read_replica postgres hoge æ€èšŒ ãã®æ®µéã§ã¬ããªã«DBåŽã«ã main ããŒã¿ããŒã¹ãããç ãã©ã€ããªDBãšåæããŠããããšãåãããŸãã ã§ã¯ãã©ã€ããªDBã«ããŒãã«ã远å ããŠã¿ãŸãã ã¬ããªã«DBåŽã«ãåæãããŸããã ãŸãã¬ããªã«DBåŽã«ããŒãã«ã远å ããããšãããšãšã©ãŒãçºçããŸãã ERROR: cannot execute CREATE TABLE in a read-only transaction ææ ããŒã«ã«ã§RDBã®ã¬ããªã±ãŒã·ã§ã³ç°å¢ãã§ããã°ã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãçããããããªããšæããŸãã composeäžçºã§æ§ç¯å¯èœãªã®ã§ãã²ã詊ããã ããã The post PostgreSQLã®ã¬ããªã±ãŒã·ã§ã³ç°å¢ãDockerã§æè»œã«ç«ã¡äžããŠã¿ã first appeared on Sqripts .
2023幎9æ26æ¥ã«åžåœããã«ã§éå¬ããããStuart Reidåå£«æ¥æ¥ã€ãã³ããç¹å¥ã»ãããŒïŒç¥èãŒãããåŠã¶AIãã¹ããã«åå ããŠããŸããã å®ç§ã§ã¯ãªãAIã”ã©ããã¹ãããã âAIãã©ã䜿ããïŒâã«æ³šç®ãéãŸã£ãŠããŸãããå®ç§ã§ã¯ãªãAIãâã©ããã¹ããããïŒâã«ã€ããŠã¯ã»ãšãã©è°è«ããããŠããŸããã AIãããã¯ãã®ãã¹ãã«ã€ããŠãAIãã¹ãã®ç¬¬äžäººè
ã§ããStuart Reidå士ãšè¥¿åº·æŽå
çããæãããŠç¹å¥ã»ãããŒãéå¬ããŸãã ã»ãããŒæŠèŠ ä»ãã1幎ã»ã©åã2022幎ã®ç§ãŸã§ã¯ãçæAIãªã©ã§è©±é¡ã«ãªããã®ã¯ãã£ãŠããèªç¥åºŠãããã»ã©é«ããªããçŸåšã»ã©æ®åã¯ããŠããŸããã§ããã ãšããã2022幎11æã OpenAI ã ChatGPT ãçºè¡šãããšããŸãããéã«æ³šç®ãéããITæ¥çã ãã§ãªããããããäžéäžè¬ãæè²æ¥çãåäŸãã¡ã«ãŸã§èªç¥ãããããã«ãªããŸããã AIã¯ä»ãŸãã«ãæ¥éãªæ¡å€§æãè¿ããŠãããšãããŸãã ãã®AIãšãããã®ãããããïŒããšæåã®å£°ãæããããªãããšãå€ãã®ã§ãããåé¢ããå®ç§ã§ãªãããšæããããšãå€ãã®ããŸãäºå®ã§ãã ChatGPTã䜿ã£ãããšã®ããæ¹ãªãçµéšããããããããŸããããããã£ãšãééã£ãçããããçå®ã®ããã«ãäŒããããšããããŸãã ãããã” AIãå®ç§ã§ã¯ãªã “ãšããã§ãã å®ç§ã§ã¯ãªãAIã§ããããã£ããã®äŸ¿å©ãªã¢ããªã®ã§å©çšããªãæã¯ãããŸãããããããå©çšããŠã¿ããšããã§ãã£ã±ãå®ç§ã§ãªãã®ã§ãAIã®å質ãã課é¡ã«ãªãã ã©ã®ããã«å©çšããŠããã®ããã¯ãããŠå©çšããŠãããã®ãâŠã ãããªããšã«é ãæ©ãŸããå質çéã®æ¹ã
ã«ãã¬ãŒã³ããããã®ããæ¬æ¥ã®ç¹å¥ã»ãããŒãç¥èãŒãããåŠã¶AIãã¹ããã§ãã ãŸãã«ãAIã®å質ãã«ã¹ããããåœãŠããšãã¹ããŒã3åã®è¬æŒãèãããšãã§ããŸããã Building Trust in AI through Risk: An Emerging Test SpecialismïœStuart Reidåå£«è¬æŒ ãŸãã¯Stuart Reidå士ãç»å£ãããŸããã ã¿ã€ãã«ãçŽèš³ãããšã ãªã¹ã¯ãéããŠAIã®ä¿¡é Œãç¯ãïŒ æ°ããªãã¹ãå°éåé ãšãªããŸãã AIãã¯ãããžãŒã®95ïŒ
ã¯æ©æ¢°åŠç¿ã·ã¹ãã ïŒMachine Lerning SystemïŒãšã®ããšã§ãMLSãäžå¿ã«è¬æŒãé²ã¿ãŸãã åé ããäžæ°ã«ã²ãã€ããããå
容ã§ããã ïŒèŠçŽïŒ 2022幎ã«ã¯92ïŒ
ã®äŒæ¥ãAIã«æè³ãããAIãã倧ããªå©çãåŸãããããã«ãªã£ãŠããŠããŸãã åžå Žã«å€§ããªã€ã³ãã¯ããäžããAIã®æä»£ãå°æ¥ããããšãåããŠããŸãã ããããAIã«ã¯ãä¿¡é Œã§ããªãããšããåé¡ãäŸç¶ãšããŠãããŸãã äžçã§çŽåæ°ã®äººã¯ ãAIã®å©çã¯ãªã¹ã¯ãäžåãã ãšçããŠããŸãããAIãã ä¿¡é Œããªã ãã ããŒã¿ãAIãšå
±æããããªã ããšèãã人ã38ïŒ
ãããŸããïŒæ¥æ¬ãã€ã®ãªã¹ã¯ãä¿¡é Œããªããã®å²åãé«ãïŒ äžæ¹ã§ã€ã®ãªã¹ã®ã»ãŒãã¹ãŠã®äººãSNSã䜿çšããŠããŸãã ãããé©ãã¹ãããšã«ãå®ã«45ïŒ
ã®äººã¯SNSãAIã䜿çšããŠããããšãç¥ããªãã§äœ¿çšããŠããŸãã AIã®ã¡ãªããã享åããŠããããšãç¥ããã«ãä¿¡é ŒããªãããšçããŠãããšããããšã§ãã ä¿¡é Œããªããã°AIã¯çºå±ããŠããããšãã§ããŸããã ã§ã¯ãä¿¡é ŒãåŸãããã«ã¯ã©ãããã°ããã®ãã ãã¹ããããããšã§ãã ãã¹ãæ¥çã«ã¯å€§ããªãã£ã³ã¹ã蚪ããŠããŸãã ããããMLSã®ãªã¹ã¯ãšéèŠæ§ã«é¢ããã話ã«ãªãã®ã§ãããè¬æŒã«å
é§ããŠç¹å¥å¯çš¿ãããŠãã ãã¡ãã®èšäº ã«ã詳ãã解説ãããŠããŸãã®ã§ããã²ãåç
§ãã ããã ãæ¥æ¬èªãAIã®ãªã¹ã¯ããŒã¹ãã¹ã/Risk-Based Testing for AI äžã§ãããå
¥åããŒã¿ã®ãªã¹ã¯ãã§ã¯ã ãineffective data governanceïŒé广çãªããŒã¿ã¬ããã³ã¹ïŒãã«ã€ããŠãã39ïŒ
ãããŒã¿ãã©ã€ãã·ãŒã¯çæAIã®ãªã¹ã¯ã§ãããšèããŠããã«ãé¢ãããããã®ãªã¹ã¯ã軜æžããããšããŠããã®ã¯20%ã®ã¿ã çŽååã¯ãã¹ããããŠããªãããã¹ããããã«å
¬éããŠå©çãåŸãããšãéžæããŠããå¯èœæ§ãããã ãéçºãªã¹ã¯ãã§ã¯ã ãlack of explainability (e.g. selected algorithm is difficult to explain) ïŒèª¬æäžè¶³ïŒäŸïŒéžæããã¢ã«ãŽãªãºã ã®èª¬æãé£ããïŒïŒãã«ã€ããŠãã39ïŒ
ããçæAIã«ã¯èª¬æã®æ¬ åŠãšãããªã¹ã¯ããããšèããŠããã«ãé¢ãããããã®ãªã¹ã¯ã軜æžããããšããŠããã®ã¯ããã18ïŒ
ã ãéçºãã¬ãŒã ã¯ãŒã¯ã®ã»ãã¥ãªãã£ãã¹ãã«ã€ããŠã53ïŒ
ã¯ãªã¹ã¯ããããšèããŠããã®ã«ã軜æžãå³ã£ãŠããã®ã¯ããã38ïŒ
ã ãªã©ãMLSã®ãã¹ã宿œå²åã®äœããå質ã®åé¡ç¹ã«ã€ããŠæ°å€ãçšããŠå€§å€ãããããã解説ããŠããã ãããããããŠå顿èãæã€ããšãã§ããŸããã AIïŒMLSïŒç¬èªã®ãã¹ãã«ã€ããŠãReidå士ã®å¯çš¿æã«è©³ãã解説ãããŠãããŸãã ãæ¥æ¬èªãAIã®ãªã¹ã¯ããŒã¹ãã¹ã/Risk-Based Testing for AI (æ¥æ¬èªç¿»èš³ç) ã³ãŒããŒãã¬ã€ã¯ ãªãã©ã€ã³éå¬ã®ã»ãããŒãªãã§ã¯ã®ã³ãŒããŒãã¬ã€ã¯ã§ã¯ãåžåœããã«ã®ãµã³ãã€ãããšã³ãŒããŒã§äžæ¯ã åå è
å士ã®ååºäº€æãç»å£è
ãšåå è
ã®éè«é¢šæ¯ãèŠãããã®ãããªãã©ã€ã³éå¬ãªãã§ã¯ã§ãã ãªã³ã©ã€ã³ã«æ
£ããŠããŸã£ãŠãããã®ããã§ããããã¯ããã®ãããªé¢šæ¯ã¯ããã§ããã äŒå ŽãçºããŠãããšããããããªéè«ãç¬ã声ãèãããŠããŠãæž©ãã¿ãæããŸããã AIã®AIã«ããAIã®ããã®ãã¹ãïœè¥¿åº·æŽåå£«è¬æŒ ç¶ããŠã¯è¥¿åº·æŽå士ã®è¬æŒãAIã®AIã«ããAIã®ããã®ãã¹ããã§ãã æã
äŒå Žãç¬ãã«å
ã¿ãªãããæ§ã
ãªäºäŸãšãšãã«AIãã¹ãã®å
·äœäŸã解説ããŠãã ãããŸããã ã·ããªã¢ã³ãã¹ããŒãšçŒãèŠåããAIãäœæããã ã©ã®ããã«ã·ããªã¢ã³ãã¹ããŒãšçŒãèŠåããŠããããšãããšãé¡ã錻ãè³ãèŠãŠããããã§ã¯ãªããããã¯ã°ã©ãŠã³ãã«éªããããã©ããã ãã§å€æããŠããã ãã®ãããªAIãä¿¡é Œã§ãããïŒãšããã話ã¯å€§å€è峿·±ããã®ã§ããã ãŸããAIã®ãã¹ãã«ãããŠã¯ã ã»ãããŸã§ã®ãã¹ãæè¡ã䜿ããªã ã»èªååãå¿
é ã»æ§èœãäžå
·åã®å æé¢ä¿ã®èª¬æãçè§£ã¯æ¥µããŠé£ãããããXAIïŒExplainable AIïŒïŒAIã®äžèº«ã説æã§ããæ°ã«ãªãæè¡ïŒã倧äºã«ãªã ãšããã話ãããããããããŠAIããã¹ãããããšã®é£ãããæããŸããã ã¡ã¿ã¢ã«ãã£ãã¯ãã¹ã AIãã¹ãã®ä»£è¡šçãªäžã€ããã¡ã¿ã¢ã«ãã£ãã¯ãã¹ããã§ãããšãã詳ãã解説ãã ãããŸããã ã»ã¡ã¿ã¢ã«ãã£ãã¯ãã¹ããšã¯AIã®ééããæ¢ãããšãäž» ã»å€å®ãã¹ãèµ·ããããããšã§ãã©ãã§å€å¥ããŠããããããã ã»ãã¹ãã±ãŒã¹èªäœãAIã§çæãããšããç ç©¶ãçãã«ãããªãããŠãã âãæ³³ãã§ããã³ã¢ã©ã®ç»åãå
¥åãããšã¢ã«ã¢ãããšå€å¥ããããšãããã¹ãã±ãŒã¹ãçæããããªã© 西å士ããã£ããã£ãŠããŸãããããã®ãããã®ãã¹ãã¯çºèŠãå€ããé¢çœãããšã®ããšã ã¹ã©ã€ããèŠãªããè¬æŒãèããŠããã ãã§ãã倧å€è峿·±ãé¢çœãã£ãã§ãã å€§èŠæš¡èšèªã¢ãã«ïŒLLMïŒ ç¶ããŠå€§èŠæš¡èšèªã¢ãã«ïŒLLMïŒLarge Language ModelsïŒChatGPTãªã©ïŒã®ãã°ãèŠã€ããã話ããããŸããã LLMã¯äººéã®ããã«äŒè©±ããŸãããäžåç¥æ§ãæã£ãŠããªãã ãæ¬¡ã®åèªäºæž¬ãã·ãŒã³ãã«ãããªãããã åèªã厩ãã²ãŒã ããããããšééããã 西å士ã®ã話ã«ãã£ãäŸãããã£ãã垰瀟åŸã«ChatGPTïŒGPT-3.5ïŒã§è©ŠããŠã¿ãŸããã ã1.ã4æ¡Ã4æ¡ã®æãç®ããããããšãŸãééãã äžæ£è§£ ã æ£è§£ã¯ã1958Ã5089=9,964,262ãã§ãã ç¶ããŠåèªãã¹ãã 2.ãSã§å§ãŸãSã§çµããåèªãæããŠ äžæ£è§£ ããç·ãã£ãŠãŸãããã5çªãééããŠããŸããã ããäžã€è©ŠããŠã¿ãŸãã 3.ãPã§å§ãŸãPã§çµããåèªãæããŠ äžæ£è§£ ãããæããã£ãã§ããã ééããŠããã«ãããããããåçã®åŸã«æ³šæäºé
ãŸã§è¿°ã¹ãŠãããChat-GPTã«æè¬ããŠå®éšãçµãããããšæããŸãã ããŠãã¬ããŒãã«æ»ããŸããã西å士ã®è¬æŒã¯ã AIãæããå¿
èŠã¯ãããŸããã AIã䜿ãããªããäŒç€Ÿãåã¡ãŸãã é²ãæ¹åã¯ããããã£ãŠããŸãã ã©ã¡ãã«é²ããã¯ãã¿ãªãããæ±ºããããšã§ãã ãšç· ããããããŸããã AIãã¹ãåã³ã·ããã©ã€ãæŠç¥ïœé«æ©å¯¿äžåå£«è¬æŒ ç¶ããŠé«æ©å¯¿äžå士ã®è¬æŒãAIãã¹ãåã³ã·ããã©ã€ãæŠç¥ãã§ãã 11/16åè¡äºå®ïŒãã¡ãããããããé¡ãããŸãã AIãšããã®ã¯é¿ããŠéããªããªã£ãŠããããAIã®ãã¹ããšããã®ã¯å€§å€ã ãšæããŠããã ãã¹ãã®ä»æ¹ãè€éã«ãªã£ãŠããã 2ïœ3幎åãŸã§ã¯Shift-Leftãå±ããŠããããä»ã¯ãªãShift-Rightãªã®ãã ãšããã話ãããå§ãŸããŸããã åèã ããŸãããã·ããã¬ãããã«ã€ããŠèããŠã¿ã Shift-Rightã«ã€ããŠã¯ã ã»ããŸãå®çŸ©ã¯ãªã ã»Shift-Leftã§ããããããã§ããªããã仿¹ãªãShift-Rightææ³ããšã£ãŠãã ãœãããŠã§ã¢ã®å·šå€§åãè€éåã«äŒŽããShift-RightãèããŠããå¿
èŠãããææã«æ¥ãŠããã å®éã«ãã«ããããŠå®¢å
ã«åºãçŽåããããã¯å®¢å
ã«åºãŠãããã¹ããããªããã°ãªããªããšããããšããä»åŸå¢ããŠããã®ã§ã¯ãªããã ãšã®ããšã§ãåè³ªã«æºããæ¹ã
ã®ä»äºã¯å¢ããŠãããShift-Leftããããªããã°ãªããªãããShift-Rightãå¢ããŠããã®ã§ã¯ãªãããšäºæž¬ãããŠããŸããã AIã®ãã¹ãã«ã€ããŠã¯ã ã»çãããªããã¹ããšèšãããŠãã ã»åºæ¬ãã¹ãã±ãŒã¹ãç¡é倧 ã»ãšãã£ãŠããã¹ãã±ãŒã¹ïŒããŒã¿ïŒãã¡ãããšäœããªã ãããªäžã§ããŸã å®ç§ãªãœãªã¥ãŒã·ã§ã³ã¯æã£ãŠããªããããªããšãå質ãæ
ä¿ããŠãããããšç ç©¶ããŠãããšããã§ããããšããã話ãã§ããã ãŸãšã ä»åã®ãã¬ãã¢ã ã»ãããŒã¯ãç¥èãŒãããåŠã¶AIãã¹ãããšããããšã§ãå°éçšèªããæªããã£ãç§ã§ãããéåžžã«ããããããããŸãèå³ããããããå
容ã§ããã AIãå©çšããæè¡ã¯ãŸã ãŸã ãããã鲿©ã»é²åããŠãããŸãããèå³ãæã£ãŠAIãšä»²è¯ãããŠãããããšæããŸããã 3人ã®å士ã«ã¯ç±ã楜ããè¬æŒããèããããã ããæ¬åœã«ããããšãããããŸããã The post ãç¥èãŒãããåŠã¶AIãã¹ããã»ãããŒåå ã¬ããŒã first appeared on Sqripts .
ã©ããITã€ã³ãã©ãšã³ãžãã¢ã®ãã£ããŒã§ãã æ®æ®µã®æ¥åã¯ã客æ§å
ã«å®æçã«ã䌺ãããµãŒããŒãã¯ã©ã€ã¢ã³ã端æ«ãªã©ã®ã¡ã³ããã³ã¹ãã³ã³ãµã«ãããŠããŸãã ããæè¿ã¯ãWindows Server 2012/2012 R2ãã®ãã€ã¯ããœãããµããŒãã2023幎10æã«çµäºããŠããŸã話é¡ãå€ããããŸãã ãWindows Server 2003ããããWindows Server 2012/2012 R2ããžãªãã¬ã€ã¹ãè¡ããçŸåšã皌åããŠããã±ãŒã¹ãå€ãããã§ãå¿
ç¶çã«ãã®ã¿ã€ãã³ã°ã§ã®ãªãã¬ã€ã¹ãå«ç·ã®èª²é¡ã«ãªã£ãŠããŸãã ãµããŒãçµäºåŸã¯ããã€ã¯ããœããããã®æ°èŠã®ã»ãã¥ãªãã£ããããæäŸãããªããªããŸãããã®çºãæ°ããªè匱æ§ãèŠã€ãã£ãå Žåããã®è匱æ§ãçã£ãæ»æãé²ãããšãé£ãããªããŸãããŸãããã©ãã«æã«ãã€ã¯ããœããã®ãµããŒããåããããªããããããžãã¹ãæ¢ãŸããªã¹ã¯ãé«ãŸããŸããæ¢ã«ãWindows Server 2012/2012 R2ãã®ãªãã¬ã€ã¹ã®ã話ã¯å€ãé ããŠãããŸããããã®äžã§ãå€ãçžè«ã¯Active DirectoryïŒã¢ã¯ãã£ãã»ãã£ã¬ã¯ããªïŒã®ç§»è¡ããã¡ã€ã«ãµãŒããŒã®ç§»è¡ãå«ãæ¡ä»¶ã§ãã ä»åã¯Active Directoryã®ç§»è¡ã«é¢ããŠã話ãããŠé ããŸããActive Directoryãšã¯ãWindows Server 2000ããæäŸãéå§ãããæ©èœã§ããããã¯ãŒã¯ã«ã€ãªãã§ããã¯ã©ã€ã¢ã³ã端æ«ããµãŒããŒãããªã³ã¿ãŒãã¢ããªã±ãŒã·ã§ã³ãªã©ã®æ
å ±ãåéããäžå
管çã§ãããã£ã¬ã¯ããªãµãŒãã¹ã§ããActive Directoryã®æŽå²ã¯é·ããªãã®ã§ä»åã¯å²æããããŸãïŒç¬ïŒã ã§ã¯æ¬é¡ã«æ»ããŸããActive Directoryãç§»è¡ããæé ã¯ããããšããã§ç޹ä»ãããŠããŸãããä»åã¯ãActive Directoryã皌åããŠãããWindows Server 2012 R2ããããWindows Server 2019ãè¥ããã¯ãWindows Server 2022ããžãªãã¬ã€ã¹ããéã«æ³šæãå¿
èŠãªäºã玹ä»ããŸããActive Directoryã®ç§»è¡äœæ¥ã§ã¯ãã客æ§ãžã®ãã¢ãªã³ã°ãæ§ãµãŒããŒã®èª¿æ»ãåæèšå®ããããã¯ãŒã¯èšå®ãActive Directoryåå çã
ã®äœæ¥åŸããã¡ã€ã³ã³ã³ãããŒã©ãŒææ Œäœæ¥ã«å
¥ããŸãããçšã«äžå³ã®ãããªãšã©ãŒãçºçããäºããããŸãã ADãµãŒããŒãªãã¬ã€ã¹æã«èæ
®ããŠæ§æãããŠããå Žåã¯åºãªãã€ã¬ã®ã¥ã©ãŒãªãšã©ãŒã§ããããWindows Server 2022ãã§ã¯SYSVOLå
±æã®ã¬ããªã±ãŒãã«DFS-Rãå©çšããŠããŸããæ°èŠæ§ç¯ã§ã¯çºçããªãã®ã§ãããWindows Server 2003é ããActive Directoryãå©çšããŠããŠãããŒãžã§ã³ã¢ãããããªãã¬ã€ã¹ãããéã«FRSããDFS-Rã«å€æããŠããªãæã«èŠãããŸããã¡ãªã¿ã«ãFRSãšã¯ä»¥åãã䜿çšãããŠããã¬ããªã±ãŒã·ã§ã³ãµãŒãã¹ã§ããWindows Server 2016ããŸã§ã¯ãµããŒããããŠãããWindows Server 2019以éã§ã¯ãµããŒããããŠãããŸããã 💡 Active Directory ã® SYSVOL ã¬ããªã±ãŒã·ã§ã³æ¹åŒãšããŠãåŸæ¥ã§ã¯ãã¡ã€ã«ã¬ããªã±ãŒã·ã§ã³ã·ã¹ãã ïŒFRSïŒFile Replication SystemïŒã䜿ãããŠããŸãããããã¡ã€ã³æ©èœã¬ãã« Windows Server 2008 ãã忣ãã¡ã€ã«ã·ã¹ãã ã¬ããªã±ãŒã·ã§ã³ïŒDFS-RïŒDistributed File System ReplicationïŒãå©çšã§ããããã«ãªããŸããããŸããDFS-R ãžåãæ¿ããããšã§ãSYSVOL 倿޿
å ±ã®å·®åã®ã¿ãåæããããããSYSVOL ã«å€æŽãçºçããå Žåã¯å³æã«åæãè¡ãããããªã©ã®ã¡ãªããããããŸãã ãšãããšã§ãããããã±ãŒã¹ã®æã¯ãã¡ã€ã³ã³ã³ãããŒã©ãŒææ Œäœæ¥åã«Active Directory ã® SYSVOL ã¬ããªã±ãŒã·ã§ã³æ¹åŒãFRSããDFS-Rã«å€æããäœæ¥ãå¿
èŠãšãªããŸããFSRããDFS-Rã«å€æããã«ã¯äžèšå€æã³ãã³ããå©çšããŸãã ãFRSâDFS-R倿ã³ãã³ãã ãdfsrmig.exe /CreateGlobalObjects ãdfsrmig.exe /GetGlobalState ãdfsrmig.exe /GetMigrationState ãdfsrmig /SetGlobalState 1 ãdfsrmig /GetMigrationState ãdfsrmig /SetGlobalState 2 ãdfsrmig /GetMigrationState ãdfsrmig /SetGlobalState 3 ãdfsrmig /GetMigrationState ã³ãã³ãå®è¡åŸãåé¡ãªãFRSããDFS-Rã«å€æãããããšã確èªã§ããã°ããã¡ã€ã³ã³ã³ãããŒã©ãŒã®ææ Œäœæ¥ã宿œã§ããŸãããã®åŸãADã®ãã€ã°ã¬ãŒã·ã§ã³ãè¡ãã°ãªãã¬ã€ã¹å®äºãšãªããŸãã ä»åã¯Active Directoryç§»è¡æã®æ³šæç¹ãšããŠãFRSããšãDFS-Rãã®è©±ããããŠé ããŸããã ãŸã 1幎éãããã¯Windows Server 2012/2012R2ã®ãªãã¬ã€ã¹ã¯å€ããããšèŠãŠããŸããæè¿ã¯å
šãæ³å®ããªãæé ãå¿
èŠãšãªãã±ãŒã¹ã¯ããŸããããŸããããåããããªã±ãŒã¹ã®ãªãã¬ã€ã¹ãæ°èŠæ§ç¯ã§ã決ãŸã£ãæé éãã«é²ãŸãªãã€ã¬ã®ã¥ã©ãŒæé ã¯çºçãããã®ã§ããåœç€Ÿã§ã¯ã€ã¬ã®ã¥ã©ãŒãªæé ãå¿
èŠã«ãªã£ãæã¯åçŸç°å¢ãäœããåé¡ãç¹å®ããŠæé 確ç«ãšãã¬ããžåãè¡ã£ãŠå¯Ÿå¿ã®å質åäžã«åãçµãã§ããŸãã The post Active Directoryç§»è¡æã®ãFRSããšãDFS-Rã first appeared on Sqripts .
ã¯ããã« ååã¯ãèªå販売æ©ã顿ã«ããŠãBDDãçšããããã»ã¹ã®ãå®åŒå(Formulation)ãã®éšåãŸã§ã説æããŸããã ä»åã¯ããèªåå(Automation)ãã®éšåã説æããŸãã 5. èªåå ååã®èšäºã®ã4. ã¬ãã¥ãŒããŸã§ãèªååã«ã€ããŠã¯äžåèããŠããŸããã§ãããïŒBDDã¯èªååãç®çã§ã¯ãªããšç¬¬4åã§ãäŒãããéãã§ããïŒ ãããŸã§ããŠåããŠãèªååã«ã€ããŠèããŸãã ä»åã¯ãååäœæãã以äžã®Gherkinèšæ³ã®ã·ããªãªãã€ã³ãããã«ããŠèªååãè¡ããŸãã Feature: èªåè²©å£²æ© Scenario: 飲ã¿ç©ãè²·ããšã飲ã¿ç©ä»£ãåŒããéé¡ã®ãé£ããåºã Given èªå販売æ©ããã When 550 åãå
¥ãã And 120 åã® "ã³ãŒã©" ãéžæãã Then "ã³ãŒã©" ãåºãŠãã And 430 åãåºãŠãã èªååã®æé 0. BDDã®ãã¬ãŒã ã¯ãŒã¯ãå°å
¥ãã BDDã§è¡ãããã®ãã¬ãŒã ã¯ãŒã¯ãå°å
¥ããŸããæ¬èšäºã§ã¯ã ããã°ã©ãã³ã°èšèªâŠJava ãã¬ãŒã ã¯ãŒã¯âŠCucumber ãã«ãããŒã«âŠMaven ã§èšã¿ãŸãã ãŸããIDEã¯IntelliJã䜿çšããŠããããCucumber for Javaãã®ãã©ã°ã€ã³ãã€ã³ã¹ããŒã«æžã¿ã§ããèšäºäžã«èŒã£ãŠããç»åã¯å
šãŠIntelliJã®ã¹ã¯ãªãŒã³ã·ã§ããã§ããããšããäºæ¿ãã ããã Cucumberã®æ§é ãçè§£ãã Cucumberã¯ä»¥äžã®æ§é ãäœæããŠåãããŸãã Gherkinèšæ³ã®ã·ããªãªãšãã¹ãã³ãŒããåãããŠããã®ããCucumberãã¯ãããšããBDDãã¬ãŒã ã¯ãŒã¯ã®ç¹åŸŽã§ãã ããã«ãããããžãã¹é¢ä¿è
ã¯Gherkinèšæ³ã®ã·ããªãªãèŠãã ãã§ãã©ã®ãããªæ¯ãèããå®çŸ©ããŠããã®ãçè§£ããããšãã§ããŸãããã®éã«ãããã°ã©ãã³ã°ç¹æã®ã¹ãã«ã¯å¿
èŠãããŸããã Cucumberã®ãããžã§ã¯ããCloneãã ä»åã¯ã cucumber-java-skeleton ã®ãããžã§ã¯ããCloneããŸãã Cloneã®ä»æ¹ãšCucumberã®å®è¡ã®ä»æ¹ã«ã€ããŠã¯ãããžã§ã¯ãã®Readmeãã芧ãã ããã ãã¹ããå®è¡ã§ããããšã確èªãã Gradleãããã¯MavenãçšããŠããããžã§ã¯ãã®Readmeã«æžããŠããéãã«ãã¹ããå®è¡ããŸãã äŸãã°Mavenã®å Žåã以äžã®ããã«ãã¹ããå®è¡ã§ããã°OKã§ããåæç¶æ
ã§ã¯ãã¹ãã倱æããããã«ãªã£ãŠããŸãã IDEäžã§ãã£ãŒãã£ãŒãã¡ã€ã«ã®ãã¹ãå®è¡ã§ããããšã確èªãã Gradleãããã¯Mavenã§ãã¹ãå®è¡ãããšãIDEã®ãã£ãŒãã£ãŒãã¡ã€ã«äžã§Cucumberã®å®è¡ãã§ããããã«ãªã£ãŠããŸãã ä»åã¯Cloneãããããžã§ã¯ãã«ããã©ã«ãã§å
¥ã£ãŠããmaven/src/test/resources/io/cucumber/skeleton/belly.featureã®ãã¡ã€ã«ãéããŠã¿ãŸãããããããšã以äžã®ç»åã®ããã«ãªã£ãŠããã¯ãã§ãã ãã®äžã§ãè¡çªå·ã®1è¡ç®ãããã¯3è¡ç®ã®å³åŽã«ã€ããŠããäžè§åœ¢2ã€ã®ã¢ã€ã³ã³ãã¯ãªãã¯ããŸãããããšã以äžã®ãããªãŠã£ã³ããŠãåºãŠããã¯ãã§ãããã®äžã®äžçªäžã«ãããRun âããâããã¯ãªãã¯ãããšãIDEäžã§Cucumberã®ãã¹ããå®è¡ã§ããŸãã å®è¡åŸã以äžã®ç»åã®ãããªçµæã«ãªãã°OKã§ãã äžèŠãªãã¡ã€ã«ããã³èšè¿°ãåé€ãã å®éã®ãããžã§ã¯ããèšè¿°ããäžã§ä»¥äžã®ãã¡ã€ã«ã¯äžèŠãªã®ã§ãåé€ããŠãã ããã maven/src/test/resources/io/cucumber/skeleton/belly.feature maven/src/main/java/io/cucumber/skeleton/Belly.java maven/src/test/java/io/cucumber/skeleton/StepDefinitions.java 以äžã§ãCucumberãçšããŠBDDã®èªååãè¡ãæºåãã§ããŸããã èªååã®æé 1. ãã£ãŒãã£ãŒãã¡ã€ã«ã«èšèŒãã æ°ãã«ãã£ãŒãã£ãŒãã¡ã€ã«ãäœæããååäœæãã以äžã®Gherkinèšæ³ã®ã·ããªãªãèšèŒããŸããä»åã¯maven/src/test/resources/io.cucumber.vendormachine/vendormachine.featureãšãããã¡ã€ã«ãäœæããŸããã Feature: èªåè²©å£²æ© Scenario: 飲ã¿ç©ãè²·ããšã飲ã¿ç©ä»£ãåŒããéé¡ã®ãé£ããåºã Given èªå販売æ©ããã When 550 åãå
¥ãã And 120 åã® "ã³ãŒã©" ãéžæãã Then "ã³ãŒã©" ãåºãŠãã And 430 åãåºãŠãã èªååã®æé 2. ãã£ãŒãã£ãŒãã¡ã€ã«ãå®è¡ãã倱æã確èªãã ãèªååã®æé 1ãã§äœæãããã£ãŒãã£ãŒãã¡ã€ã«äžã§ãCucumberã®å®è¡ãããŸãã ãããšã以äžã®ããã«ãã¹ã倱æãšãªãã¯ãã§ãã ãã®æç¹ã§ã¯å€±æããŠããç¶æ
ãæ£è§£ãšãªããŸãããªããªãã°ã·ããªãªãèšè¿°ããã ãã§ãããããã®ã¹ãããã«å¯Ÿããå®è£
ãããŠããªãããã§ãã ãªããäžã®ãã¹ã倱ææã®ç»åã§ã¯ã以äžã®ãããªãã¹ãå®è¡ã¹ããŒã¿ã¹ã«ãªã£ãŠããŸãã Feature: èªåè²©å£²æ© Scenario: 飲ã¿ç©ãè²·ããšã飲ã¿ç©ä»£ãåŒããéé¡ã®ãé£ããåºã Given èªå販売æ©ããã //âãã¹ã倱æ When 550 åãå
¥ãã //âå®è¡ã¹ããã And 120 åã® "ã³ãŒã©" ãéžæãã //âå®è¡ã¹ããã Then "ã³ãŒã©" ãåºãŠãã //âå®è¡ã¹ããã And 430 åãåºãŠãã //âå®è¡ã¹ããã Feature: èªåè²©å£²æ© Scenario: 飲ã¿ç©ãè²·ããšã飲ã¿ç©ä»£ãåŒããéé¡ã®ãé£ããåºã Given èªå販売æ©ããã //âãã¹ã倱æ When 550 åãå
¥ãã //âå®è¡ã¹ããã And 120 åã® "ã³ãŒã©" ãéžæãã //âå®è¡ã¹ããã Then "ã³ãŒã©" ãåºãŠãã //âå®è¡ã¹ããã And 430 åãåºãŠãã //âå®è¡ã¹ããã èªååã®æé 3. ã¹ãããå®çŸ©ãã¡ã€ã«ãäœæããGivenã¹ãããã®å®è£
ãè¡ã ãèªååã®æé 1ãã§äœæãããã£ãŒãã£ãŒãã¡ã€ã«ãéããšã以äžã®ããã«ãªã£ãŠããŸãã ãã®ãã¡ã4è¡ç®ãã8è¡ç®ã®èæ¯è²ãã€ããŠããéšåã¯ãã³ã³ãã€ã«ãšã©ãŒã®ç¶æ
ã瀺ããŠããŸããä»åã®å Žåãããããã®è¡ã«å¯Ÿå¿ããã¹ãããå®çŸ©ããªãããã³ã³ãã€ã«ãšã©ãŒãšãªã£ãŠããŸãã ããã§ããŸãã¯4è¡ç®ã®ãGiven èªå販売æ©ããããã«å¯Ÿããã¹ãããå®çŸ©ãäœæããŸãã ãèªå販売æ©ããããã®æç« äžã«ã«ãŒãœã«ãæã£ãŠãããšããã³ããšãªãè±é»çã®ã¢ã€ã³ã³ãåºãŠããŸãã è±é»çã®ã¢ã€ã³ã³ãã¯ãªãã¯ãããCreate step definitionããã¯ãªãã¯ããŸãã ãããšãã¹ãããå®çŸ©ãã¡ã€ã«ã®äœæãŠã£ã³ããŠãåºãŠããŸãã®ã§ãé©åœãªãã¡ã€ã«ãäœæããŸãã ä»åã¯ããã¡ã€ã«åããVendorMachineDefinitionsãããã¡ã€ã«ãã¹ããmaven/src/test/java/io/cucumber/skeletonããšããŸããã ãŠã£ã³ããŠã®ãOKããã¿ã³ãæŒããšã以äžã®ç»åã®ãããªmaven/src/test/java/io/cucumber/skeleton/VendorMachineDefinitions.javaãã¡ã€ã«ãèªåäœæãããã¯ãã§ãã ãããŸã§è¡ã£ããããäžåºŠããèªååã®æé 1ãã§äœæãããã£ãŒãã£ãŒãã¡ã€ã«äžã§ãCucumberã®å®è¡ãããŸãã ãããšãååãšãã¹ãçµæãå°ãç°ãªã£ãŠããã®ãåããã§ããããã ã¹ãããå®çŸ©ãã¡ã€ã«äœæåã®ãã¹ãçµæ ã¹ãããå®çŸ©ãã¡ã€ã«äœæåŸã®ãã¹ãçµæ ã¹ãããå®çŸ©ãã¡ã€ã«äœæåã§ã¯ãèªå販売æ©ããããã®éšåã§ãã¹ã倱æã«ãªã£ãŠããã550åãå
¥ãããã¯å®è¡ã¹ããããšãªã£ãŠããŸããã äžæ¹ã¹ãããå®çŸ©ãã¡ã€ã«äœæåŸã§ã¯ãèªå販売æ©ããããã®éšåã¯è¡šç€ºããããã550åãå
¥ãããã®éšåã§ãã¹ã倱æã«ãªã£ãŠããŸãã ããã¯ããèªå販売æ©ããããã®éšåã®ãã¹ããæåããŠãããæ¬¡ã®ã¹ãããã§ããã550åãå
¥ãããã®ã¹ãããå®çŸ©ãèŠã€ãããªããããã¹ã倱æãšãªã£ãŠããããšã瀺ããŠããŸãã èªååã®æé 4. Givenã®äžèº«ãå®è£
ãã ã¹ãããå®çŸ©ãã¡ã€ã«ããã³ã¡ãœãããäœæããã ãã§ã¯ãå
·äœçã«å®è£
ãã§ããŠããŸãããããã§ã次ã«äžèº«ã®å®è£
ãè¡ããŸãã ä»åã®å Žåã以äžã®ç»åã®ããã«èšè¿°ããŸããçŸæç¹ã§ã¯VendorMachineã¯ã©ã¹ãç¡ãã«ããããããããŸãã§ååšããŠãããã®ããã«æžãã®ã¯TDDãæžãæãšäŒŒãŠããŸããã ãã®æç¹ã§ã¯ã³ã³ãã€ã«ãšã©ãŒãçºçããŠããç¶æ
ã«ãªã£ãŠããã°OKã§ãã èªååã®æé 5. ã³ã³ãã€ã«ãšã©ãŒã®è§£æ¶ãè¡ã ãèªååã®æé 4ãã§çºçããŠããã³ã³ãã€ã«ãšã©ãŒã®è§£æ¶ãè¡ã£ãŠãããŸãã ä»åã®å Žåãmaven/src/main/java/io/cucumber/vendormachine/VendorMachine.javaãäœæããããšã§ã³ã³ãã€ã«ãšã©ãŒã®è§£æ¶ãè¡ããŸããã èªååã®æé 6. Whenã¹ãããã®å®è£
ãè¡ã å
ã»ã©ãŸã§ãšåæ§ã«ãä»åºŠã¯ãWhen 550 åãå
¥ãããã®ã¹ãããã®å®è£
ãè¡ããŸãã è±é»çã®ã¢ã€ã³ã³ãã¯ãªãã¯ãããCreate step definitionããã¯ãªãã¯ããŸãã ä»åã¯å
ã»ã©ã®ãGiven èªå販売æ©ãããããšåããã¡ã€ã«äžã«ã¹ãããå®çŸ©ã®å®è£
ãè¡ãããããVendorMachineDefinitions(io.cucumber.skeleton)ããéžæããŸãã ãããšãVendorMachineDefinitionsãã¡ã€ã«ã¯ä»¥äžã®ããã«ãªããŸããïŒå€æ°åã¯arg0ããinsertedAmountã«å€æŽããŸããïŒ Tips ã·ããªãªèšèŒæã«ãWhen 550 åãå
¥ããããšãæ°å€ã®ååŸã«åè§ã¹ããŒã¹ãèšèŒãããšãCucumberãèªåçã«æ°å€ã®å€æ°ã ãšå€æããŠãããŸãã åæ§ã«ãThen “ã³ãŒã©” ãåºãŠãããã®ããã«ãçšèªã””ã§æ¬ããšãCucumberãèªåçã«æååã®å€æ°ã ãšå€æããŠãããŸãã Whenã®äžèº«ãå®è£
ãã Givenã®æãšåæ§ã«ãTDDã®ãããªæèŠã§å®è£
ããŠãããŸããä»åã®å Žåã以äžã®ããã«ãªããŸãã ãªããGivenã®æã«çæããVendorMachineã¯ã©ã¹ã掻çšããããããGivenå
ã®ããŒã«ã«å€æ°ã ã£ãvendorMachineããã£ãŒã«ã倿°ã«å€æŽããŠããŸãã ãããŠãVendorMachineã¯ã©ã¹å
ã¯ä»¥äžã®ããã«å€æŽããŸãã 以äžåæ§ã«ãã¹ãããå®çŸ©ãšå®è£
ãäœæããŠãããŸãã ãããã« ä»åã¯ãèªåå(Automation)ããšããŠãBDDã®ãã¬ãŒã ã¯ãŒã¯ã§ããCucumberãçšããå®è£
æ¹æ³ã玹ä»ããŸããã ä»åã¯èª¬æããŸããã§ããããBDDãšããŠã®ã¹ãããå®çŸ©ã宿ãããåŸã¯ããã现ãããã¹ããæžããããå®è£
éšåã®ãªãã¡ã¯ã¿ãªã³ã°ãè¡ã£ãŠãã£ããããŸãã ãã®éçšã§è²ã
ãšå®è£
å
容ã倿Žããããšã«ãªããšã¯æããŸãããä»åã®ã¹ãããå®çŸ©ã宿ãããŠããããšã«ãããå€åŽã®æ¯ãèãã¯åãããšã確èªã§ãããšããå®å¿æãæã£ãŠå€æŽããããšãã§ããŸããããããBDDãATDDã®è¯ãã§ããããŸãã æ¬é£èŒãTDDãšBDD/ATDDããä»åã§æçµåãšãªããŸããä»åã¯ãèªåå(Automation)ããšããããã°ã©ãã³ã°éšåã«ã€ããŠèª¬æããŠãããŸããããBDDã«ãããŠäœãããéèŠãªã®ã¯ãçºèŠ(Discovery)ãã§è¡ãããžãã¹é¢ä¿è
ãšã®åèª¿äœæ¥ã§ããèªååã®ã¿ãè¡ã£ãŠãSeb Roseã«ãéçºã¢ãããŒãã¯å°ãã BDD ã«ã¯ãªã£ãŠããŸãããããšèšãããªãããã«ããŸãããã ãŸããæ¬é£èŒããã£ããã«BDDã«èå³ãæã£ãæ¹ã¯ããã²The BDD Booksã·ãªãŒãºããèªã¿ããã ããã°ãšæããŸãã The BDD Booksã·ãªãŒãºã®æžç±ç޹ä»ããŒãžã¯ä»¥äžã®éãã§ãã ã The BDD Books – Discovery ïŒéŠèš³ïŒ The BDD Books – Discovery Japanese Edition ïŒã ã The BDD Books â Formulation ïŒéŠèš³ïŒThe BDD Books – Formulation Japanese Editionã¯ããããåºçäºå®ïŒã ãThe BDD Books â Automationãã¯ããããåºçäºå® ããã§ã¯ãBDDãéããŠããžãã¹é¢ä¿è
ãšå調ããªãããæ¥ã
ã®æ¥åãè¡ã£ãŠã¿ãŠãã ããã é£èŒäžèЧ TDDãšBDD/ATDD(1)ãTDDã¯ãã¹ãææ³ã§ã¯ãªã TDDãšBDD/ATDD(2)ã2çš®é¡ã®BDD TDDãšBDD/ATDD(3)ãBDDãšATDDãšSbE TDDãšBDD/ATDD(4)ãããŒã«ãšããŠã®BDDãšããã»ã¹ã«çµã¿èŸŒãŸããBDD TDDãšBDD/ATDD(5)ãBDDã®ããã»ã¹ãã®1ãçºèŠ(Discovery)ããšå®äŸãããã³ã° TDDãšBDD/ATDD(6)ãBDDã®ããã»ã¹ãã®2ãå®åŒå(Formulation)ããšBRIEFã®åå TDDãšBDD/ATDD(7)ãBDDã®ããã»ã¹ãã®3ãèªåå(Automation)ã The post TDDãšBDD/ATDD(7)ãBDDã®ããã»ã¹ãã®3ãèªåå(Automation)ã first appeared on Sqripts .
ã¯ãããŸããŠãQAãšã³ãžãã¢ã®æ¡ æºéã§ãã æè¿ããçæAIãšããèšèãèãããç®ã«ãããããããšã¯ãããŸãããïŒ çæAIãå®çšåãããŠããŠããèŠå ãšããŸããŠã¯ããã³ã³ãã¥ãŒã¿æ§èœã®åäžããã³ããçŠã«ããåŽåç°å¢ã®å€åããå°ååã«ããåŽå人å£ã®æžå°ããªã©ãæ§ã
ãªèŠå ã¯ããããšã¯æããŸããã人éã®çšŒååæžã®å¿
èŠã«è¿«ããããã®æ°å¹Žã§é£èºçã«é²åãéããŠããŠããæè¡ã§ãã ãœãããŠã§ã¢ãã¹ãã«ãããŠããAI掻çšã«ãããã¹ãã®èªååã¯è©Šã¿ãããŠããããçæAIã«ãããã¹ãã¹ã¯ãªããã®èªåçæããšãã£ã掻çšãè¡ãããŠããŠããŸãã ãããŸã§äŸ¿å©ã«æããçæAIã§ãããæ¥éã«çºå±ããæè¡ã«ã¯ãããæ£ããå©çšããããã«çæããŠãããªããšãããªãããšããããŸãã ãããã¿ã€ãã«ã«ããããèäœæš©ãã§ãã å»ã什å5幎6æ19æ¥ã«æååºã«ããèäœæš©ã»ãããŒãAIãšèäœæš©ããéå¬ãããæååºããã®çæAIã®å©çšæã«ãããèäœæš©ã®èãæ¹ã«ã€ããŠãäžå®ã®æéãçºè¡šãããŸããã çæAIãå©çšããŠã³ã³ãã³ããçæããå Žåããç¶æ³ã«ãã£ãŠã¯èäœæš©ã®å¯Ÿè±¡ãšãªãããå ŽåããããŸãã ããã§ã¯ãã»ãããŒã§ã®ãã€ã³ããæããªãããçæAIãèäœæš©ã«ã€ããŠäžç·ã«èããŠãããããšæããŸãã â»æ¬ããã°å
容ã¯ä»€å5幎8ææç¹ã®å
容ãšãªããŸãã ã»ãããŒæŠèŠ ã»ãããŒåïŒä»€å5幎床 èäœæš©ã»ãããŒãAIãšèäœæš©ã äž»å¬è
ããïŒæååºèäœæš©èª² é嬿¥ããïŒä»€å5幎6æ19æ¥ èäœæš©æ³ã®æ£ããçè§£ã«åºã¥ããŠçæAIã®å©æŽ»çšãããããããçŸè¡ã®èäœæš©æ³ã®èãæ¹ãAIãšèäœæš©ã®é¢ä¿ã«ã€ããŠã®èª¬æãè¡ãããŸããã 第ïŒéšã§ã¯èäœæš©å¶åºŠã®æŠèŠã«ã€ããŠã®è§£èª¬ã 第ïŒéšã§ã¯AIãšèäœæš©ã«ã€ããŠãçæAIãšèäœæš©ã®é¢ä¿ã«ã€ããŠã®è§£èª¬ã ãšãããïŒéšæ§æã§çŽïŒæéã®ã»ãããŒãšãªã£ãŠããŸããã ã¢ãŒã«ã€ãæ åãè¬çŸ©è³æã¯ æååºã®Webãµã€ã ãã確èªããããšãã§ããŸãã ããããèäœæš©ãšã¯ïŒ ãŸãã¯ã»ãããŒã®ç¬¬ïŒéšãèäœæš©å¶åºŠã®æŠèŠã«ã€ããŠã®è§£èª¬ããšåãããèäœæš©ã«ã€ã㊠æååºã®èäœæš©ããã¹ã ã®å
容ãåŒçšãã€ã€ç¢ºèªã»æŽçããŠãããŸãã èäœæš©ä¿è·ã®ç®ç èäœæš©ããã¹ã 4ããŒãž ã«ä»¥äžã®ããã«èšèŒãããŠããŸãã é©åãªæš©å©ä¿è·ã«ãã£ãŠãåµäœã®ä¿é²ããå³ããæš©å©ã®å¶éã«ãã£ãŠãå
¬æ£ãªå©çšãã確ä¿ãããã£ãŠãæåã®çºå±ã«å¯äžãããããšãç®çãšããŠããŸãã æååºèäœæš©ããã¹ã â» æååºã®èäœæš©ããã¹ã 4ããŒãž ããæ²èŒ èŠã¯ ãæåã®çºå±ã«å¯äžã ããããã«ã¯ãæ°ããªåµé ãåµäœã®ä¿é²ã ãäžå¯æ¬ ã§ããåµäœã®ä¿é²ããä¿ãã«ã¯ãæš©å©ã®ä¿è·ã»æš©å©ã®å¶éã§èäœç©ã® ãå
¬æ£ãªå©çšã ã確ä¿ããèäœè
ã«äžå©çã«ãªããªãããã«å©çšã§ããããã«ããããšã§ãåµäœã®åŸªç°ãçãŸããããã«ããããšããããšã®ããã§ãã ã»ãããŒã§ãã ãèäœè
çã®æš©å©ã»å©çãä¿è·ããããšããšããèäœç©ãåæ»ã«å©çšã§ããããšãã®ãã©ã³ã¹ãåãããšãéèŠãšèããããŠããã ãšè©±ãããŠããŸããã èäœç©ã«ã€ã㊠次ã«èäœç©ã«ã€ããŠã®å®çŸ©ã確èªããŸãããã èäœæš©ããã¹ã 5ããŒãž ã®èšèŒå
容ã«ã èäœæš©æ³ã§ã¯ãèäœç©ã¯ã ã(a)ææ³åã¯ææ
ã (b)åµäœçã« (c)衚çŸãããã®ã§ãã€ãŠã(d)æèžãåŠè¡ãçŸè¡åã¯é³æ¥œã®ç¯å²ã«å±ãããã®ã æååºèäœæš©ããã¹ã ãšå®çŸ©ãããŠããŸãã ã€ãŸãã ææ³ãææ
ãªã©ã®å«ãŸããªãããŒã¿ãäºå®ãšãã£ããã® åµäœã§ã¯ãªãæš¡å£ã§ãã£ããããããµããã㮠衚çŸããŠããªãã¢ã€ãã¢ã®ãŸãŸ å·¥æ¥è£œå ãšããããã«ãå®çŸ©ããå€ãããã®ã¯èäœç©ãšèªããããªãå¯èœæ§ãé«ãã§ãã æ¥åã«èº«è¿ãªèäœç©ã«ã€ã㊠ããã§ã¯ããœãããŠã§ã¢ãã¹ãã«ããã身è¿ãªèäœç©ã«ã€ããŠã¯ã©ã®ãããªãã®ãããã§ããããïŒ ãœãããŠã§ã¢ãã¹ãã«ãããäœæç©ã§ã¯ã èŠä»¶å®çŸ©æž 詳现èšèšæž ãã¹ãã¹ã€ãŒã ãã¹ãã·ããªãª ãã¹ãã¹ã¯ãªãã ãã¹ããµããªãŒã¬ããŒã ãªã©ãæ§ã
ãªäœæç©ãååšããããšæããŸãã ãããã«ã€ããŠãèäœç©ã®å®çŸ©ãçš®é¡ã«ããŠã¯ããŠã¿ããšã ææ³ãåµäœçã«è¡šçŸããèšèªãããã°ã©ã ã®èäœç©ãšããŠãªãåŸããã® ã¯ã ãã¹ãã·ããªãª ãã¹ãã¹ã¯ãªãã ãã¹ããµããªãŒã¬ããŒã 蟺ãã§ããããã ãã ããã¹ãã®ç®çãšããŠã¯ã誰ãæäœããŠãæ£ããçµæãåŸãããããšããç®çãšããŠããã®ã§ãããã«å¯ŸããŠåµäœæ§ãèŠåºãããšã¯é£ãããããããŸããã ããããçæAIãšã¯ïŒ ç¶ããŠãä»åã®ã»ãããŒã§ã¯èª¬æãšããŠè§ŠããããŠããŸããã§ãããããçæAIãšã¯äœãªã®ãïŒããAIãšäœãéãã®ãïŒãã確èªããŠãããŸãã AIãšçæAIã®å®çŸ©ã«ã€ã㊠AIã«ã€ã㊠åçåŽåçããå
¬éãããŠããã AIã®å®çŸ©ãšéçºçµç·¯ ãã«ã¯ã 人工ç¥èœïŒAIïŒartificial intelligenceïŒã«ã€ããŠã¯ãæç¢ºãªå®çŸ©ã¯ååšããªãããã倧éã®ç¥èããŒã¿ã«å¯ŸããŠãé«åºŠãªæšè«ãç確ã«è¡ãããšãç®æãããã®ãïŒäžè¬ç€Ÿå£æ³äºº 人工ç¥èœåŠäŒèšç«è¶£ææžããã®æç²ïŒãšãããŠããã AIã®å®çŸ©ãšéçºçµç·¯ ãšèšèŒãããŠããŸãã ãã®ä»ã«ç·åçããå
¬éãããŠããã 人工ç¥èœ(AIïŒãšãŒã¢ã€)ã®ããã¿ ãã§ãã ãAIãã«é¢ãã確ç«ããå®çŸ©ã¯ãããŸãããã人éã®æèããã»ã¹ãšåããããªåœ¢ã§åäœããããã°ã©ã ããããã¯äººéãç¥çãšæããæ
å ±ïŒãããã»ãïŒåŠçïŒãããïŒã»æè¡ïŒããã
ã€ïŒãšãã£ãåºãæŠå¿µã§çè§£ãããããŠããŸãã 人工ç¥èœ(AIïŒãšãŒã¢ã€)ã®ããã¿ ãšããèšèŒããããŸãã AIã¯æç¢ºã«ç¢ºç«ãããå®çŸ©ã¯ç¡ãã ãšããå°ãææ§ãªæè¡ã§ããã倧éã®ããŒã¿ã«å¯Ÿã㊠人éãæèã»åŠçãè¡ãããšãšåãããã«ãã³ã³ãã¥ãŒã¿ãåäœãè¡ãããšãç®çãšããæè¡ã ãšããããšã§ãäž»ã«äººéã®ä»£ããã«åŠçãè¡ãã³ã³ãã¥ãŒã¿ãæãããšãå€ãå°è±¡ã§ãã çæAIã«ã€ã㊠NIKKEI COMPASSã®çæAIã®è§£èª¬ ã«ã¯ã çæAI(è±:Generative AI)ã¯ãç»åãæç« ãé³å£°ãããã°ã©ã ã³ãŒããæ§é åããŒã¿ãªã©ããŸããŸãªã³ã³ãã³ããçæããããšã®ã§ãã人工ç¥èœã®ããšã NIKKEI COMPASSã®çæAIã®è§£èª¬ 倧éã®ããŒã¿ãåŠç¿ããåŠç¿ã¢ãã«ã人éãäœæãããããªçµµãæç« ãçæããããšãã§ããã NIKKEI COMPASSã®çæAIã®è§£èª¬ ãšãããŸãã ã€ãŸããAIãåŠçãæè¡ãæããŠããããšã«å¯ŸããŠã çæAIã¯ãã®AIæè¡ã䜿ã£ãŠæ°ããªã³ã³ãã³ããçæããããšãç®ç ãšããŠããŸãã çæAIã®åŠç¿æ®µéãšçææ®µé çæAIãå©çšããŠæ°ããªã³ã³ãã³ããçæããããã«ã¯ããŸãAIã«ããŒã¿ãèç©ããŠæ
å ±ãåŠç¿ããããåŠç¿æ®µéããšãããã®ããããŸãã ãã®åŠç¿æ®µéã§èç©ããããŒã¿ã«ãã£ãŠãAIã®ç¹åŸŽã¥ããè¡ããããããŸãã æ¬¡ã«ãåŠç¿æžã¿ã®AIã«å¯ŸããŠæ°ããªã³ã³ãã³ããçæãããããã«ãå©çšè
ãã©ã®ãããªã³ã³ãã³ãã çã¿åºãããããšãã£ãèŠæ±ãAIã«æç€ºãåºããŠã³ã³ãã³ããçæãããçææ®µéããšãããã®ããããŸãã ãã®æç€ºã®åºãæ¹ã§ãæçµçãªçæç©ã®ä»äžãããå·Šå³ãããŸãã äž»ãªçæAIãµãŒãã¹ æšä»è©±é¡ã«äžãã£ãŠããäž»ãªçæAIã®çš®é¡ã§ã¯ããç»åçæAIããããã¹ãçæAIããåç»çæAIããé³å£°çæAIããªã©æ§ã
ãªãã®ãå±éãããŠããŸãã äŸãã°ããã¹ãçæAIã«ã€ããŠã¯ããµããŒãã»ã³ã¿ãŒãªã©ãžãã£ããã§åãåãããéã«ã質åã«å¿ããçæã¡ãã»ãŒãžãè¿çãããã ãšããæ©äŒã身è¿ã«å¢ããŠããããšæããŸãã ãœãããŠã§ã¢ãã¹ãã«ãããŠããããã¹ãçæAIã«ãŠãã¹ãã±ãŒã¹ã®èªåçæããã¹ãã¹ã¯ãªããã®èªåçæããã¹ãããŒã¿ã®èªåçæãªã©ãçæAI掻çšã®å Žé¢ãå¢ããŠããŠããŸãã çæAIãå©çšããäžã§ã®èäœæš©ã«é¢ãããã€ã³ã ã§ã¯ãå®éã«çæAIãå©çšããäžã§èäœæš©ã«æ³šæãããã€ã³ãã¯ã©ãã«ãªãã®ããèäœæš©ã»ãããŒã®ïŒéšã§è§£èª¬ãããŠããå
容ãå
ã«ç¢ºèªããŠãããŸãã åé ã§è§ŠããŠããããçæAIãå©çšããŠããŠããç¶æ³ã«ãã£ãŠã¯èäœæš©ã®å¯Ÿè±¡ãšãªãããå Žåãã«ã€ããŠããŸãã察象ãšãªããªãå Žåãã«ã€ããŠãå
·äœçã«èŠãŠãããŸãããã ïŒïŒåŠç¿æ®µéã«ãããåŠç¿ã®ããšãšãªã£ãèäœç© ãŸãïŒã€ç®ã«ãAIã®éçºã»åŠç¿æ®µéã«ããããAIåŠç¿ã®å
ãšãªã£ãããŒã¿ã«ã€ããŠã®èäœæš©ã«é¢ããåé¡ã説æãããŠããŸãã çµè«ãšããŠã¯ã什å5幎6ææç¹ã®èäœæš©æ³ç¬¬ïŒïŒæ¡ã®ïŒã®è§£éã§ã¯ã AIéçºã®ããã®æ
å ±è§£æã¯æ¢åã®èäœç©ã«è¡šçŸãããææ³ãææ
ã®äº«åãç®çãšããå©çšã§ã¯ãªãã ïŒæš©å©å¶éèŠå®ïŒ ãšèããããããšãå€ããååãšããŠèäœæš©è
ã®èš±è«ŸãªãAIåŠç¿ãè¡ãããšãã§ããããã§ãã ã»ãããŒã§ã¯ãäžè¬çãªæ·±å±€åŠç¿ã«ãããAIåŠç¿æ®µéã®äžäŸãå
ã«èª¬æãããŠããŸããã â» æååºã®èäœæš©ã»ãããŒããã¹ã 30ããŒãžïœ ããæ²èŒ ãã¡ãã«æžãããŠããããã«ãAIåŠç¿æ®µéã«ãããŠã¯Webäžã®ããŒã¿ãåéããŠåŠç¿ããŠããããšãå€ããããã«æ°ååç¹ãšãããããªå€§éããŒã¿ã®èäœæš©ã®æç¡ã®å€å¥ããèäœè
ããã®èš±è«ŸãåŸãã ãšããããšãå°é£ã§éçŸå®çãšããç¶æ³ãããäžèšã®åãçµã¿ãè¡ãããŠããããã§ãã å¹³æ21å¹Žæ¹æ£ïŒã€ã³ã¿ãŒãããæ
å ±æ€çŽ¢ãµãŒãã¹ã®ããã®è€è£œãé»åèšç®æ©ã«ããæ
å ±è§£æã®ããã®è€è£œçã«ã€ããŠãæš©å©å¶éèŠå®ãæŽå å¹³æ24å¹Žæ¹æ£ïŒãããããåã蟌ã¿ããæè¡ã®éçºåã¯å®çšåã®ããã®è©Šéšã®çšã«äŸããããã®å©çšçã«ã€ããŠãæš©å©å¶éèŠå®ãæŽå 次äžä»£ç¥è²¡ã·ã¹ãã æ€èšå§å¡äŒãç¥çè²¡ç£æŠç¥æ¬éšã»H27ïœ28ã æ°ããªæ
å ±è²¡æ€èšå§å¡äŒãç¥çè²¡ç£æŠç¥æ¬éšã» H28ïœ29ã ãããã®åãçµã¿ã®çµæãèäœæš©æ³ç¬¬ïŒïŒæ¡ã®ïŒãå°å
¥ããã éçºã®ããã®æ
å ±è§£æã®ããã«ãèäœç©ã«è¡šçŸãããææ³åã¯ææ
ã®äº«åãç®çãšããªãå©çšè¡çºã¯ãååãšããŠèäœæš©è
ã®èš±è«Ÿãªãè¡ãããšãå¯èœã§ãïŒæš©å©å¶éèŠå®ïŒã ãšæ³æ¹æ£ã«ãªã£ãŠããããã§ãã â» æååºã®èäœæš©ããã¹ã 65ããŒãž ããæ²èŒ ãã ãããããŸã§ èäœæš©è
ãžã®çµæžçå©çã害ãããã®ã§ã¯ãªãã ãšããããšãåæã®ææ³ãšããŠã¯ããçºã ãèäœæš©è
ã®å©çãäžåœã«å®³ããããšãšãªãå Žåâ»ãã¯ãæ¬æ¡ã®èŠå®ã®å¯Ÿè±¡ãšã¯ãªããŸããã â»äŸãã°ãæ
å ±è§£æçšã«è²©å£²ãããŠããããŒã¿ããŒã¹ã®èäœç©ãåŠç¿ç®çã§è€è£œããå Žåãªã©ã ãšããäœãæžãã®æ¡ä»¶ãã èäœæš©è
ã®èäœç©ã®å©çšåžå Žãšè¡çªãããããããã¯å°æ¥ã«ãããèäœç©ã®æœåšç販路ãé»å®³ããããšãã芳ç¹ãããæçµçã«ã¯åžæ³ã®å Žã§åå¥å
·äœçã«å€æãããŸãã ãšã説æãããŠããŸããã ãœãããŠã§ã¢ãã¹ãã«ãããŠãAIéçºã»åŠç¿ãè¡ãããŠããŸãããå€ãã®äŒæ¥ã§ã¯èªç€Ÿã®éå»ã®ãã¬ããžããAIåŠç¿ãè¡ã£ãŠããããšãå€ãããã§ãã ç§ã®æå±äŒç€ŸïŒAGESTïŒã«ã€ããŸããŠããå
æ¥7æ11æ¥ã«AIæè¡ã®ç ç©¶éçºãè¡ããAGEST AI Lab.ãã®èšç«ãçºè¡šããããŠãããŸãã ãã¡ãã® ããŒã ããŒãž ã«æ
å ±å
¬éããŠãããŸãã®ã§ããåç
§ããã ããã°ãšæããŸãã ïŒïŒçææ®µéã«ãããå
¥åæ
å ±ã®èäœç© ïŒã€ç®ã«ãçæAIãå©çšããŠããŒã¿ãçæããæ®µéã«ããããå
¥åæ
å ±ãšãªããã®ã®èäœæš©ã«é¢ããåé¡ã説æãããŠããŸãã çµè«ãšããŠã¯ã çæAIå©çšã®æç¡ã«é¢ããããæ¢åã®èäœæš©åæ§ã®èãæ¹ãé©çšãããã ãšããããšã®ããã§ãã ã»ãããŒã§èª¬æãããŠããå
容ãšããŸããŠã¯ã ãå©çšããŠç»åçãçæããå Žåã§ããèäœæš©äŸµå®³ãšãªããåŠãã¯ã人ããå©çšããçµµãæããå Žåãªã©ã®ãéåžžã®å Žåãšåæ§ã«å€æãããŸãã AIçæç©ã«ãæ¢åã®èäœç©ãšã®ãé¡äŒŒæ§ãåã¯ãäŸæ æ§ããèªããããªãå Žåãæ¢åã®èäœç©ã®èäœæš©äŸµå®³ãšã¯ãªãããèäœæš©æ³äžã¯èäœæš©è
ã®èš±è«Ÿãªãå©çšããããšãå¯èœã§ãã ããã«å¯ŸããŠãæ¢åã®èäœç©ãšã®ãé¡äŒŒæ§ãåã³ãäŸæ æ§ããèªããããå Žåããã®ãããªAIçæç©ãå©çšããè¡çºã¯ã â æš©å©è
ããå©çšèš±è«ŸãåŸãŠãã ⡠蚱諟ãäžèŠãªæš©å©å¶éèŠå®ãé©çšããã âŠâŠã®ããããã«è©²åœããªãéããèäœæš©äŸµå®³ãšãªããŸãã ãšããããšã§ããã â» æååºã®èäœæš©ã»ãããŒããã¹ã 44ããŒãž ããæ²èŒ äžèšå
容ã®ãšãããç¹ã«AIã ãããšããããšã§ã¯ãªããæ¢åã®èäœæš©åæ§ã®èãæ¹ãé©çšãããŠããã ãšããããšã§ããã ãã ãçæAIå©çšãšããç¹ã§ãããšãç¹ã« çæç©ãäœæããããã®ããã¹ãã®å
¥åæ
å ±ã«ã€ããŠãããé¡äŒŒæ§ããäŸæ æ§ããåãããã ãšããç¹ã¯æ°ãã€ããå¿
èŠãããããã§ãã ïŒïŒçæAIã®çæç©èªäœã®èäœæš©ã®æç¡ ïŒã€ç®ã«ãçæAIã§çæããçæç©èªäœã«ãèäœæš©ã¯èªããããã®ãïŒããèäœè
ã¯èª°ã«ãªãã®ãïŒããšããåé¡ã説æãããŠããŸãã çµè«ãšããŠã¯ã AIãç¬èªã§åµåºãããã®ã¯èäœç©ã«ãªãããå©çšè
ã®åµäœæå³ãä»å
¥ããŠããå Žåã¯èäœç©ã«ãªãã ãšããããšã®ããã§ãã ã»ãããŒã§èª¬æãããŠããå
容ãšããŸããŠã¯ã AIãèªåŸçã«çæãããã®ã¯ã ãææ³åã¯ææ
ãåµäœçã«è¡šçŸãããã®ãã§ã¯ãªããèäœç©ã«è©²åœããªããšèããããŸãã ïŒäŸïŒäººãäœãæç€ºâ»ãäžããïŒåã¯ç°¡åãªæç€ºãäžããã«ãšã©ãŸãïŒ ãçæãã®ãã¿ã³ãæŒãã ãã§AIãçæãããã®ãâ»ããã³ããç ããã«å¯ŸããŠãäººãææ³ææ
ãåµäœçã«è¡šçŸããããã®ãéå
·ããšããŠAIã䜿çšãããã®ãšèªããããã°ãèäœç©ã«è©²åœããAIå©çšè
ãèäœè
ãšãªããšèããããŸãã ãšããããã«ããããŸã§ èäœç©ã¯äººã®ãææ³ãææ
ãªã©ãåµäœçã«è¡šçŸãããã®ãã§ãã ã®ã§ãããã«åœãŠã¯ãŸããªãå©ç𿹿³ãããŠããå Žåã¯èäœç©ã«ã¯è©²åœãããåœãŠã¯ãŸãå Žåã¯å©çšè
ã®èäœç©ãšããŠèããããããã§ãã ãã®èãæ¹ã¯äžã
ã«è峿·±ããäººã®ææ³ãææ
ãå
¥ã£ãŠããªããã°AIãçã¿åºãçæç©ã«ã€ããŠãããšãåµé æ§ãé«ããã®ã§ãã£ããšããŠãèäœç©ã«ãªãåŸããèäœè
ãããªãããšããã±ãŒã¹ãåºãŠããå¯èœæ§ããããŸãã ããšãåããããªçæç©ã ãšããŠãã ãAIç¬èªã§åµãåºãããã®ããšã人ã®åµäœæå³ãä»å
¥ããŠåµãåºãããã®ããšã§ã¯èäœç©ã®æç¡ãç°ãªãã ãšããããšã«ãªããŸãã äœãšèšããŸãããæ°ããæä»£ã«å
¥ã£ãŠããã®ã ããšæ¹ããŠèªèããæèŠã§ããã ãããã« çæAIãæ¥åå©çšããéã«ã¯ã©ã®ãããªããšã«æ³šæãã¹ãã ãããŸã§èäœæš©ã»ãããŒã®è§£èª¬å
å®¹ãæ¯ãè¿ããªãããèäœæš©ãçæAIã«ã€ããŠç¢ºèªããŠããŸããããçµå±ã®ãšããçæAIãæŽ»çšããŠæ¥åå©çšãè¡ã£ãŠããã«åœãã£ãŠã泚æããŠãããã€ã³ãããŸãšããŠãããŸãããã ã» ãã€ã³ãïŒã€ç®ïŒèäœç©ãšãªãåŸãã®ãã©ãã çæAIã®éçºã»åŠç¿æ®µéãçææ®µéãçæç©ã«ã€ããŠãèäœç©ã®å®çŸ© ã(a)ææ³åã¯ææ
ã (b)åµäœçã« (c)衚çŸãããã®ã§ãã€ãŠã(d)æèžãåŠè¡ãçŸè¡åã¯é³æ¥œã®ç¯å²ã«å±ãããã®ã ãšç
§ããåãããŠèäœç©ãšèŠãªããããã確èªããŠããããšãéèŠã§ãã ã» ãã€ã³ãïŒã€ç®ïŒèäœè
ã®æš©å©ã䟵害ããŠããªãã ïŒã€ç®ã®ç¢ºèªã§èäœç©ã§ãã£ãå ŽåãçæAIãå©çšããŠã³ã³ãã³ããçæããäžã§ãèäœæš©ã®äŸµå®³ã«è©²åœããªããã©ããã®ç¢ºèªãå¿
èŠãšãªããŸãã åºæ¬çã«ãæš©å©å¶éèŠå®ã以å€ã§ã®å©çšã¯èäœè
ã«èš±è«Ÿãå¿
èŠãšãªããŸããçæAIã®å©çšã§èäœè
ã®å©çãäžåœã«äŸµå®³ããŠããªãããšãèãæ¹ã®åºæ¬ãšãªããŸãã ä»åŸã®èäœæš©æ³ã®æ¹æ£ã«ã€ããŠããã§ãã¯ã倧å çæAIã«éãããæè¡ã®é²æ©ã«å¿ããŠèäœæš©æ³ãæ¥ã
æä»£ã«åãããŠæ¹æ£ãããŠããŸãã å
æ¥ã«æååºã§è¡ãããèäœæš©ã»ãããŒã®ããã«ãæè¡ã®é²æ©ã«å¿ããŠèãæ¹ãæŽçã»æ€èšããŠæç€ºããããæ³æ¹æ£ãæœè¡ãè¡ãããŠããŸãã æååºã§å
¬éãããŠããèäœæš©ããã¹ããçŸåšã¯ä»€å5幎床çãå
¬éãããŠããŠãå幎床ããèšèŒå
容ã®å€æŽç®æããããŸãã å
端æè¡ã«ã€ããŠã¯æ³æ¹æ£ã®æŽåé »åºŠãæ©ãã®ã§ãæååºãªã©ã®çºä¿¡æ
å ±ãæ³šèŠããŠããããšã倧åã ãšæ¹ããŠæããŸããã The post çæAIãšèäœæš©ã«ã€ããŠèãã first appeared on Sqripts .
ã¿ãªãããããã«ã¡ã¯ïŒãQAãšã³ãžãã¢ã®ããŒããã§ãã 9/22ã«JaSSTæ°æœãéå¬ãããŸãããïŒ JaSST ïŒ æ°æœã§ã®ãã€ããªããéå¬ïŒãªãã©ã€ã³ïŒãªã³ã©ã€ã³ïŒã®ãããåœåã¯æ¥åã®åããªã³ã©ã€ã³èŠèŽãã§ããã°ãšæã£ãŠãŸããããæ²ããããŒãã«åŒ·ãèå³ãæ±ãããããæ¥åã調æŽããŠæ°æœçŸå°åå ãããŠããŸããã ãQAã¹ãã«ã¢ã»ã¹ã¡ã³ããæŽ»çšããQAæšæºåãšQA人æè²æã ä»åã®æ°æœã®ããŒãããã¡ãã«ãªããŸãã ã¢ã»ã¹ã¡ã³ããšã¯ãã£ãããããšè©äŸ¡ãåæãšãã£ãé¡ã®æå³åããšãªããŸãã ã²ãšæåã®AGESTã§ã¯ãå圹å²ïŒè·åãªããè·èœïŒã«å¯ŸããŠã®å®çŸ©ã ãæ±ãããã圹å²ãæºããããšã ãšãããããªèšèŒãããã圹å²ã«å¯ŸããŠã®è§£éãå人ã§ç°ãªãããŸãäŒç€ŸãšããŠæšæºã¹ãã«ã®å®çŸ©ãææ§ãªéšåããã£ããããç®æãã¹ããã£ãªã¢ã«å¯ŸããŠã®ç éœãã¹ãã¹ãã«æç€ºãã§ããŠãªããã®ããããŸããã é æ¬¡job descriptionïŒä»¥äžJDïŒãæŽçããŠãããã®ã®ã圹å²ã«å¯ŸããŠæ±ããããã¹ãã«ããã¹ãã«ã«å¯ŸããåŸ
éãšãããã®ã¯ããããã®çµç¹ã§å€§ããç°ãªã£ãŠããŠãããã«æç¢ºãªè§£ã¯ãããŸããã çŸåšã圹å²ã«å¿ãããžã§ãå®çŸ©ãæã£ãŠããŠã»ããã¹ãã«ãè³æ Œãªã©ãéæèšèšäžã§ããããªããªãèªåã®æå±çµç¹å€ã®æ
å ±ãèãããšããæ©äŒãäžã
ã«çšã ãšæãããã£ããèãã®ã§ããã°çŸå°ã§çã®å£°ãèãããšæããæ°æœã«è¶³ãéã°ãããã£ãããšãªããŸããïŒ åºèª¿è¬æŒãšããŠãSqriptsã¹ã¯ãªãã¿ãŒã§ãã æ¹¯æ¬æ° ã«ããfreee瀟ã§ã®åãçµã¿ãèªã£ãŠããã ããŠãããŸãã è¬æŒå
容ã¬ããŒãã«é¢ããŠãæ
å ±ã®èª€èªèãæ¡å€§è§£éãèªèã®ãã€ã¢ã¹ãªã©ããããšfreee瀟ã«ãè¿·æããããããŠããŸãããšã«ãªããããªã®ã§ãå°è±¡ã«æ®ã£ãç®æã®æç²ãšããã«å¯Ÿããèªåã®èããAGESTã®æ¹åæ§ãåãäžããŠãããããšæããŸãã ååã®éããçè§£ããããã§ãèªå·±ã®ååã確ç«ãã QAã®çµéšããããšãã£ãŠããçµç¹ãéãã°æ ¹æ¬çãªéšåã§ã®ååã®éãã¯ãã æ¡çšãšããããŠãèªç€ŸãšããŠã®QAã確ç«ããå¿
èŠæ§ããã£ã ãã¡ãã¯ãŸãã«ãã®éããããããšæããŸããã èªåãæ¡çšé¢æ¥ã«æºããããšããããŸãããããã¯ã¯ã©ã€ã¢ã³ãæ§ãšMTGããæãæãããšããããŸãã ååãéãã°åãçšèªã䜿ã£ãŠããŠãäžèº«ã®æå³ãå
šãéãããšãããããªããšã¯å€ã
ããã®ã§ã ãã³ãã¥ãã±ãŒã·ã§ã³ãéããã ãç°æåã§ããããšããããšã倧åæã§èããã ãèªåã®äžã®ææšã»ãã®ããããã£ãããšåºããå¿
èŠãããã ãšãã£ããããªããšã倧äºã§ããããšæ¹ããŠæãããèšèã§ããã æãããã®ãæããªããã®ãåãåãã QA人æã®è²æã§å¿
èŠãªããšã¯ãäœãæããã®ããã©ããŸã§æããã°ããã®ããæããã«ããããš ïœ ãªã³ããŒãã£ã³ã°ã§è¡ãå
容ãšãOJTã§è¡ãå
容ãæç¢ºã«åãã ããã¯ãªãã»ã©ãªããšã AGESTã§ãå
¥ç€ŸåŸã®ãªã³ããŒãã£ã³ã°ã1ïœ1.5ãµæã§è¡ã£ãŠããŸããããªã³ããŒãã£ã³ã°ãå®éã«åããŠããªãã¡ã³ããŒã¯å®éã®ãªã³ããŒãã£ã³ã°ã§æç¢ºã«äœãã©ã®ç²åºŠãŸã§æããŠãããããšããããšãŸã§ã¯åãåããããŠãªããªããšã åºæ¬çã«ã¯çŸå Žã§å¿
èŠãããªå
容ããªã³ããŒãã£ã³ã°ã«å
¥ã蟌ãã§ããŸããããããŠãªã³ããŒãã£ã³ã°ã§ã¯æ±ããOJTã«ä»»ããïŒãã®ä»£ããå¿
ãOJTã§æ±ãããã¡ã³ããŒçè§£ãå¿
èŠïŒãšããããšã¯å¹æçã«ãªããã®ããããªããšåŒ·ãæããå
容ã§ããã ã¹ãã«ã©ããŒã®ããŒã«å®çŸ© ã¹ãã«ã©ããŒã®ããŒã«å®çŸ© ã¹ãã«ã©ããŒã«é¢ããŠã¯èªåãåèãã®åèªã§ããã ã©ããŒã¯æ¢¯åãæå³ããŠããã¹ãã«ã©ããŒãšãããšã¹ãã«ã®å°éæ§ããããŠããããã®ææšã ãã£ãªã¢ããã/ãã¹ãJDãšã¯ç°ãªãæé²ãå ±é
¬ãšã¯é¢é£ããªãçŽç²ãªã¹ãã«ãããã®ãããªãã®ãšãªããä»ã®èªåã®ã¹ãã«äœçœ®ãèšãããããªãã®ããšããçè§£ãããŠããŸãã ãžã¥ãã¢å±€ã®å®çŸ©ã¯ååéã®åæ©ã¯å
šãŠã§ããã¹ããããã«å±€ããã¯åœ¹å²ã«ç¹åããŠå°éçã«ã¹ãã«ã¢ããã§ããããã« ãã®å
容ã«é¢ããŠã¯ãAGESTã§ãåããããªèããããŠããŸãã ãªããªãAGEST QAéšéã§èããŠããJDã§ãããžã¥ãã¢å±€ã¯å
šãŠã®åçŽãçè§£ãããã®äžã§å°éæ§ã®ãããã¹ããšã³ãžãã¢ããã¹ããããŒãžã£ãŒããã¯ãã«ã«ãã¹ããšã³ãžãã¢ãªã©ã«åãããããã«èšèšããŠããã®ã§ãæ°ããªèгç¹ãåŸããããšããããšã¯ãããŸãããããã以äžã«å€§ããªå®å¿æãåŸãããããšããæãã«ãªããŸããã ã¹ãã«ã©ããŒã®è©äŸ¡è»žïŒèªç«æ§ freee瀟ã®èªç«æ§è©äŸ¡ãšããŠãããµããŒãããããããµããŒããå¿
èŠã ããåºæ¬ã¯ã§ãããããµããŒãäžèŠãã人ã®ãµããŒããã§ããããšããŠããããšã®ããšã§ããã ããããã䌌ãŠããèããããŠããå®å¿æãèŠããå
容ã§ãããå人çã«ã¯ test.sff ãå®ç Žé¢ã®èãæ¹ã«ããããæ¹åãæ¹è¯ãæ°èŠããã»ã¹ãçã¿åºãããšãã§ããããšãã£ããã®ãäžäœè©äŸ¡ãšããŠçœ®ããããšèããŠããŸãã ã¢ãŠãããããæšæºåãããšäººã®æµååã容æã«ãªã ããã¯èªç€Ÿãããã¯ããè€æ°ããåæç¹æããªããšããæãã匷ãå
容ã§ããã èªç€Ÿå
ã«è€æ°ãããã¯ãããããQAã®ã¢ãŠããããããããã¯ã暪æã§æšæºåããããšã§ãããã¯ãç§»åãããŠãèŠããªããããªãäžå®äžã®å¹æãèŠèŸŒãŸããããšããå
容ãšããçè§£ãããŠããŸããã第äžè
äŒç€Ÿã§ã¯ã¢ãŠããããã®å
容ã¯é¡§å®¢åŽã«äŸåããããšããããŸããïŒãããããã¹ãã«å¯Ÿããã€ã³ãããããŒã¿ã絶察çã«æšæºåãããªãïŒ ç¬¬äžè
æ€èšŒäŒç€Ÿã§ãèªç€Ÿãã©ãŒãããã§éçšããŠæ§ããªããã®ã¯æšæºåãè¡ã£ãŠããŸããã顧客ã«åãåãã顧客ããšã®äœå¶/èŠæã«å¯ãæ·»ãèšæ©å¿æŽã«å¯Ÿå¿ãã«ã¹ã¿ãã€ãºããŠãŠææãåºãããšããã®ã第äžè
æ€èšŒäŒç€Ÿãªãã§ã¯ã®é¢çœå³ãªã®ãããããªãããšãããããŠæããŸããã è©äŸ¡ãšã«ã«ãã£ãŒ ã»ãå¿ã«æ®ã£ãå
容ãšããŠã¯ 人äºè©äŸ¡ã¯ã¹ãã«ã©ããŒã§ã¯è¡ãããã¢ãŠãã«ã ã§è¡ã ã¹ãã«ã©ããŒã¯æ¡çšã«ã¯æŽ»çšããªããæ¡çšã¯ã«ã«ãã£ãŒãã£ãããéèŠ ãšããã®ãè©äŸ¡ãæ¡çšã«ãæºããç«å ŽãšããŠã¯ä»åŸãæèããŠèããã¹ãå
容ã ãªããšæã£ãŠããŸãã ä»åäžéšãèŠãããã ããã¹ãã«ã©ããŒã¯æç€ºããããšã§ãã¹ãã«ã®å®¢èгçåäžã®å¯èŠåïŒè©äŸ¡ãåŸ
éçŽçµãšãã£ããããªããšãèµ·ãããããã®ããªããšæããŸããã ææã«ããäŒç€Ÿè²¢ç® â ææãåºãããã®ããã»ã¹ããžã§ãå®çŸ© ããâ ããã»ã¹ãéæããããã®ã¹ãã« ããããâ ã¹ãã«ãç¿çããããã®ç ä¿®ããªã³ããŒãã£ã³ã°ãããã³åçš®è³æ Œå¥šå± ã®ãããªããšãåºæ¬ã§ããããšã ãŸããæ¡çšã«ãããŠãã¹ãã«ãçµéšã®ç¢ºèªãéèŠèŠããŠããæä»£ïŒåæ°å¹ŽåïŒã確ãã«èªåã«ããããŸããã®ã§ããã®2ã€ã¯èªåã®è¥ãæ£ããã£ããã«ãªã£ãã®ã§ã¯ãªãããªããšæã£ãŠãããŸãã ãŸãšã ä»åã¹ãã«ã©ããŒããfreee瀟ã§äœ¿çšãããŠãããã¹ããã£ãŒã¿çãå
·äœçãªãã®ãèŠããŠããã ããŸããããå®éã«äœãèãäœãæ§ç¯ãããã¯æå±çµç¹æ¬¡ç¬¬ã ãšæã£ãŠããŸãã freee瀟ã®äºäŸã¯ãããŸã§freee瀟ã«ãã£ãå
容ã§ãããæ¹¯æ¬æ°ãè¬æŒè³æåé ã§ ãçµç¹äœãã®åèã«ããŠãïŒã ãšèšèŒããŠããã®ã§ã倧äºãªã®ã¯äºäŸã100%åãæ¢ããã®ã§ã¯ãªãã ã¹ãã«ã¢ã»ã¹ã¡ã³ããæšæºåãªã©ãèããããšãã«ã«ãã£ãŒåœ¢æã«ãªãã ã«ã«ãã£ãŒãå®ãŸãããšã«ãã£ãŠæ¹éãæ¹åæ§ããã匷åºãªãã®ã«ãªãã ãããèªç€Ÿãã©ã³ãã«ãªã£ãŠããã ãšããããšããä»åã®ã«ã³ãã¡ã¬ã³ã¹åå ã§æã¡åž°ã£ãå
容ã«ãªããŸãã ãã®èªåã®èãããããŸã§èªç€Ÿã«ã«ãã£ãŒã«ããããèãæ¹ãå€ããšæããŸãã®ã§ã çæ§ãçµç¹äœããçµç¹ã®äžã§ã®åãæ¹ã®åèã«ããŠããã ããã°ãšæããŸãã ãŸãããAGESTã®ã«ã«ãã£ãŒã«èå³ãæ¹§ããããªããšããããŸããããæ°è»œã«ãåãåãããããŠããã ããã°ãšïŒïŒ The post ä»ããQAã¹ãã«ã¢ã»ã¹ã¡ã³ãã«ã€ããŠèããŠã¿ãïŒJaSSTæ°æœã¬ããŒãã«ãããŠïŒ first appeared on Sqripts .
ããã«ã¡ã¯ãèŠç¿ãããã³ããšã³ãžãã¢ã®ã±ããŽã§ãã ä»åã¯framer-motionã䜿çšããŠãReactïŒTypescriptã§ã«ã¬ã³ããŒã³ã³ããŒãã³ãã«æã®å€æŽæã®ã¢ãã¡ãŒã·ã§ã³ã远å ããæ¹æ³ã玹ä»ããŸãã ã¯ããã« ãŸãã宿ãããã®ãã玹ä»ããŸãã ïŒãã¬ãŒã æ°ã®åé¡ã§ã«ã¯ã«ã¯ããŠããŸãããå®éã¯ã¹ã ãŒãºã«åäœããŸãïŒïŒ å®è£
ããã§ã¯ã¢ãã¡ãŒã·ã§ã³ã®å®è£
ãããŠãããŸããã äœ¿çšæè¡ TypeScript: “^4.8.4â React: “^18.2.0â framer-motion: “^9.0.0â date-fns: “^2.29.3â ã¢ãã¡ãŒã·ã§ã³äœæåã®æºå ãŸããdate-fnsã䜿çšããŠä»¥äžã®ãããªã³ã³ããŒãã³ããäœæããŸããã import { addMonths, subMonths } from "date-fns"; import { useState } from "react"; import { Month } from "./Month"; import { CalendarHeader } from "./CalendarHeader"; export interface CalendarProps { date?: string; } export const Calendar = ({date}: CalendarProps) => { const currentDate = date ? new Date(date) : new Date(); const [month, setMonth] = useState(currentDate); const onNext = () => { setMonth(addMonths(month, 1)); }; const onPrev = () => { setMonth(subMonths(month, 1)); }; return ( <div> <CalendarHeader onNext={onNext} onPrev={onPrev} month={month} /> <Month month={month} /> </div> ); }; ã¢ãã¡ãŒã·ã§ã³ã®äœæ ãŸããã¢ãã¡ãŒã·ã§ã³ã®å®çŸ©ãè¡ããŸãã æãé²ãå Žåãšæãæ»ãå Žåã®2ã€ã®ãã¿ãŒã³ã®ã¢ãã¡ãŒã·ã§ã³ãšæçµçãªäœçœ®ã決ããŸãã æãé²ãå Žåã¯å³ãããæãæ»ãå Žåã¯å·Šããç§»åããŠããããã«èšå®ããæçµçã«0ã«ãªãããã«ããŸããã const variants = { enter: (isNext: boolean) => { return { x: isNext ? 100 : -100, opacity: 0, }; }, center: { x: 0, opacity: 1, }, }; ç¶æ
ã®äœæ æãé²ãã§ãããæ»ã£ãŠãããã®ç¶æ
ã管çããæã倿Žããã¿ã€ãã³ã°ã§ç¶æ
ãæŽæ°ããŸãã const [isNext, setIsNext] = useState<boolean>(); const onNext = () => { setMonth(addMonths(month, 1)); setIsNext(true); }; const onPrev = () => { setMonth(subMonths(month, 1)); setIsNext(false); }; ã¢ãã¡ãŒã·ã§ã³ã®é©çš ã¢ãã¡ãŒã·ã§ã³ãé©çšãããã³ã³ããŒãã³ãïŒä»åã¯Monthã³ã³ããŒãã³ãïŒã motion.div ã³ã³ããŒãã³ãã§å²ã¿ãã¢ãã¡ãŒã·ã§ã³ã®èšå®ãè¡ããŸãã import { motion } from "framer-motion"; ~~~ return ( <div> <CalendarHeader onNext={onNext} onPrev={onPrev} month={month} /> <motion.div key={month.toString()} custom={isNext} variants={variants} initial="enter" animate="center" transition={{ opacity: { duration: 0.2 }, x: { type: "spring", stiffness: 300, damping: 30 }, }} > <Month month={month} /> </motion.div> </div> ); custom ããããã£ã«æž¡ãã倿°ã¯ã variants ããããã£ã§æž¡ãã颿°ã®åŒæ°ãšããŠäœ¿çšãããŸãã initial ããããã£ã«ã¯æç»æã®ã¢ãã¡ãŒã·ã§ã³ã animate ããããã£ã«ã¯æç»åŸã®ã¢ãã¡ãŒã·ã§ã³ãèšå®ããŸãã transition ããããã£ã䜿çšããããšã§ãopacityã®é床ãx軞ã®ç§»åæ¹æ³ãªã©ãããŸããŸãªèšå®ãè¡ãããšãã§ããŸãã 詳现ãªèšå®ã«ã€ããŠã¯ã以äžã®ãªã³ã¯ã§ç¢ºèªã§ããŸãïŒ https://www.framer.com/motion/transition/ ä»åã¯xã®åãã« "spring" ã䜿çšããŠãå°ãåçºãããããªã¢ãã¡ãŒã·ã§ã³ã«èšå®ããŠããŸãã ååæç»æã®ã¢ãã¡ãŒã·ã§ã³ äžèšã®ãŸãŸã§ã¯ååã®ã«ã¬ã³ããŒæç»æã«æãå·Šããã¹ã©ã€ãã€ã³ãããããªã¢ãã¡ãŒã·ã§ã³ãçºçããŸãã ååã®ã¿ã¢ãã¡ãŒã·ã§ã³ãè¡ããªãããã«ããããã initial ããããã£ã«æ¡ä»¶åå²ã远å ããŸããã ~~~ <motion.div key={month.toString()} custom={isNext} variants={variants} initial={isNext === undefined ? "center" : "enter"} animate="center" transition={{ opacity: { duration: 0.2 }, x: { type: "spring", stiffness: 300, damping: 30 }, }} > <Month month={month} /> </motion.div> ~~~ å®æå³ import { addMonths, subMonths } from "date-fns"; import { motion } from "framer-motion"; import { useState } from "react"; import { Month } from "./Month"; import { CalendarHeader } from "./CalendarHeader"; const variants = { enter: (isNext: boolean) => { return { x: isNext ? 100 : -100, opacity: 0, }; }, center: { x: 0, opacity: 1, }, }; export interface CalendarProps { date?: string; } export const Calendar = ({ date }: CalendarProps) => { const currentDate = date ? new Date(date) : new Date(); const [month, setMonth] = useState(currentDate); const [isNext, setIsNext] = useState<boolean | undefined>(undefined); const onNext = () => { setMonth(addMonths(month, 1)); setIsNext(true); }; const onPrev = () => { setMonth(subMonths(month, 1)); setIsNext(false); }; return ( <div> <CalendarHeader onNext={onNext} onPrev={onPrev} month={month} /> <motion.div key={month.toString()} custom={isNext} variants={variants} initial={isNext === undefined ? "center" : "enter"} animate="center" transition={{ opacity: { duration: 0.2 }, x: { type: "spring", stiffness: 300, damping: 30 }, }} > <Month month={month} /> </motion.div> </div> ); }; æåŸã« framer-motionã䜿çšããããšã§ãç°¡åã«ã¢ãã¡ãŒã·ã§ã³ã远å ããããšãã§ããŸããã ã¢ãã¡ãŒã·ã§ã³ã远å ããã ãã§ãããæŽç·Žãããã³ã³ããŒãã³ãã«ãªããŸããïŒ framer-motionã䜿ãã°ãæ¯èŒçç°¡åã«è€éãªã¢ãã¡ãŒã·ã§ã³ãäœæã§ããŸãã®ã§ãããã«åŠç¿ãé²ããŠããããã¯ãå
ã§æŽ»çšã§ãããªãããªã³ã³ããŒãã³ããäœæããŠãããããšæããŸãã èªãã§ããã ããããããšãããããŸãããäœãåèã«ãªãã°å¹žãã§ãã The post framer-motionã§Reactã®ã«ã¬ã³ããŒã³ã³ããŒãã³ããå°ããªããã« first appeared on Sqripts .
ã客æ§ãšãµãŒãã¹ã®éã«ã¯æåœ¢ãç¡åœ¢ã®é£ç¶ããæ¥ç¹ãååšããŸãããã®æ¥ç¹ã®äžã€äžã€ãããŠãŒã¶ãŒã€ã³ã¿ãã§ãŒã¹ïŒUIïŒããšãããé£ç¶ããæ¥ç¹ãã客æ§ãã客æ§ã«é¢ããæ¹ã
ã«ããããèšæ¶ãææ
ãæ³ããšãã£ããã®ãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ïŒUXïŒããããã¯ã顧客äœéšããšåŒã³ãŸãã ããè¿å¹ŽãITæè¡ã®çºå±ã«ãã£ãŠUIã¯é«åºŠã«é²åããã客æ§ã®UXã倧å€ãªããã«ãªã£ãŠããŸããã äžåºŠãçŽ æŽãããäœéšãããã客æ§ã®æºè¶³åºŠã¬ãã«ãäžãããšããããŸã§äžæºãªã䜿ã£ãŠããã·ã¹ãã ããµãŒãã¹ã«æºè¶³ã§ããªããªããŸããç¹ã«WebãµãŒãã¹ãªã©ã¯ãã客æ§ãåãããã€ã¹ããåçš®ã®ãµãŒãã¹ãæ¢ã«ãäœéšãªãã£ãŠããããšãå€ãããæäŸããããµãŒãã¹ãã®ãã®ã§ã¯ãªãå
¥å£ã®ã¡ã³ããŒç»é²ãªã©å€ãã®ãµãŒãã¹ãšå
±éã®UIéšåã§ç«¶å以å€ã®ãµãŒãã¹ãšæ¯èŒãããŠããŸããµã€ããé¢ããŠããŸããšãã£ãæ®å¿µãªããšãèµ·ãã£ãŠããŸããŸãã ãŸãåå¯Ÿã«æ
£ã芪ããã ãµãŒãã¹ã®UIãæ¥ã«ãæãã¯äžæ¹çã«å€æŽãããŠããŸã£ãããšã«äžæºãåããã®ãµãŒãã¹ããé¢ããŠããŸããšãã£ãããšãèµ·ããŠããŸããŸãã æ¬èšäºã§ã¯ãã客æ§ã«äžæºãæ±ãããªããæŽã«ã¯æºè¶³ããã ããã·ã¹ãã ããµãŒãã¹ãæäŸãç¶ããããã«ç§ãã¡ã¯äœãããã°ããã®ããšããããšããäžç·ã«èããããšæããŸãã ãŠãŒã¶ããªãã£æ¹åã§å質æ¹åã¹ãã«ãäžãã 3 ã€ã®çç± ãçãããã·ã¹ãã ããµãŒãã¹ãæäŸããåŽã§ããã£ãããå ŽåããŠãŒã¶ããªãã£ãå
·äœçã«æèããã®ã¯ãã€ããã§ããããïŒ ãµã€ãã®çŽåž°çãå¹³åæ»åšæéã®ææšãæããããªãæïŒ UAT â»1 ã§ãŠãŒã¶ããªãã£ã«é¢ããåé¡ãå±±ã®ããã«ææãããæïŒã ããããã®ã³ã©ã ãèªãã§ãã ãã£ãŠããèªè
ã®æ¹ãªãã°ããã€ãæèããŠããããšãã£ãããæ¹ã倧åã«éããããŸããã ã§ã¯å
·äœçã«æ¹åãå³ãã®ã¯ãã€ããã§ããããïŒ å®ã¯ããŠãŒã¶ããªãã£ã®æ¹åã¯äŒç»ãèŠä»¶å®çŸ©å·¥çšããå§ãããšææ»ããå°ãªããçµç¹ãšããŠã®å質æ¹åã¹ãã«ãã©ãã©ãåäžããŠããåªããã®ã®åãçµã¿ãªã®ã§ãã ããã£ïŒãŠãŒã¶ããªãã£ãšãå¯çšæ§ã£ãŠéæ©èœèŠä»¶ã®äžã€ã ããããŠãŒã¶ããªãã£åäžã£ãŠå質æ¹åãã®ãã®ã§ã¯ïŒã éãèªè
ã®æ¹ã¯ãã®ããã«ãææãã ãããããããŸãããã§ããããããããŠãŒã¶ããªãã£æ¹åãåãäžããã®ã¯æ¬¡ã®3ã€ã®çç±ãããããã§ãã çç±â ãæ¹åããããè¯ããªã£ãããšãåããããã çç±â¡ãçµç¹å
šäœã§åãçµãããšãåºæ¥ã çç±â¢ã1/0(ã€ããŒã)ã§ã¯ãªã段éçã«æ¹åããŠããã â»1ãåç
§ã JUASãéæ©èœèŠæ±ä»æ§ã¬ã€ãã©ã€ã³ã 工倫ãåªåãåãã£ãŠãããããšäžå±€ããæ°ãåºãŸããã äžã€ãã€èª¬æããŠãããŸãããã ãŸãããçç±â ãè¯ããªã£ãããšãåããããããã§ããããã®çç±ã ãã§ãŠãŒã¶ããªãã£æ¹åã«åãçµãã¹ã䟡å€ãããçç±ã§ããå質ã®äžã«ã¯æ¹åããŠã广ãåããã¥ãããã©ããã©ã®ããã«è¯ããªã£ãã®ã説æãã¥ãããã®ããããŸãã äŸãã°ãä¿å®æ§ïŒæ§æç®¡çå¹ç â»2 ã0.5ãã0.6ã«ããããŸããããšèšããããäžãã£ãã®ãè¯ããæªããããé倿Œ¢ã«ã¯å€æãã¥ããã§ãããããšã³ããŠãŒã¶ãŒ5人äž3åãåœæããŠå
ã«é²ããªãã£ãç®æã5人å
šå¡å
ã«é²ããããã«ãªããŸããããšèããšè¯ããªã£ãããšãåãããããã§ãããã æ¹åãã¢ããŒã«ãããããšèšãæããŠãè¯ãã§ãããã人éãè€ãããããšããæ°ãåºãã®ã¯èªç¶ãªããšãæ¹åãããããªãã¢ããŒã«ããŠçµç¹å
ã§èªããããããäœããããšã³ããŠãŒã¶ãŒã«åã°ããããšæ¹åã®ã¢ãããŒã·ã§ã³ãåäžããŸãããããŠæŽã«è¯ãããããšããåååãšãªã奜埪ç°ãåãããã«ãªãã°èªäž»çã«æ¹åã«å±ãããã«ãªããŸãã â»2ãä¿å®æ§ïŒæ§æç®¡çå¹çïŒä¿å®äœæ¥ã«ãããåçš®è³æºïŒããã°ã©ã ãããã¥ã¡ã³ãã䜿çšããŒã¿ïŒDBãå«ãïŒïŒã®ããŒãžã§ã³ç®¡çã«ãããæ©æ¢°ç®¡çã®å®çŸå²åïŒ JUASãéæ©èœèŠæ±ä»æ§ã¬ã€ãã©ã€ã³ã ãã çµç¹ã®ã¿ããªãã客æ§ã®æ¹ãèŠãããšã§é£åž¯æã匷ãŸããŸã 次ã«ãçç±â¡ãçµç¹å
šäœã§åãçµãããšãåºæ¥ããã§ããããã¯ãŠãŒã¶ããªãã£ã®å®çŸ©ããäŒããããšåããããããããããŸããã ãŠãŒã¶ããªã㣠â»3 ãšã¯JIS Z 8520ã«ãããŸããšãç¹å®ã®ãŠãŒã¶ãç¹å®ã®å©çšç¶æ³ã«ãããŠïŒã·ã¹ãã ïŒè£œååã¯ãµãŒãã¹ãå©çšããéã«ïŒå¹æïŒå¹çåã³æºè¶³ã䌎ã£ãŠç¹å®ã®ç®æšãéæãã床åããããšå®çŸ©ãããŠããŸãã ã€ãŸãæ¹åãå³ãåã«ãã©ããã£ããŠãŒã¶ãŒãããã©ããã£ãç¶æ³ã§ããäœãç®æšã»ç®çã«ã䜿ã£ãå Žå䜿ããããã®ããæç¢ºã«å®çŸ©ããå¿
èŠããããŸãããããŠäžè¬çã«çµç¹ã®äžã§ã¿ãŒã²ãããŠãŒã¶ãŒãã¡ã€ã³ãŠãŒã¶ãŒã®æ
å ±ãå€ãæã£ãŠããã®ã¯äŒç»ãå¶æ¥ããŠãŒã¶ãŒå¯Ÿå¿éšéãšãã£ãæ¹ã
ã§ãã ãšãªãã°ããŠãŒã¶ããªãã£ã®å¹æçãªæ¹åã«ã¯ãéåžžéçºãšå蚌éšéã®ãããæ©èœã«ãã£ãŠã¯éãããããŒã ã®ã¿ã人ç¥ããé 匵ã£ãŠãããšãããå€ãã®éšéãå·»ã蟌ãã§åãçµãããšãåºæ¥ãŸãã ããªããæäŸããããšããŠããã·ã¹ãã ããµãŒãã¹ãåºå¹¹ã·ã¹ãã ã®å Žåãçµçãç·åãšãã£ãéšéã®æ¹ããŠãŒã¶ãŒã®ä»£ããã«åé¡ç¹ãèŠã€ããŠãã ãããããããŸããã ç¹èš±é¢ä¿ã§ããããåãã®ç¡ãã£ãæ³åéšéã®æ¹ããã¿ãŒã²ãããŠãŒã¶ãŒã®ãã«ãœãã«ããã¿ãªãããããŸããã ãããšãé¢ãã£ãæ¹ãã¡ãæ¹åé
ç®ã®é²æãæ°ã«ãããŠãã ããããã«ãªããŸããèªåãããè²ã
ãšçŽæ¥äŒºãããšãå¢ãããåéšçœ²ãžæ
å ±çºä¿¡ããããããããšãèªç¶ãšè¡ãããŠãããŸãã 倿§ãªæ¹ãé¢ãã£ãŠãã ããã°ãã ããã»ã©æ°ã¥ãã®æ©äŒãå¢ããŸãããã«ããŒã§ããç¯å²ãåºããªã£ãŠãããšæããŸãããïŒ ãã®ä»ã®å質é
ç®ãæ¹åã«ã¯è²ã
ãªéšéããã®ååãä»°ãå¿
èŠããããŸããããããã£ãååãä»°ãåã«ã倧ããªè² æ
ãçžæã«æããæ°è»œãªãé¡ãã§ãããã¯ãŒã¯ãç¯ããŠããããã£ã³ã¹ãäœã£ãŠãããç¹ã¯ãŠãŒã¶ããªãã£æ¹å掻åã®åŸé£ãå©ç¹ã§ãã â»3ãåç
§ãJIS Z 8521ïŒ2020ã人éå·¥åŠâ人ãšã·ã¹ãã ãšã®ã€ã³ã¿ã©ã¯ã·ã§ã³â ãŠãŒã¶ããªãã£ã®å®çŸ©åã³æŠå¿µ ã¹ã¢ãŒã«ãµã¯ã»ã¹ãå質æ¹å掻åãžã®è¯å®æãã©ãã©ãé«ããŸã æåŸã®çç±ã¯ã段éçã«æ¹åããŠããããç¹ã§ãã å人çãªææŠã«ãããŠãåããã倧ããªæåãç®æšã«æ²ãããå°ããªç®æšãæ²ããŠæåäœéšãç©ã¿éããŠãã£ãæ¹ããç®æšéæçãé«ãããšèããããšã¯ãããŸãããïŒããã¯çµç¹ã§ã®æ¹åã§ãèšããäºã§ãã ãããŠãŠãŒã¶ããªãã£ã¯ã广ïŒå¹çåã³æºè¶³ã䌎ã£ãŠç¹å®ã®ç®æšãéæãã床åãããªã®ã§ãéæãããã§ããªãã£ããã®1/0(ã€ããŒã)ã§ã¯ãªããæ¹åã®ã¹ããããæ®µéçã«èšå®ããããšãå¯èœã§ãã çãæéã§å°ããªæ¹åã瀺ãããšã«ãã£ãŠããªããããªãã®ããŒã ãã·ã¹ãã ããµãŒãã¹ã確å®ã«ãå€ãã£ãŠããããè¯ããªã£ãŠããããšããå°è±¡ãšä¿¡é Œãåšãã«æããŠããã ãããšãåºæ¥ãŸãã ãããšä¿¡ããããªããããããŸãããããã®ä»ã®æ¹å掻åãè¡ãéãããã®äººã¯ããã®ããŒã ã¯ãæèšå®è¡ã®å®çžŸããããããããããããããšæã£ãŠå¿«ãååããŠãããããšãå¢ããŠããã®ã§ãã ã客æ§ã«äžæºãæ±ãããªããæŽã«ã¯æºè¶³ããã ããã·ã¹ãã ããµãŒãã¹ãæäŸãç¶ããã«ã¯ã客æ§ãžã®æ·±ãçè§£ãšäžæã®å質åäžãå¿
èŠã§ããããããå
宿ãšå
±ã«å®æœã§ããã®ãããŠãŒã¶ããªãã£æ¹åããšããåãçµã¿ã§ãã æ¯éçãããããŠãŒã¶ããªãã£æ¹åãããå質æ¹åãå§ããŠã¿ãŸãããïŒ The post ããŠãŒã¶ããªãã£ãåŸåãã«ãªã£ãŠããŸãããïŒâ å質æ¹åã¹ãã«åäžã«ã圹ç«ã€ããŠãŒã¶ããªãã£ãã¹ããããçŽ¹ä» first appeared on Sqripts .
ãã®é£èŒã¯ãç»å ŽããŠ20幎ãéããæçæãè¿ãã€ã€ãããã¢ãžã£ã€ã«éçºãã解説ããŸããã¢ãžã£ã€ã«éçºã«ã€ããŠã¯ãäžã®äžã«ããããã®æžç±ãæ
å ±ãããµããŠããŸãããã¢ãžã£ã€ã«ã³ãŒããšããŠ10幎以äžã®çŸå Žçµéšãããšã«ããããããŠåŠã³çŽãããæ
å ±ãäžå¿ã«ãŸãšããŠãããŸãã 第9åç®ã®ããŒãã¯ãããšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã°ïŒXPïŒãã§ãã ãã®å
容ã¯Udemyã§å
¬éããŠãããªã³ã©ã€ã³ã³ãŒã¹ã çŸåœ¹ã¢ãžã£ã€ã«ã³ãŒããæããïŒåæ¥ã§çè§£ã§ããã¢ãžã£ã€ã«éçºãšã¹ã¯ã©ã å
¥éç·š ãã®å
容ãå
ã«ããŠããŸãã 䟡å€ã»ååã»ãã©ã¯ãã£ã¹ XPã®è©±ãããåã«ã䟡å€ã»ååã»ãã©ã¯ãã£ã¹ã解説ããŸããã¹ã¯ã©ã ãXPã®ããã«ãäžã®äžã«ã¯ããŸããŸãªéçºææ³ããããŸãããããããã®ææ³ã«ã¯äŸ¡å€ã»ååã»ãã©ã¯ãã£ã¹ãå®çŸ©ãããŠãã±ãŒã¹ãå€ãã§ããããããã©ããã£ãæå³ãæã€ã®ããèŠãŠãããŸãããã ãŸãã䟡å€ãšã¯ããäœãèããäœãè¡ãã®ãã倿ããã®ã«äœ¿çšããåºæºãã§ããéçºææ³ãæã€äŸ¡å€èгãªã®ã§ãéçºææ³ã倧åã«ããŠããããšã䟡å€ãšããŠãŸãšããããŠããŸãããã®äŸ¡å€ãããããšã§ãéçºææ³ãå©çšãã人ã¯ããèªåãã¡ã¯ããã®éçºææ³ã®äŸ¡å€ãæºãããŠããã ãããïŒããšå€æãã§ããŸãã 䟡å€ã¯ãµãããããèšèã«ãªãã®ã§ããããã©ããã£ãããã®äŸ¡å€ãå®çŸã§ããã®ãïŒããããã«ãããšæããŸããããšãã°ãã¢ãžã£ã€ã«ãããã§ã¹ãã®äžäŸãããããšããå人ãšå¯Ÿè©±ãããšãã䟡å€ããããŸããããããã©ãå®çŸããã°ãããïŒ ããã ãã§ã¯ãããŸã§ããããŸããã ãŸãã䟡å€ã ãã ãšééã£ã倿ã«ãªã£ãŠããŸãå¯èœæ§ããããŸããããšãã°ãã¢ãžã£ã€ã«ãããã§ã¹ãã ãšã³ãã¥ãã±ãŒã·ã§ã³ã«äŸ¡å€ã眮ããŠãŸããããã³ãã¥ãã±ãŒã·ã§ã³ãéèŠããããã1000ããŒãžã®ããã¥ã¡ã³ããæžããïŒããšãªããšãããã¥ã¡ã³ãäœæã«æéãããããããŠãã¢ãžã£ã€ã«ãªéçºãšã¯èšããŸãããããã§ç»å Žããã®ãååã§ãã ååã¯ã䟡å€ãšãã©ã¯ãã£ã¹ãæ¯ããæ©ã®ãããªååšã§ããååã¯ããå
·äœçãªæéããªã®ã§ãå
·äœçã«äœãããã°ããããããããããã®ã«ãªã£ãŠããŸãã ã¢ãžã£ã€ã«ãããã§ã¹ãã®ååãèŠãŠã¿ããšã顧客æºè¶³ãæåªå
ãã䟡å€ã®ãããœãããŠã§ã¢ãæ©ãç¶ç¶çã«æäŸããŸãããšããã®ããããŸãããã®ååãå®ã£ãŠã䟡å€ãå®çŸããŠããããšãããã®ã§ãã å
çšã®äŸã«ã§ãŠããã1000ããŒãžã®ããã¥ã¡ã³ããæžããïŒãã®å Žåãããã§ã€ã¹ã»ãã¥ã»ãã§ã€ã¹ã§è©±ããããããã·ã³ãã«ãïŒã ããªãäœããéãæå€§éã«ããããšïŒãæ¬è³ªã§ãããšããååã«ãããããŸããããããããªãã®ã§ã䟡å€ãæºãããªãå¯èœæ§ã®ããã¢ã¯ã·ã§ã³ã ãšæ°ãã€ããŸãã ãã©ã¯ãã£ã¹ã¯ã䟡å€ãžãšåããååãããå
·äœçã«ãããã®ã§ããã¢ãžã£ã€ã«ãã©ã¯ãã£ã¹ãšãåŒã°ããŸãããã©ã¯ãã£ã¹ã«ã¯ãå®è¡ãããç·Žç¿ãããç¿æ
£ããšããæå³ããããã¢ãžã£ã€ã«éçºã ãšãã¢ãžã£ã€ã«ã«ãªãããã®ç¿æ
£ããšãã衚çŸããµãããããããããŸãããã¢ãžã£ã€ã«ãã©ã¯ãã£ã¹ãããã°ã¢ãžã£ã€ã«éçºã«ãªãïŒãšã¯ããããŸããããå°ãªããšã䟡å€ãžãšç¶ãæ©ã®ãããªååšã«ãªããŸã ãšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã° XPã®èæ¡è
ã®ã±ã³ãã»ããã¯ããã¯ãJavaãšã³ãžãã¢ã§ããã°èª°ããç¥ã£ãŠããã§ããããã¹ããã¬ãŒã ã¯ãŒã¯ãJUnitããéçºããã²ãšãã§ãã XPã¯ã䟡å€ã»ååã»ãã©ã¯ãã£ã¹ã«åãããŠè§£èª¬ãããŠããŸããXPã¯ãã³ãã¥ãã±ãŒã·ã§ã³ãããŒã éå¶ã ãã§ãªããå
·äœçãªãšã³ãžãã¢ãªã³ã°ãã©ã¯ãã£ã¹ãæã£ãŠããã®ã§ãéçºè
ã®æ¹ã§ããã°å
±æããããå
容ã«ããªã£ãŠããŸãããã ããšã¯ã¹ããªãŒã ãšããã ããããæ¥µç«¯ãªãã©ã¯ãã£ã¹ãå€ãããã¢ããã°ã©ãã³ã°ãªã©ãè³åŠäž¡è«ãåŒã¶ãã©ã¯ãã£ã¹ã倿°ãããŸãã XPã解説ããæžç±ã¯ã第1çãåºã5幎åŸã«ç¬¬2çãç»å ŽããŸããã第2çã¯å
容ãä¿®æ£ã»è¿œèšãããŠããŸããå¯é¡ãå€ãã£ãŠããã第1çã§ã¯ããœãããŠã§ã¢éçºã®ç©¶æ¥µã®ææ³ãã ã£ãã®ããå€åãåãå
¥ãããã«ãªã£ãŠããŸããããã§ã¯ãæå
ã«ãããšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã°ç¬¬2çã XPãšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã°å
¥éâå€åãåãå
¥ãã ãã䜿ã£ãŠèª¬æããŠããŸãã ãŸãã¯ãXPã®äŸ¡å€ãé ã«èŠãŠãããŸããããXPã®äŸ¡å€ã¯5ã€ãããŸãã XPã®äŸ¡å€ XPã®äŸ¡å€ïŒ ã³ãã¥ãã±ãŒã·ã§ã³ ã²ãšã€ç®ã®äŸ¡å€ã¯ãã³ãã¥ãã±ãŒã·ã§ã³ãã§ããæžç±ã§ã¯ããã£ãšãéèŠããšãããŠããŸãã XPã®çã¿ã®èŠªã§ããã±ã³ãã»ããã¯ããããå®éã®ä»äºã«ãããŠã顧客ãšã®ãããšããããŸãããã倱æãããããžã§ã¯ããå€ãèŠãŠãããããã³ãã¥ãã±ãŒã·ã§ã³ããã£ãšãéèŠèŠããããã«ãªã£ããšããéžè©±ããããŸãã XPã«éãããã¢ãžã£ã€ã«éçºå
šè¬ã«ãããŠãããŒã ã®æèãé«ããå¹ççãªååé¢ä¿ãçã¿åºãããã«ã¯ãã³ãã¥ãã±ãŒã·ã§ã³ã¯å¿
é ã®äŸ¡å€ãšãèšããŸãã XPã®äŸ¡å€ïŒã·ã³ãã«ã 2ã€ç®ã¯ãã·ã³ãã«ããã§ãã ã·ã³ãã«ãã¯ãéçºããã·ã¹ãã ã§ãã£ãããåé¡ã課é¡ã®è§£æ±ºçã§ãã£ãããããŸããŸãªãã®ã«é©çšã§ãã䟡å€èгã§ããç§èªèº«ããè¥æãšã³ãžãã¢ãè²æãããšãã¯ãã140æå以å
ã§å ±åãããŠã¿ããããšããããããã£ãšãã·ã³ãã«ãªæ¹æ³ã ãããïŒããšãã£ã話ãæèããŠããŠããŸãã ãã¡ãããè€éãªã·ã¹ãã ãå¿
èŠã§ãããããéçºæŽ»åãéçºããã·ã¹ãã ããã³ãã¥ãã±ãŒã·ã§ã³æ¹æ³ããã§ããã ãã·ã³ãã«ãªæ¹ããããã·ã¹ãã ã«è¿ã¥ããããã«æããŸãã XPã®äŸ¡å€ïŒ ãã£ãŒããã㯠3ã€ç®ã¯ããã£ãŒãããã¯ãã§ãã å®ç§ãªã·ã¹ãã ãéçºããã®ã¯ãšãŠãé£ããããšã§ããããšããå®ç§ã«ãªã£ããšããŠããæéã®æµããäžã®äžã®å€åã«ãã£ãŠããããããäžå®å
šã«ãªã£ãŠããŸããŸãã ãã ãå®ç§ãç®æããŠããå§¿å¢ã¯ãšãŠã倧åã§ããèªåã®åã ãã§å®ç§ã«ãªããã°ããã§ããããã£ãŒãããã¯ãããã°ããã¯ããå®ç§ã«è¿ã¥ããã§ããããååãªæ¹åãè¡ãããã«ã¯ãããŸããŸãªãšãããããã£ãŠãããã£ãŒãããã¯ãéèŠã«ãªããŸãã ãŸããã¢ãžã£ã€ã«éçºã«åãçµãã®ã§ããã°ããã£ãŒãããã¯ã«æ
£ããŠããã®ãå¿
èŠã ãšæããŸããããšãã°ãã³ãã¥ãã±ãŒã·ã§ã³ãéèŠããã¢ãžã£ã€ã«éçºã§ã¯ããã£ãŒãããã¯ããããã ãã§ãªããããªãããããã£ãŒãããã¯ãäžããã±ãŒã¹ãå€ããªãã¯ãã§ãããããã£ãŒãããã¯ãããç¿æ
£ã身ã«çããŠãããšè¯ãã§ãããã ãããŠããã£ãŒãããã¯ã«ã¯ããžãã£ããªãã®ãããã°ããã¬ãã£ããªãã®ããããŸãããã¬ãã£ããªå Žåã§ããã©ãããã°ãããªãã®ãïŒ ããžãã£ãã«çžæãšã³ãã¥ãã±ãŒã·ã§ã³ãåã£ãŠããå¿
èŠããããŸãã ãã¬ãã£ããªãã£ãŒãããã¯ã¯ã誰ããããã«åãå
¥ãããããã®ã§ã¯ãªãã§ããããçžæãæ°é£ã£ãŠæ¬åœã®ãã£ãŒãããã¯ãé¿ããŠããŸãæ°æã¡ãããããŸãã ããããå°æ¥ã®å®ã«ãªããããããªããã£ãŒãããã¯ãäžããããªããåãåããªãç°å¢ã¯å¥åº·çãªç°å¢ãšã¯èšããŸããããã¬ãã£ããªå
容ã§ãã£ãŠããããŒã ã§è©±ããã話ãåãããããããããŒã ãç®æããŠã¿ãŠã¯ã©ãããšæããŸãã XPã®äŸ¡å€ïŒ åæ° 4ã€ç®ã¯ãåæ°ãã§ãã ãã£ãŒãããã¯ã§ãæžããŸããããçå®ãäŒããåæ°ãæ°ãã解決çãæ¢ãåæ°ãªã©ãéçºã®ãªãã§æ§ã
ãªåæ°ãæ±ããããŸãããµããããã§ãåæ°ãæã£ããã£ã¬ã³ãžãèããŠãããŸãã ã¢ãžã£ã€ã«éçºã§ã¯ãã©ãã©ãå€åãåãå
¥ããŠãããããåæ°ãæã£ã察å¿ããšãŠãéèŠã§ããããã§ãªããã°ãæ°ãããã£ã¬ã³ãžãã§ããªãã£ãããã§ããããšã ããã£ãŠããŸã£ããããŠããã®çµæãæ¹åãé²ãŸãªããªããããªãã ãããŸããããªãããšãªã£ãŠããŸãã§ãããã å人çã«ã¯ããããªããããã®ã§ããã°ã©ãã©ããã£ã¬ã³ãžããŠã»ãããšæããŸãããã©ãã ãå¿é
ã§ãã£ãŠããäœæ¥å
šäœã®20ïŒ
ãããã¯ãã£ã¬ã³ãžãå
¥ããŠãããªããšãçŸå Žãè¯ããªã£ãŠããäœæãåŸããã«ããã®ã§ã¯ãªãããšæããŸãã XPã®äŸ¡å€ïŒ å°é æåŸã¯ãå°éãã§ãã æžç±ã«ã¯ãããããŸã§ã®4ã€ã®äŸ¡å€ã®èåŸã«ããã®ãå°éããšãããŸããç¶ãããšããœãããŠã§ã¢éçºã§äººéæ§ãšçç£æ§ãåæã«æ¹åããã«ã¯ãããŒã ã«ãããå人ã®è²¢ç®ãå°éãããã¹ãããšæžãããŠããŸãã ã¢ãžã£ã€ã«éçºã§ã¯ãã³ãã¥ãã±ãŒã·ã§ã³ãéèŠããŸããã³ãã¥ãã±ãŒã·ã§ã³ã¯ã²ãšãã§ã¯ã§ããªããã®ã§ããçžæã«å¯Ÿããå°éã§ãã£ãããæ¬æã§ãã£ãããããã³ãã¥ãã±ãŒã·ã§ã³ã«å¿
èŠãªäŸ¡å€ã¯ãã¢ãžã£ã€ã«éçºã§ãªããšãæã£ãŠãããããã®ã ãšæããŸãã é£èŒäžèЧ 第1åïŒã¢ãžã£ã€ã«éçºã®éå»ãçŸåšãæªæ¥ãç¥ããïŒ ç¬¬2åïŒå£°ã«åºããŠèªã¿ããã¢ãžã£ã€ã«ãããã§ã¹ã 第3åïŒåŸæ¥åéçºãšã¢ãžã£ã€ã«éçºã®éãããã®ïŒ 第4åïŒåŸæ¥åéçºãšã¢ãžã£ã€ã«éçºã®éãããã®ïŒ 第5åïŒã¢ãžã£ã€ã«éçºã®ãããã誀解ãè§£ããŠãããïŒ ç¬¬6åïŒäžçäžã§å€§äººæ°ã®ç§å¯ã«è¿«ãïŒã¹ã¯ã©ã ã䜿ã£ããœãããŠã§ã¢éçº ç¬¬7åïŒãããããã§ãããã«ããã¹ã¯ã©ã ããŒã ã®è²¬ä»» 第8åïŒã¹ã¯ã©ã ã€ãã³ãã®å®è·µæ¹æ³ 第9åïŒãšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã°ãšãã®äŸ¡å€ The post 第9å ãšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã°ãšãã®äŸ¡å€ first appeared on Sqripts .
ããã«ã¡ã¯ãQAã³ã³ãµã«ã¿ã³ãã®ãããã§ãã åçªéããŸããç§ããããJISïŒæ¥æ¬ç£æ¥èŠæ ŒïŒJapanese Industrial StandardsïŒã倧奜ãã§ãã ã客æ§ã®ãããã¯ãå質ãããã»ã¹å質ã®èª²é¡ã«å¯ŸããŠäœãåºæºã¯ç¡ãããå®çŸ©ãå顿³ã¯ç¡ãããšæ¢ããšäœãããã®JISã«è¡ãåœããã®ã¯æ¬åœã«ãããããšã ãšæããŸãããããªJISã®ããããã®å¶å®ã«çµ¡ãã§ããã°ãã£ãšåŠè¡çãªè©±ãè£è©±ã®äžã€ãã§ãããããããŸããããããã¯ãããŸã§å©çšè
åŽã®ããããJISã®äžã€ã²ãšã€ãéã«äŸããŠããããªããšã(æžããŠ)ãã£ããããããªããšãèŠã€ããããšãã£ãããšããæ°æ¥œãªéè¡ã®ããšãæžãé£ããŠåããããšæããŸãã ããŠãåããŠã®ãããœã¯ JIS Z 8520:2022ã人éå·¥åŠïŒäººãšã·ã¹ãã ãšã®ã€ã³ã¿ã©ã¯ã·ã§ã³ïŒã€ã³ã¿ã©ã¯ã·ã§ã³ã®ååã ããããããšæ¥œããã§ãŸãããããšæããŸãã ã©ããçããŸãã¡ãã£ãšããæ°å転æãšããŠãã®JISãããœã«ãæ°æ¥œã«ãä»ãåãã®çšããããªã«é¡ãå¥ããŸãã ä»åã®JIS JIS Z 8520:2022ã人éå·¥åŠïŒäººãšã·ã¹ãã ãšã®ã€ã³ã¿ã©ã¯ã·ã§ã³ïŒã€ã³ã¿ã©ã¯ã·ã§ã³ã®ååã ãšã¯ ãã®èŠæ Œã¯ããããAGESTã§æ
åœããŠãããUI/UXåäžæ¯æŽãµãŒãã¹ããšæ·±ãããããããããŸãã衚é¡ã«ããããã«ã人ãšã·ã¹ãã ïŒãµãŒãã¹ã§ãã£ããããããã¯ãã§ãã£ããïŒãšã®éã§ã®ãããšã(ã€ã³ã¿ã©ã¯ã·ã§ã³)ãã©ãããã°ãããã«ã€ããŠãååãå
·äœçãã€è±å¯ãªäºäŸãæ·»ããŠãŸãšããããŠããŸãã ã€ã³ã¿ã©ã¯ã·ã§ã³(Interaction)ïŒçžäºäœçšïŒçžäºã®åœ±é¿ Weblioè±åèŸå
ž ãªãããã®JISãéžãã ã®ã ãæ°ãããŠããäŸãè±å¯ã§ããã«ããŽãªåé¡ãæããããšäžæåæã£ãŠããã®ã§ããŠãŒã¶ããªãã£ãè©äŸ¡ããéã«äœ¿ããããç¹ããUIãUXãæ€èšãããããšããæ¹ã«ãšã£ãŠåœ¹ç«ã€ãšæã£ãããã§ãã ãæ°ãããæ¬JISã¯æ¹èšã2022幎ã§ããäžã€åã®çã§ã2008幎æ¹èšãªã®ã§æ°ããèŠè§£ãçã蟌ãŸããŠããããšãæåŸ
ã§ããŸãã ãäŸãè±å¯ãåŸã§è©³ããè¿°ã¹ãããšæããŸãããªããš141ãã®äŸã瀺ãããŠããŸãã ãã«ããŽãªåé¡ãæãããã¬ãŒããŒãã£ãŒãã«ããæã«åœ¢ã®éããåããããã7ã«ããŽãªãšããæãè²·ãã ãšæã£ãŠããŸãã éè¡ ãŸããããåºæ ãŸãããã¯8è¡ãååã§ãäžè¬ç€Ÿå£æ³äººäººéå·¥åŠäŒããšãäžè¬è²¡å£æ³äººæ¥æ¬èŠæ ŒåäŒããåæ¡ãåºãããšèšèŒãããŠããŸãããããšJIS Z 8520:2008ããã®æ¹èšã§ããããšãåŸå4è¡ã§ç€ºãããŠããããã®èŠæ Œãèäœæš©æ³ã§ä¿è·å¯Ÿè±¡ã«ãªã£ãŠããäºã
ãã¯éèŠãªããšã§ããã©ã®JISã§ãèšèŒãããŠããã¯ããªã®ã§ãå®è³ªååã®4è¡ããã®èŠæ Œã®åæžããšãã£ãŠããã§ãããã ãã£ãããããŸããããšæ¬æã«ãããè±å¯ãªäŸãšã®å¯Ÿæ¯ã«ã¡ãã£ãšã°ããšæ¥ãŠããŸããŸãã 1ç« ãé©çšç¯å² ãå®å
šãéèŠããã·ã¹ãã ãå
±åäœæ¥ã人工ç¥èœãªã©ã®äžéšã®å¿çšæè¡ã«ã¯é©çšããªãããã®ã®ããã以å€ã®å
šãŠã®ã€ã³ã¿ã©ã¯ãã£ãã·ã¹ãã ã«é©çšå¯èœãšæžããŠããããšãããåãããšãããããªãé©çšç¯å²ã®åºãèŠæ Œã§ãã ãŸãã察象ïŒå©çšè
ïŒãèŠæ±ä»æ§ã«é¢ä¿ãããšã³ãžãã¢ãUIé¢ä¿ã®èšèšè
ãè©äŸ¡è
ã ãã§ãªã䜿ãããã補åã調éããããšãã賌å
¥æ
åœè
ã䜿ãããšããããšãæžããŠãããŸãã 確ãã«ãã€ã³ã¿ã©ã¯ãã£ãã·ã¹ãã ã䜿ããããããããšæãæ¹ãã䜿ãããããäœããã®åœ¢ã§è©äŸ¡ããæ¹ã«äœ¿ã£ãŠããã ãããèŠæ Œã§ãã 2ç« ãåŒçšèŠæ Œ ããã®èŠæ Œã«ã¯ãåŒçšèŠæ Œã¯ç¡ãããšèšèŒãããŠããŸããã€ãŸããã®èŠæ Œåç¬ã§å©çšããããšãåºæ¥ãããã§ãæ¬æã®è±å¯ãªäŸãçžãŸã£ãŠUI/UXæè²ã«äœ¿ããããã®ã§ã¯ãªãã§ããããã 3ç« ãçšèªåã³å®çŸ© ããã§ã¯11ã®çšèªãå®çŸ©ãããŠããŸããããããç¹ã«çç®ããã®ã¯3.8é
ã§å®çŸ©ãããŠããããŠãŒã¶ãã«ã€ããŠUI/UXè©äŸ¡ã§ã®è§£éãæç¢ºã«ããããã«ã3.8AããŠãŒã¶ãšã³ã²ãŒãžã¡ã³ããã远å ãããã詳现ã«å®çŸ©ãããŠããç¹ïŒãã®å®çŸ©ãå«ãããš12åã®çšèªãå®çŸ©ãããŠããããšã«ãªããŸãïŒã ããšã³ã²ãŒãžã¡ã³ããã¯è±èªã§ã¯äžè¬çšèªã ããã§ãããæ¥æ¬èªã ãšãå©çŽãã®æå³ããŸã 匷ããããã§å®çŸ©ãããŠãããã€ã³ã¿ã©ã¯ãã£ãã·ã¹ãã ããŠãŒã¶ãšã·ã¹ãã ãšã®ã€ã³ã¿ã©ã¯ã·ã§ã³ã®ç¶ç¶ãä¿ããåæ©ä»ãããããªæ©èœåã³æ
å ±ãæäŸããããšããšããæå³ã¯ãã£ããããªããããªæ°ãããŸãã ãã ããã®ããŠãŒã¶ãšã³ã²ãŒãžã¡ã³ããã®èãæ¹ãçã蟌ãŸããŠããããšã«ãã£ãŠããã®èŠæ ŒãUX(ãŠãŒã¶ãšã¯ã¹ããªãšã³ã¹)ã®èšèšãè©äŸ¡ã«ã䜿ããããã«ãªã£ãŠããã®ã§ãããããçšèªãšããŠå®çŸ©ãããŠããã®ã¯ãã®èŠæ Œã®è¯ãç¹ã®äžã€ã ãšæã£ãŠããŸãã ãã®ä»ããã¢ã¯ã»ã·ããªãã£ããå©çšç¶æ³ãããŠãŒã¶ããªãã£ãããŠãŒã¶ãšã¯ã¹ããªãšã³ã¹ãããŠãŒã¶ã€ã³ã¿ãã§ãŒã¹ããªã©UI/UXæè²ã§æŒãããŠããããçšèªãå®çŸ©ãããŠããŸãã 4ç« ãã€ã³ã¿ã©ã¯ã·ã§ã³ã®åå æŠèŠã«7ã€ã®ååãèšèŒãããŠããã®ã§ãããããã«â7âãšããæ°åãæã£ãŠããããšã«ãèŠå®èªäœãåããããããããããšããå¿ææ°ãæããŠããŸãã®ã¯ãããã ãã§ããããã ããã«ã¯7ã€ã®ååã«ã€ããŠæŠèŠãèšèŒãããŠããããŸãååã«å«ãŸããäž»ãªæšå¥šäºé
ã衚ã«ãªã£ãŠããŸããããã¯ãæŠèŠã ãã§çè§£ããã®ã¯å°ã
å³ãããæ¯éã5ç« ã®ãåååã³æšå¥šäºé
ããèªãã§ããã ããããšããã§ãã ãã®4ç« ã®äžçªã®èªã¿ã©ããã¯ãæšå¥šäºé
ãäžã€ããé©çšããªãå ŽåïŒååãå®å
šã«æºãããããšã«ã¯ãªããªãããšãèšèšæšå¥šäºé
ãåé¡ããããšãããïŒãããã®æå³ãçè§£ããŠå©çšããããšã®æ¹ãéèŠãã®ã©ã¡ãããªã®ã§ã¯ãšæããŸããåŠã¶ç«å Žã§èªããšåŸè
ã®ãçè§£ããŠå©çšããããšã®æ¹ãéèŠãã«ç®ãè¡ããã¡ã§ããããã¡ãã倧åãªèãæ¹ã§ããããããªããåè
ãæå³ãããšããã®ãäžã€é©çšã§ãããããšèšã£ãŠæ¹åã§ããïŒãšã¯ãªããªãããšããUI/UXæ¹åæã®æ³šæç¹ã¯ãèã«éããŠãããããšããã§ãã ãŸãã4ç« ã«ã¯ãJIS Z 8530 ã§ç€ºãããã人éäžå¿èšèšããšã®é¢ä¿ãèšèŒãããŠããŸããããããã«ã¯èŠå®ããŠããããšãéããšããããšã ãäŒãã£ãŠããŠãããå°ããã¿ç ããŠèšè¿°ãããŠãããšå¬ããã£ããªããšæã£ãŠããŸããŸããèŠã¯äœ¿ããããã€ã³ã¿ã©ã¯ãã£ããªè£œåããµãŒãã¹ãšã¯ã©ããã£ããã®ããã©ã®ãããªç¹åŸŽãåããŠããã®ãã瀺ããŠããã®ããã®JIS8520ã仿¹JIS8530ã¯äœ¿ããããã€ã³ã¿ã©ã¯ãã£ããªè£œåããµãŒãã¹ãäœãéã®äœãæ¹ãããã»ã¹ãã©ãããã°ããã®ãã瀺ããŠããã®ã ãšçè§£ããŸããã 5ç« ãåååã³æšå¥šäºé
ãã®ç« ã§ã¯7ã€ã®ååã«ã€ããŠã®èª¬æãèšãããŠããŸãã ãããšèŠããšæç« éã«å§åããããã«ãªããŸããã7ã€ã®ååããããããåå(ç¯é¡)ïŒååã®èª¬æãŒæ³šèšïŒè£å/现åãŒè£å/现åã®èª¬æïŒäºäŸããšããæ§æã«ãªã£ãŠããããšãäºãç¥ã£ãŠãããšããšãŠãçè§£ããããèšèŒãããŠããããšãåãããŸãã ãã®ãŸãŸåŒçšãããšèäœæš©ã«è§ŠããŠããŸããŸããããäŸãã°5.1ç¯ãããããçè§£ããç¯å²ã§ãã¿ç ããŸããšããŸãç¯é¡ãšããŠã5.1 ãŠãŒã¶ãŒãè¡ãã¿ã¹ã¯ãžã®é©åæ§ããèšèŒãããŠããŸãã ç¶ããŠããã®ååã®èª¬æãè¿°ã¹ãããŸãã5.1ç¯ã®å Žåããææ®µãšç®çãåãéããªãããã«ãææ®µãåããªããŠããŠãŒã¶ãŒãç®çãéæã§ããããšãéèŠã§ãããšãã£ããããªããšãæžãããŠããããã§ãã ãããŠããã®èª¬æã«å¯ŸããŠæ³šèšãèšèŒãããŠããŸãããéæããç®çèªäœããŠãŒã¶ãŒããŒãºã«æ²¿ã£ããã®ã§ãªããšé§ç®ã§ããããææ®µãå¥ããŠãã£ããã®ã§ã¯ãªããäœãããããã®æ¬è³ªã«æ²¿ã£ãææ®µãéžã³ãŸãããããšãã£ãååã®èª¬æããã¡ããšçè§£ããããã®ã¢ããã€ã¹ã泚èšãšããŠèšèŒãããŠããèš³ã§ããæç« ãå»¶ã
ãšç¶ããšã€ãæ¬æã ãæŸãèªã¿ããŠããŸããããªããŸãããæ¯éãæ³šèšãèªã¿èŸŒãã§æ¬²ããã§ããããã®äŸ¡å€ããããŸãã æŽã«ãååãããå°ãå
·äœçã«ããè£åã现åçãªé
ç®ãè¿°ã¹ãããç¶ãåé
ã§ãããã®è£åã现åã«ã€ããŠè©³ãã説æãšäŸã瀺ãããŸããäŸãã°5.1ç¯ã®å Žåã3é
ç®ãæããããŠããŸããã3ã€ç®ã®é
ç®ã§ã¯ããŠãŒã¶ãŒãå
¥åãããæ±ºå®ãããããããããã«äºãé©åãªèšå®ãããŠãããŸãããããšãããããªããšãæžãããŠããèš³ã§ãããããŠãã®é
ç®ãå®çŸããããã®æšå¥šäºé
ãè€æ°ç¹æããããæŽã«æšå¥šäºé
ãçè§£ããããããããã«å®æœäŸãã»ãŒå
šé
ç®2ç¹ä»¥äžæããããŠããŸãã ãã®ããã«7ã€ã®ååãè€æ°ã®é
ç®ã«è©³çްåãããåã
ã«äŸãè€æ°ç€ºããããããå
šéšã§141ç¹ãã®äŸãæ²èŒãããã«è³ãããã§ãã ãããããã®äŸã工倫ãããŠããŠãç°ãªã£ãã€ã³ã¿ã©ã¯ãã£ãã·ã¹ãã ãå¥ææ®µã«ãã察å¿çã«ã€ããŠè¿°ã¹ãããŠããã®ã§ç°ãªã芳ç¹ããååã«ã€ããŠèããããšãã§ããŸããæšå¥šäºé
ããïœã¯å®çŸã§ããŠãããïŒããšãã£ã圢ã§ãã§ãã¯é
ç®ã«ããäŸã®ãããããèªåãã¡ã®ãµãŒãã¹ã補åã«åœãŠã¯ããæžãæ¹ã«ããã ãã§ããªã䜿ãããã§ãã¯ãªã¹ããåºæ¥ããšæãããŸãã é屿žA(åè)ããã®èŠæ Œã®æšå¥šäºé
ãé©çšããããã®ãã§ãã¯ãªã¹ã åé
ã§ãããªã䜿ãããã§ãã¯ãªã¹ããåºæ¥ããšæãããŸãããšæžãããŠããã ããŸãããããªããšæ¬JISã«ã¯ãã§ã«ä»é²ãšããŠãã®ãã§ãã¯ãªã¹ããã€ããŠããŸãããããããã®èŠæ Œã®æšå¥šäºé
ãé©çšããããã®ãã§ãã¯ãªã¹ããã§ãã ãã®ããŒãžãã³ããŒããã ãã§ãã§ãã¯ãªã¹ããšããŠäœ¿ããŸãããã ããäŸã¯æ²èŒãããŠããŸãããããããšããŠã¯ãäŸãæ¯éãèªèº«ã®ãµãŒãã¹ã補åã«é©ããäºäŸã«æžãæããŠããã ããŠãã§ãã¯é
ç®ã«è¿œå ããããšããå§ãããŸããäºäŸãèããããšãèªèº«ã®å匷ã«ããªããŸããããã§ãã¯ãªã¹ããå©çšããæ¹ã«å¯ŸããŠé©åãªå©çšã«é¢ããããŒãã«ãäžããäºã«ãã€ãªãããŸãã åèæç® æ¬JISãçå®ããããã®åèæç®ãšãªã£ã33ç¹ã®è³æã䞊ãã§ããŸãããããæ¬JISã«è§ŠããŠæŽã«è²ã
ãšç¥ããããšãªã£ããªããããã®è³æã«ãæ¯éããã£ãŠã¿ãŠãã ããã JIS Z 8530ã人éå·¥åŠïŒäººãšã·ã¹ãã ãšã®ã€ã³ã¿ã©ã¯ã·ã§ã³ïŒã€ã³ã¿ã©ã¯ãã£ãã·ã¹ãã ã®äººéäžå¿èšèšãã¯ãã€ããã®JISãããœã§ãåãäžããããšèããŠãããŸãã é屿žJA(åè)ãJISãšå¯Ÿå¿åœéèŠæ Œãšã®å¯Ÿæ¯è¡š æ¬JISãšISO9241-110:2020ãšã®å¯Ÿæ¯ãäžèŠ§è¡šãšãªã£ãŠããŸãã倧ãã2ç¹ã远å ãšãªã£ãŠããŠã1ç¹ç®ã¯ããŠãŒã¶ãŒãšã³ã²ãŒãžã¡ã³ãããå®çŸ©ã远å ãããŠããŸãã 2ç¹ç®ã¯ãèªå·±èšè¿°æ§ããåããã¥ãããããã€ã³ã¿ã©ã¯ãã£ãã·ã¹ãã ã®èªå·±èšè¿°æ§ããšãããšæžããŠããã®ã§ããããŸã ãããã¥ãããããããŸããã ã€ã³ã¿ã©ã¯ãã£ãã·ã¹ãã ïŒèªå·±ãªãã§ããããã€ã³ã¿ã©ã¯ãã£ãã·ã¹ãã ãä»ã©ããªã£ãŠããã®ããæåŸ
ããçµæãåŸãããã«ã¯ã©ãããã°ããã®ãããšãã£ãããšãã€ã³ã¿ã©ã¯ãã£ãã·ã¹ãã èªèº«ããŠãŒã¶ãŒã«åãããããæ
å ±æäŸããŠããããšãã£ãããšãªã®ã§ããããèšè¿°æ§ããšããèšèãæ¡å€é£ãããèªå·±èšè¿°æ§ã«é¢ããåé¡ã«æ°ã¥ãããããããææããããããäŸãèªã¿èŸŒãã§èšèã®æå³ã説æã§ããããã«ããŠãããªããšä»åŸæããããããªæ°ãããŸãã 以äžãJIS Z 8520:2022ã人éå·¥åŠïŒäººãšã·ã¹ãã ãšã®ã€ã³ã¿ã©ã¯ã·ã§ã³ïŒã€ã³ã¿ã©ã¯ã·ã§ã³ã®ååããšãªããŸãã 仿¥èŠã€ããå®ç©ïŒ ã代æ¿ããã¹ã ã ãã®JISã®4ç« ã«å³ã瀺ãããŠãã â»1 ã®ã§ããããã®å³ã«ã€ããŠã代æ¿ããã¹ã â»2 ããèšèŒãããŠããŸããã é³èªã¢ããªã䜿ãã°ã©ããªå³ãèšèŒãããŠãããåããããã«ãªã£ãŠããç¹ã¯ã¢ã¯ã»ã·ããªãã£ã«é¢ããèŠå®ãšããŠããããŸã»ããããšãªãïŒæãŸãããçæ³çã§ããïŒããšæããŸããã JISã¯ç»é²ããã°ç¡æã§é²èЧã§ããPDFãã¡ã€ã«ãæäŸãããŠããŸãããåæ§ã«é³å£°ãã¡ã€ã«ãæäŸãããŠããŸãã代æ¿ããã¹ããããã°é³å£°ãã¡ã€ã«å©çšè
ã䜿ãåæãè¯ãã§ãããã â»1ïŒåç
§æç®ã®å³1ïŒãŠãŒã¶ãŒã·ã¹ãã ã€ã³ã¹ãã©ã¯ã·ã§ã³ã®ããã®æéã«é¢ããäž»èŠãªæ
å ±æºã®é¢ä¿ â»2ïŒä»£æ¿ããã¹ããç»åãããã¹ãã«ãã£ãŠèª¬æãããã® æåŸãŸã§ãä»ãåããã ããããããšãããããŸããæ¬æ¥ã®éè¡ãã¯ãããã§ããã§ãããããæ¬¡ã®ãããœã¯JIS Z 8522ã人éå·¥åŠïŒäººãšã·ã¹ãã ãšã®ã€ã³ã¿ã©ã¯ã·ã§ã³ïŒæ
å ±æç€ºã®ååããäºå®ããŠãããŸããæ¬¡åãŸããäžç·ã§ããããšã楜ãã¿ã«ããŠãããŸãã åç
§ïŒ JIS Z 8520 ã€ã³ã¿ã©ã¯ã·ã§ã³ã®åå The post JISãã㜠(01) JIS Z 8520:2022ã人éå·¥åŠïŒäººãšã·ã¹ãã ãšã®ã€ã³ã¿ã©ã¯ã·ã§ã³ïŒã€ã³ã¿ã©ã¯ã·ã§ã³ã®ååã first appeared on Sqripts .
ããã«ã¡ã¯ããã¥ã³ã§ãã ãªã³ã©ã€ã³ã§éå¬ããããœãããŠã§ã¢å質ã·ã³ããžãŠã 2023ã®æ¬äŒè°ã«åå ããŠããŸããã è€æ°ã®è¬æŒãçºè¡šãèŽè¬ããŸããããåºèª¿è¬æŒãšåœç€Ÿç€Ÿå¡ãç»å£ããçºè¡šã«ã€ããŠã玹ä»ããŸãã åèãŸã§ã«ã æšå¹Žã®åå ã¬ããŒã ã§ããâ»åå ã¬ããŒãå
ã®ãœãããŠã§ã¢å質ã·ã³ããžãŠã 2022ã®å
¬åŒãµã€ãã¯ã ãã¡ã ã«å€æŽãããŠããŸã ãœãããŠã§ã¢å質ã·ã³ããžãŠã ãšã¯ ãœãããŠã§ã¢å質ã·ã³ããžãŠã ãšã¯ã1981幎ããéå¬ãããŠããæ¥æ¬ç§åŠæè¡é£çäž»å¬ã®æŽå²ããã·ã³ããžãŠã ã§ãã ä»å¹Žã§42åç®ãè¿ããæ¬äŒè°åæ¥ã®9/6ã«ïŒä»åã¯9/2(å)ãïŒäœµèšãã¥ãŒããªã¢ã«ãéå¬ãããæ¬äŒè°ã9/7ã9/8ã®2æ¥éã§è¡ãããŸãããæ¬äŒè°1æ¥ç®ã®çµäºåŸã«ã¯ãæ¬äŒè°Special Talk Session (STS)ãè¡ãããŸããã æ¬äŒè°ã¬ããŒã åºèª¿è¬æŒã«ã€ã㊠ä»åã®åºèª¿è¬æŒã¯ ç©é çŽæå
çã®ãKano Modelããå質ã«ã€ããŠåŠã¶ïŒãã§ããã ç©éå
çã®è¬æŒãçŽæ¥èŽè¬ã§ãã貎éãªæ©äŒã§ãã åè³ªã®æŠå¿µãšããŠåŠç¿ããããšã¯ãããŸããããèŽè¬åã«ããããããšæããChatGPTã§ãç©éã¢ãã«ãã§ç¢ºèªããŠã¿ããšãããã»ããåçãåŸãããâŠã ãKano Modelãã§ç¢ºèªããŠã¿ããšé£ãªãåçãåŸãããŸããããŸãã«äžççãªãKano Modelãã§ããããšã宿ããæ¬¡ç¬¬ã§ãã ãKano Modelãã®èªç ãKano Modelãã®èªçã«ã€ããŠãç©éå
çã®ãã©ãã®é ã®åè³ªã®æãåºããå§ãŸãããé
åçå質ãšåœãåå質ãã®è«æãåŠäŒèªã«æ²èŒããããšãããŸã§ãèªã£ãŠãã ãããŸããã ç ç©¶ã®ãã£ãããšãªã£ãã®ã¯ã ãã©ãæä»£ããã®æåŸ
ã§ãããããã«å£ããç©å
·ãäœããªããïŒããå質ãšã¯å£ãã«ãããã®ãšããæåŸ
ããã£ãŠè²ã£ãïŒ ãå質äžè¯ã®äœæžã ãããããåŠçæä»£ã«åŠãã ãæ¶è²»è
ãæºè¶³ããããšããå質ããšåãã§ãããšããããšã«ã®ã£ããããã£ãããšãããšããããã ããã§ãã ãæ¶è²»è
ãæºè¶³ããããšããå質ãã¯ãå質äžè¯ãäœæžãããªã©ãšããã ãã§ã¯ååã§ã¯ãªããããäžæºãããããå質ããšãæºè¶³ãäžããå質ãã¯ç°ãªãããšããæŒ ç¶ãšããèãããå§ãŸã£ããšã®ããšã§ããã ãã®åŸãããŒãºããŒã°ã®åæ©ä»ãã»è¡ççè«ã«åºäŒããçåãè§£æã§ãããããããªãããšããããšããç ç©¶ãé²ããŠè«æãæåºããããã§ãã âŠããå質管çåé以å€ã®æç®èª¿æ»ãäžè¶³ããŠãããšã®çç±ã§åŽäžãããããšããããšã®ããšã ä»ã®åéã«ã¯æãããªãã£ãããã§ãããç 究宀ã§ã¢ã«ãã€ããããŠããæ¹ããå²åŠè
ã®ã¢ãªã¹ããã¬ã¹ã«ãã©ãã€ããæçµçã«è«æãèªããããã«è³ã£ããšã®ããšã§ããã ãã®ã¢ãªã¹ããã¬ã¹ãã圢èäžåŠãã§äž»åŒµããŠãã質ã«ã€ããŠã®å
容ããããå質ãšã¯ãããäºç©ã«é¢ããŠïŒã€ã®åçš®ãååšããæããããã®çš®å·®ãæãããšããããšããã¢ãªã¹ããã¬ã¹ã®å質è«ãšããŠèª¬æããŠãã ãããŸããã é
åå質ã®ã©ã€ããµã€ã¯ã« Kano Modelã®ç¹åŸŽãšããŠãå質èŠçŽ ãäºæ¬¡å
ã§å³åŒåããŠããããšããããããŸãã åå質èŠçŽ ãå³è§£ãããšä»¥äžã®ããã«ãªããŸãã äžå
å質ïŒãªããšäžæºãããã°æºè¶³ãªãã® åœãåå質ïŒãªããšäžæºããã£ãŠãæºè¶³ãšãªããªããã® é
åå質ïŒãªããŠãäžæºã«ã¯ãªããªããããããšæºè¶³ãªãã® ç¡é¢å¿å質ïŒãã£ãŠããªããŠãäžæºã«ãæºè¶³ã«ããªããªããé¢å¿ããªããã® é
åå質çè«å³è§£ ãã®é
åå質çè«ã§ãããå€ãã¯ãç¡é¢å¿å質ããšããŠçãŸããŠãã®ãŸãŸçµãã£ãŠããŸãããšãå€ãããã§ãã ãã ããã®ãç¡é¢å¿å質ãã®äžéšã¯ãé
åå質ããšãªããããã«ãã®ãé
åå質ãããäžå
å質ãã«ããããã¯ããããåœãåå質ãã«ãªãããšãããããªã©ã€ããµã€ã¯ã«ããããŸãã ãã®é
åå質ã®ã©ã€ããµã€ã¯ã«ã«ã€ããŠãç©éå
çã倧åŠã§è¬çŸ©ããŠããæä»£ã«ãä»ã®å質é¢é£ã«é¢ããå
å®¹ãšæ¯èŒãããšåŠçã®çè§£åã«åé¡ããã£ãããã§ãã ç©éå
çã¯åŠçãçè§£ã§ããªãã®ã¯æããåŽãæªãããšããŠãã©ããã£ããçè§£ãæ·±ãŸãã®ãã«ã€ããŠããMaryãšJohnã®æã®ç©èªããšããŠäºäººã®æã®å€åã«äŸããŠè§£èª¬ããããã«ãããšãããåŠçã®çè§£åã倧å¹
ã«äžãã£ããšã®ããšã§ããã ãããŸã§ãšã¯ç°ãªãé°å²æ°ã®è³æã§é©ããŸãããã確ãã«ãããªãããããããããšæããŸããã äœè«ã§ãããèªåãæããåŽã«ãªãããšããããŸãã ãªããªãçè§£ããŠããããªãããšæãããšããããŸãããæããåŽãæªãïŒãšæèšãããç©éå
çã®ããšã°ã«ã°ãµããšããŸããã æããåŽãšããŠæ¹åããªããã°ãããªãã§ããã ç«¶ååªäœãšããŠã®åè³ªã®æŽå²çå€å ç«¶ååªäœãšããŠã®åè³ªã¯æŽå²çã«å€åããŠãããšãããå質ã®3ã¬ãã«ã«ã€ããŠã®ã話ããããŸããã 第1ã¬ãã«ïŒå質統å¶ïŒé¡§å®¢èŠæ
è§£æ¶ã補åã®åºæ¬çèŠä»¶ãžã®é©åïŒ ç¬¬2ã¬ãã«ïŒå質管çïŒé¡§å®¢æºè¶³ãé¡§å®¢ã®æç€ºèŠæ±ã®å®çŸïŒ 第3ã¬ãã«ïŒé
åå質åµé ïŒé¡§å®¢æåãé¡§å®¢ã®æœåšèŠæ±ã®å®çŸïŒ 第2ã¬ãã«ãåºãŠãããšç¬¬1ã¬ãã«ã¯åœããåã«ãªãããšããããã«ãå質競äºã¯å€åãããšããã話ã§ããã å質ã¯ç¬¬1ã¬ãã«ãã第2ã¬ãã«ãžçºå±ããããã«ã¯ç¬¬3ã¬ãã«ãšãªãããã«çºå±ããŠãããšã®ããšã§ãã ãããã®è©±ã®äžã§ãçªåŠãBFã®3ã¬ãã«è«ããšããè³æãæç€ºãããã®ã§ãããBFã£ãŠïŒãšæã£ãŠãããããBoyFriendãã®ããšã§ããã å質3ã¬ãã«è«ããããããª3ã¬ãã«ã«äŸããããã«ã¬ããŒããæžãããéãåŠçãèããå Žåã®äŸãšããŠæç€ºãããŠãããã®ã§ãã ãã®ããã«ããã£ãšç¬ã£ãŠããŸããããªå
容ãè¬æŒäžã®ãšããã©ããã«å«ãŸããŠãããç©éå
çã®äººæãå£éèŠããããã§ããã ãŸãšãïŒæ¥åã«ããããå質ããèããŠã¿ãïŒ ã玹ä»ããããŠããªãå
容ããããŸãããåºèª¿è¬æŒã§ã¯å
šäœçã«ããŒããŠã§ã¢ãåæãšããŠã話ããããŠããŸããã åºèª¿è¬æŒåŸã«ã¯ããœãããŠã§ã¢ããµãŒãã¹ã«ãããé
åçå質ãšã¯ïŒããšããããã«ãã£ã¹ã«ãã·ã§ã³ããã£ãã®ã§ããïŒãã¡ãã¯SNSçŠæ¢ã®ãã岿ïŒããœãããŠã§ã¢ããµãŒãã¹ã«ã倧ããé¢é£ããå
容ã§ãã å¥ã®äžè¬çºè¡šãè¬æŒã§ãç©éå
çã®ã話ãåŒãåãã«åºãããŠããæ¹ãè€æ°ããã£ããããŸããã è«æçºè¡šåœåããæéã¯çµéããŠããŸãããçŸæç¹ã§ãè²è€ªããããŒã±ãã£ã³ã°ã®å Žã§ã掻çšãããŠããããšãªã©ãèãããšãç©éå
çããçŽæ¥ã話ãèŽããããšã¯æ¬åœã«è²Žéã§ããã èªåèªèº«ã¯ããã¹ãæ¥åãæ
åœããŠããŸãã ã客æ§ãéçºãã補åã«å¯Ÿãããã¹ãã®äŸé Œãåãããã¹ããæ
åœããããšãå€ãã§ãã å質管çãšããŠãå質äžè¯ã®äœæžãã®ããã®æ¥åã§ããããäžæºãããããå質ãã«ããããã®ã ãšèããŸãã ãã®ãããä»åã®ã話ã®ã¡ã€ã³ã§ãããé
åå質ããæèããŠæ¥åããããšã¯ã»ãšãã©ãããŸããã§ããã ä»åã®ã話ãèŽããŠãå°ãèŠç¹ãå€ããŠã¿ãŸããã ãããããã客æ§ããäŸé ŒãããŠããããœãããŠã§ã¢ãã¹ãæ¥åããã®ãã®ã®å質ãèããŠã¿ããšãã客æ§ããã®æåŸ
ãèŠæãšããæå³ã§ã¯ããã®ãé
åå質ãã«é¢é£ããã®ã§ã¯ãªãããšã ã客æ§ããäŸé Œããããã¹ãæ¥åãã®ãã®ã«å¯ŸããŠãæäœéã®ææãåºããšããããšã¯ãåœãåå質ãã§ãããæåŸ
ã«å¯ŸããŠææãåºãããšããäžå
å質ãã«ãããã®ããªãšæããŸããã ã客æ§ãšã®äŒè©±ã®äžããæœåšçãªèŠæ±ãèªã¿è§£ãããšãã§ãããããã«å¯Ÿå¿ããããšãã§ããã°ãããã¯ãé
åå質ãã«ãªãã®ã§ã¯ãªãã®ããšã é·æéæ
åœããå Žåã«ã¯ãã©ã€ããµã€ã¯ã«ãšããŠå€åããããšãããããã§ãã æ¥åã«å¯Ÿããå§¿å¢ãšããŠããåœãåå質ããããªãããšã¯ãã¡ããã§ãããäžå
å質ãé
åå質ã«ã察å¿ã§ããããã«ãªããããæ¥ã
粟é²ããŠããå¿
èŠããããšæããŸããã â»æ³šïŒæ¬æå
ã®è¡šèšã«ã€ããŠãè«æåãããã«ãã£ã¹ã«ãã·ã§ã³ã®åç§°ã¯ãé
åçå質ãããã®ä»ã¯è¬æŒäžã®è³æã«æç€ºãããŠãããé
åå質ããšããŠããŸãã æ å°å¹³ããã®çºè¡šã«ã€ã㊠æ¬äŒè°2æ¥ç®ã«ã¯ãåœç€Ÿç€Ÿå¡ã®æ å°å¹³ããã«ããçµéšçºè¡šããããŸããã çºè¡šã®ããŒãã¯ã IoTæè¡ãçšããçµèŸŒã¿ç³»è£œåã®ã©ãºããªãŒãã€ã䜿çšããèªååã®åé¡ç¹ãšè§£æ±ºæ¹æ³ ã§ãã æããã¯æ¬Sqriptsã«ãããŠã¹ã¯ãªãã¿ãŒãšããŠã èšäº ãå·çããŠããããã¹ãèªååãšã³ãžãã¢ãšããŠæŽ»èºããŠããŸãã ãã¡ãã®ç¹éãããããïŒ â ãé£èŒãèªåãã¹ãã¯ãªã倱æããã®ãã倱æäºäŸããã²ãè§£ãæåãžã®éç SqripterïŒæ å°å¹³ åé¡ç¹ IoTçµèŸŒã¿ç³»è£œåã®ãã¹ããèªååããããã«ã¯ãèªååããŒã«ã補åããµãŒããã·ãã¥ã¬ãŒã¿ãšãã£ãæ©åšãšé£æºãããå¿
èŠããããŸãããã©ãºããªãŒãã€ãçšããŠèªåãã¹ãç°å¢ãæ§ç¯ãããšã®ããšã§ããã ãã¹ãèªååã®å°å
¥ã«ããã£ãŠéžå®ããèªååããŒã«ã§ã¯ãåææ¡ä»¶ã®èšå®ããã¹ãå®è¡çµæã®ç¢ºèªãã§ããªãããšã倿ããããã§ãããä»ã®èªååããŒã«ã§ã¯ä»£çšã§ããªãããšãèªååã§ãããšãã£ãã¡ãªããããã£ãããšããããã®èªååããŒã«ãçšããç°å¢æ§ç¯ãã§ããªãããæ€èšãããAutoItããšé£æºãããããšã§äžè¶³ããæ©èœè¿œå ã®å¯Ÿçãããããã§ãã ããã«ãããèªåãã¹ãã®å°å
¥ãšããŠã¯æåã§ãããããªã®ã§ããããã®åŸã®éçšãã§ãŒãºã§ãšã©ãŒãå€çºããŠããŸã£ããšã®ããšã ãšã©ãŒã®èŠå ãšããŠã¯ããã¹ãå¯Ÿè±¡ãæ°åæ©çš®ã«ããããã§ããããšãããŒã«ãïŒã€é£æºãããããšã«ããç°å¢æ§ç¯ãè€éã«ãªã£ãŠããŸãããã¥ãŒãã³ãšã©ãŒãçºçããŠããŸã£ãããšãªã©ãæããããŠããŸããã è§£æ±ºæ¹æ³ 解決ã®ããã«çç®ããããšãšããŠãã§ããã ãã·ã³ãã«ãªãã¹ãèªååç°å¢ãæ§ç¯ããããšãæãŸãããšã®ããšã§ãèªååããŒã«ã®éžå®ã«ã€ããŠæ€èšããAGESTã®ãããã¯ãã§ãã TestArchitect ãå©çšããæ¹æ³ã玹ä»ããŠããŸãã TestArchitectã§ããã°ãããŒãã¹æ©èœã«ããã©ãºããªãŒãã€ãå¶åŸ¡ããæ©èœãåã蟌ãã§äœ¿çšããããšãã§ãããããç°å¢æ§ç¯ãã·ã³ãã«ã«ããããšãå¯èœãšãªããŸãã ãŸãšã èªååããŒã«ã®éžå®ã«ã€ããŠã¯ããããžã§ã¯ãã®ç¶æ³ãªã©ã«ããããšæããŸãããå°å
¥ã ãã§ã¯ãªããéçšãŸã§èŠæ®ããããšãéèŠãªèŠçŽ ã§ãããšæ¹ããŠæããŸããã TestArchitectã¯ããã¹ã¯ããããWebã¢ããªã±ãŒã·ã§ã³ãã¯ãããã¢ãã€ã«ã«ã察å¿ããŠãããå¹
åºãã·ã¹ãã ã®èªååãå¯èœãªããŒã«ã§ãã çŸåšã¯ãããã®ã·ã¹ãã ã«å©çšãããŠããã±ãŒã¹ã倧åã§ãããæããã®çºè¡šã®ãšãããããŒãã¹æ©èœãçšããããšã§çµèŸŒã¿ç³»è£œåã®å¶åŸ¡ãæè¡çã«å¯èœã§ããããšã倿ããŸããã TestArchitectãçµèŸŒã¿ç³»è£œåã®èªååããŒã«ãšããŠå©çšã§ããããšã¯ããŸã ãŸã ç¥ãããŠãããŸããã æ¬èšäºãã芧ããã ããæ¹ã§æ°ã«ãªã£ãæ¹ãããã£ããããŸãããããã²ãåãåãããã ããã ãåãåããå
ãããã« ã玹ä»ããå
容以å€ã«ãããããã®è¬æŒãçºè¡šããããŸããã åºèª¿è¬æŒãç¹å¥è¬æŒã¯ãã¡ããã§ãããäžè¬çºè¡šãšããŠå€ãã®å質ã«å¯Ÿããèãæ¹ãªã©ãèŽè¬ããããšã§ããåºæ¬ã®æ¬è³ªãåŠã³ã èŠã€ããªããå ŽããæäŸããŸãããšããé嬿ŠèŠã«ãããããã«ãæ¥ã
ã®æ¥åãèŠã€ããªããåŠã³ã®å ŽãšãªããŸããã åæé垯ã«èŽè¬ãããå
容ãéãªã£ãŠããããšããããæ©ãŸããããããŸããããã¢ã³ã±ãŒãã«åçããŠã¢ãŒã«ã€ãèŠèŽç¹å
žãããã ããã®ã§ãã¢ãŒã«ã€ãã§ããã«åŠã³ãããšæããŸãã The post ç©éã¢ãã«ïŒKano ModelïŒããèãããã¹ããšã³ãžãã¢ã®âå質âãïœãœãããŠã§ã¢å質ã·ã³ããžãŠã 2023åå ã¬ããŒãïœ first appeared on Sqripts .
ã¯ããã« ååã¯ãèªå販売æ©ã顿ã«ããŠãBDDãçšããããã»ã¹ã®ãçºèŠ(Discovery)ãã®éšåïŒ2.èŠä»¶ã¯ãŒã¯ã·ã§ããïŒãŸã§ã説æããŸããã ä»åã¯ãã3. å®åŒå(Formulation)ãã®éšåããBRIEFã®ååã亀ãã€ã€èª¬æããŸãã 3. å®åŒå å®åŒåã§ã¯ãã·ã¹ãã ã®æ¯ãèãã®äŸïŒå®äŸãããã³ã°ã§ããå
·äœäŸã®éšåïŒãã·ããªãªã®åœ¢ã§ææžåããŸãã äŸãã°ã以äžã®ãããªå®äŸãããã³ã°ãã§ããæã«ãæžãããŠããå
·äœäŸã550åãå
¥ããŠ120åã®ã³ãŒã©ãéžã¶ãšã³ãŒã©ãš430åã®ãé£ããåºãããã·ããªãªã®åœ¢ã§ææžåããŸãã äŸãã°ãGherkinèšæ³ãçšããŠä»¥äžã®ããã«æžããŸãã Feature: èªåè²©å£²æ© Scenario: 飲ã¿ç©ãè²·ããšãé£ããåºã Given èªå販売æ©ããã When 500 å硬貚ãå
¥ãã And 50 å硬貚ãå
¥ãã And ã³ã³ãããã¯ã¹ãã 120 åã® "ã³ãŒã©" ãéžæãã Then "ã³ãŒã©" ãåºãŠãã And 100 å硬貚ã 4 æåºãŠãã And 10 å硬貚ã 3 æåºãŠãã Gherkinèšæ³ Gherkinèšæ³ãšã¯Given/When/Thenãªã©ã®ããã€ãã®ããŒã¯ãŒããçšããŠãå®è¡å¯èœãªåœ¢åŒã§èšè¿°ããæ§ææ¹æ³ã§ãã ä»åã¯ã以äžã®6ã€ã®ããŒã¯ãŒããç»å ŽããŸãã FeatureâŠãœãããŠã§ã¢ã®ãã£ãŒãã£ãŒã®æŠèŠãèšè¿°ããããã®ããŒã¯ãŒãã§ãã ScenarioâŠããžãã¹ã«ãŒã«ã衚ãå
·äœäŸãèšè¿°ããããã®ããŒã¯ãŒãã§ãã GivenâŠã·ã¹ãã ã®åææ®µéãã·ããªãªã®åæãèšè¿°ããããã®ããŒã¯ãŒãã§ãã WhenâŠå®éã«è¡ãã¢ã¯ã·ã§ã³ãæäœãèšè¿°ããããã®ããŒã¯ãŒãã§ãã ThenâŠæåŸ
ãããçµæãèšè¿°ããããã®ããŒã¯ãŒãã§ãã AndâŠè€æ°ã®Given/When/Thenã«å€ããå
容ãåºãŠããæã«ã¯ããã®ãAndãã®ããŒã¯ãŒãã§ç¹ããŸãã äŸãã°ä»åæžããå
容ã®å Žåã以äžã®ãããªå
容ã説æããŠããããšã«ãªããŸãã èªå販売æ©ã«ã€ããŠã®ãã£ãŒãã£ãŒã§ãã ã飲ã¿ç©ãè²·ããšãé£ããåºãããšããå
·äœäŸã«ã€ããŠèšè¿°ããŸãã ãèªå販売æ©ãããããšããåæããããŸãã 以äžã®æäœãè¡ããŸãã ã500 å硬貚ãå
¥ããŸãã ã50 å硬貚ãå
¥ããŸãã ãã³ã³ãããã¯ã¹ãã120 åã®ã³ãŒã©ãéžã³ãŸãã ãããšã以äžã®çµæãæåŸ
ãããŸãã ãã³ãŒã©ãåºãŠããŸãã ã100 å硬貚ã 4 æåºãŠããŸãã ã10 å硬貚ã 3 æåºãŠããŸãã ã·ããªãªãæ¹åãã ããŠãä»åGherkinèšæ³ã§æžãããããªä»¥äžã®ã·ããªãªãããã°å
šãŠå€§äžå€«ãªã®ã§ããããã Feature: èªåè²©å£²æ© Scenario: 飲ã¿ç©ãè²·ããšãé£ããåºã Given èªå販売æ©ããã When 500 å硬貚ãå
¥ãã And 50 å硬貚ãå
¥ãã And ã³ã³ãããã¯ã¹ãã 120 åã® "ã³ãŒã©" ãéžæãã Then "ã³ãŒã©" ãåºãŠãã And 100 å硬貚ã 4 æåºãŠãã And 10 å硬貚ã 3 æåºãŠãã ãã®ãŸãŸã§ãå®è¡å¯èœãªãã¹ããäœæããŠããããšãå¯èœã§ãããããå°ãã·ããªãªã®æ¹åãèããããšãã§ããŸãã èªåäžäººã§èããŠãè¯ãã§ãããä»ã®äººãããã£ãŒãããã¯ãåŸãªããé²ãããšãªãè¯ãã§ããããBDDãçšããããã»ã¹ã®ã#4. ã¬ãã¥ãŒãã®éšåã«è©²åœããŸãã ã·ããªãªãæ¹åããæã®åèã«ãªãã®ããBRIEFã®ååã§ãã BRIEFã®åå BRIEFã®ååãšã¯ãã·ããªãªãããè¯ãããããã«èããããçµéšåã§ããããããã®é æå5ã€ãšBriefãšããèšèèªäœã®èš6ã€ãããªããŸãã以äžã®èª¬æã¯ãã ã翻蚳èšäºããã¹ãèªååã®å¯Ÿè±¡ãšãªããã¹ãã·ããªãªã®æŽçã«åœ¹ç«ã€BRIEFã®åå ïŒåæã¯ Keep your scenarios BRIEF ïŒãããåŒçšã Business languageïŒããžãã¹èšèªïŒâŠããžãã¹ããŒã ã®ã¡ã³ããŒãæç¢ºã«çè§£ã§ããçšèªã䜿çšãã¹ãã§ãã Real dataïŒå®éã®ããŒã¿ïŒâŠå
·äœçãªå®éã®ããŒã¿ã䜿çšãã¹ãã§ãã Intention revealingïŒæå³ãæããã«ããïŒâŠã·ããªãªã®ã¢ã¯ã¿ãŒãéæããããšããŠããæå³ãæããã«ãã¹ãã§ããéæããæ¹æ³ã®ã¡ã«ããºã ã説æããã®ã§ã¯ãããŸããã EssentialïŒå¿
é ïŒâŠã·ããªãªã®ç®çã¯ãã«ãŒã«ãã©ã®ããã«æ¯ãèããã説æããããšã§ãã ãã®ç®çã«çŽæ¥é¢äžããªãéšåã¯å¶çºçãªãã®ã§ãããåé€ãã¹ãã§ãã FocusedïŒçŠç¹ãçµãïŒâŠã»ãšãã©ã®ã·ããªãªã¯ã1ã€ã®ã«ãŒã«ã®èª¬æã«çŠç¹ãçµãã¹ãã§ãã BriefïŒç°¡æœã§ããïŒâŠã»ãšãã©ã®ã·ããªãªã5è¡ä»¥äžã«å¶éããããšããå§ãããŸãã ã翻蚳èšäºããã¹ãèªååã®å¯Ÿè±¡ãšãªããã¹ãã·ããªãªã®æŽçã«åœ¹ç«ã€BRIEFã®åå ä»åã®ã·ããªãªã«BRIEFã®ååãé©çšããŠæ¹åãã ããã§ã¯BRIEFã®ååã«åœãŠã¯ããŠä»åã®ã·ããªãªãæ¹åããŠãããŸãããã ããžãã¹èšèªãçšãã(Business language) ä»åã®ã·ããªãªã®äžã§ãã³ã³ãããã¯ã¹ããšããåèªã¯ãå®éã®ç»é¢ãæ³å®ããŠè¡šçŸããŠãããããžãã¹èšèªã§ã¯ãããŸããããŸããã³ã³ãããã¯ã¹ã§ãªããã§ãã¯ããã¯ã¹ãªã©ã§ãã£ãŠãä»åè¡ãããå
å®¹ãæºããããšãã§ããŸãããã®ããã以äžã®ããã«ã·ããªãªãæ¹åããŸãã Feature: èªåè²©å£²æ© Scenario: 飲ã¿ç©ãè²·ããšãé£ããåºã Given èªå販売æ©ããã When 500 å硬貚ãå
¥ãã And 50 å硬貚ãå
¥ãã And ã³ã³ãããã¯ã¹ãã 120 åã® "ã³ãŒã©" ãéžæãã And 120 åã® "ã³ãŒã©" ãéžæãã Then "ã³ãŒã©" ãåºãŠãã And 100 å硬貚ã 4 æåºãŠãã And 10 å硬貚ã 3 æåºãŠãã æå³ãæããã«ããŠ(Intention revealing)ãå¿
é (Essential)ã®ç®çã®ã¿ã«çŠç¹ãçµã£ãŠ(Focused)èšè¿°ãã ä»åã®ã·ããªãªã§ç€ºãããç®çã¯ãã飲ã¿ç©ãè²·ããšé£²ã¿ç©ã®å€æ®µãåŒããéé¡ã ããé£ããåºãããšããããšã§ããéèŠãªã®ã¯éé¡ã§ãããã©ããªç¡¬è²šãåºãŠãããã¯ä»åã®ã·ããªãªã®æå³ã§ã¯ãããŸããããã®ããã以äžã®ããã«ã·ããªãªãæ¹åããŸãã Feature: èªåè²©å£²æ© Scenario: 飲ã¿ç©ãè²·ããšãé£ããåºã Scenario: 飲ã¿ç©ãè²·ããšã飲ã¿ç©ä»£ãåŒããéé¡ã®ãé£ããåºã Given èªå販売æ©ããã When 500 å硬貚ãå
¥ãã And 50 å硬貚ãå
¥ãã When 550 åãå
¥ãã And 120 åã® "ã³ãŒã©" ãéžæãã Then "ã³ãŒã©" ãåºãŠãã And 100 å硬貚ã 4 æåºãŠãã And 10 å硬貚ã 3 æåºãŠãã And 430 åãåºãŠãã ãªããã©ããªç¡¬è²šãåºãŠãããã瀺ãããå Žåã¯ãå¥ã®ã·ããªãªãšããŠèšè¿°ãæ€èšãã¹ãã§ããããããããããçºèŠ(Discovery)ãã«ç«ã¡æ»ã£ãŠãå®äŸãããã³ã°ã§ããå
·äœäŸïŒç·è²ã®ä»ç®ïŒãã«ãŒã«ïŒéè²ã®ä»ç®ïŒã远å ããããšã«ãªããšæããŸãã çµæãšããŠç°¡æœ(Brief)ãªã·ããªãªã«ãªã£ãŠãã æ¹åããçµæã以äžã®ãããªã·ããªãªã«ãªããŸããã Feature: èªåè²©å£²æ© Scenario: 飲ã¿ç©ãè²·ããšã飲ã¿ç©ä»£ãåŒããéé¡ã®ãé£ããåºã Given èªå販売æ©ããã When 550 åãå
¥ãã And 120 åã® "ã³ãŒã©" ãéžæãã Then "ã³ãŒã©" ãåºãŠãã And 430 åãåºãŠãã ãããèŠããšãã·ããªãªèªäœã¯5è¡ã«åãŸã£ãŠãããç°¡æœã«ãªã£ãŠããŸãã ãBRIEFã®ååã¯å¿
ãå
šãŠå®ãã¹ããã§ã¯ãªã BRIEFã®ååã¯å¿
ãããå
šãŠé©çšãã¹ãã§ã¯ãããŸããã äŸãã°ä»åã®å Žåãã·ããªãªã§ç€ºãããç®çã¯ã飲ã¿ç©ãè²·ãããšããããšãªã®ã§ãå¿
é (Essential)ã®ååã«åŸããšãã³ãŒã©ããæå®ããå¿
èŠããããŸãããäžæ¹ã§ãå®éã®ããŒã¿(Real data)ã®ååã«åŸããšããã³ãŒã©ããšããå
·äœçãªããŒã¿ãçšããæ¹ãè¯ããšæãããŸãã ãã®ããã«ãååã®äžéšã¯æåããå¯èœæ§ãããã®ã§ããã®å Žã«é©ããå
容ãé©å®èããŠãã ããã ãããã«ããBDD以å€ã§ãBRIEFã®ååãæŽ»çšããã ä»åã¯ã3. å®åŒå(Formulation)ãã®ãã©ã¯ãã£ã¹ãšããŠãGherkinèšæ³ã®ã·ããªãªãBRIEFã®ååã«åŸã£ãŠæ¹åããŠãããŸããã ãªããBRIEFã®ååã¯BDDã®å Žé¢ä»¥å€ã§ã®æŽ»çšãèãããšè¯ãã§ããããäŸãã°ãTDDãUnitãã¹ãã®äœææã«ã¯ãè²ã
ãªããšãæ°ã«ãªããããçµæããã¹ãã®æå³(Intention revealing)ãæããã«ãªã£ãŠããªãããšãå€ã
ãããŸãã ãã²ããã®ãããªå Žé¢ã§ãBRIEFã®ååãæŽ»çšããŠã¿ãŠãã ããã é£èŒäžèЧ TDDãšBDD/ATDD(1)ãTDDã¯ãã¹ãææ³ã§ã¯ãªã TDDãšBDD/ATDD(2)ã2çš®é¡ã®BDD TDDãšBDD/ATDD(3)ãBDDãšATDDãšSbE TDDãšBDD/ATDD(4)ãããŒã«ãšããŠã®BDDãšããã»ã¹ã«çµã¿èŸŒãŸããBDD TDDãšBDD/ATDD(5)ãBDDã®ããã»ã¹ãã®1ãçºèŠ(Discovery)ããšå®äŸãããã³ã° TDDãšBDD/ATDD(6)ãBDDã®ããã»ã¹ãã®2ãå®åŒå(Formulation)ããšBRIEFã®åå The post TDDãšBDD/ATDD(6)ãBDDã®ããã»ã¹ãã®2ãå®åŒå(Formulation)ããšBRIEFã®åå first appeared on Sqripts .
ããã«ã¡ã¯ãQAãšã³ãžãã¢ã®ã«ã³ããããã¯ã§ãã ä»åã¯ããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã«ãããéä¿¡ã®å質ä¿èšŒãšããŠCDCãã¹ããšããã®å®è¡ã«ãããŠèŠæš¡ã倿©èœæ§ã«å¿ããŠäžè¬çã«äœ¿çšãããããŒã«ã§ãã Pact ã®äœ¿çšã«ã€ããŠã®ã¯ãŒã¯ã·ã§ããã玹ä»ããŸãããã®ã¯ãŒã¯ã·ã§ãããéããŠãCDCãã¹ããšPactã®åºæ¬çãªäœ¿ãæ¹ãæçšæ§ã玹ä»ã§ããã°ãšæããŸãã ãã€ã¯ããµãŒãã¹ãšCDCãã¹ã ãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã¯ãéçºã®å¹çåããããã€ã¡ã³ãã®ç°¡æåããããŠã¹ã±ãŒãªã³ã°ã®å®¹æããããã£ãèªæçãªéžæã§ããããµãŒãã¹éã®é©åãªéä¿¡ã¯ã·ã¹ãã å
šäœã®ã¹ã ãŒãºãªéçšã«äžå¯æ¬ ã§ãããã®äžå¿ã«äœçœ®ããã®ããConsumer Driven Contract (CDC) ãã¹ãã§ãã CDCãã¹ãã¯ãåãµãŒãã¹ãä»ã®ãµãŒãã¹ãšã®éä¿¡å¥çŽãé å®ããŠãããã確èªããã·ã¹ãã å
šäœã®ä¿¡é Œæ§ãšå®å®æ§ãåäžãããæå¹ãªææ®µã§ãããããŠãCDCãã¹ãã容æã«å®æœã§ããããŒã«ãšããŠãPactãåºã掻çšãããŠããŸãã ãã®èšäºã§ã¯ãPact Workshop JSãçšããŠCDCãã¹ããè¡ãããã®ç¥èãšå
·äœçãªäºäŸã«ã€ããŠãæ¡å
ããŸããæ·±ãçè§£ãäœéšãéããŠããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ãæ€èšããéçºè
ãããã¡ã®èŠéãåºããããè±ããªéžæè¢ãæäŸã§ããã°ãšèããŠããŸãã CDCãã¹ãã®åºæ¬ Consumer Driven Contract (CDC) ãã¹ãã¯ããã€ã¯ããµãŒãã¹éã®çžäºéä¿¡ããã¹ãããããã®æ¹æ³è«ã§ãããã®ãã¹ãã§ã¯ãåãµãŒãã¹ïŒããã§ã¯”ã³ã³ã·ã¥ãŒã㌔ïŒãä»ã®ãµãŒãã¹ïŒ”ãããã€ã㌔ïŒãšã®éã§æåŸ
ããéä¿¡ã®åããæ¯ãèããããªãã¡”å¥çŽ”ãå®çŸ©ããŸãããã®ææ³ã®ç®çã¯ããµãŒãã¹éã®éä¿¡ãäºæãããæ¹æ³ïŒã€ãŸãå¥çŽã«åŸã£ãŠïŒã§è¡ãããããšãä¿èšŒããããšã§ãã CDCãã¹ãã®äžè¬çãªãããŒã¯ä»¥äžã®éãã§ãã å¥çŽã®å®çŸ© ïŒãã¹ãŠã¯ãã³ã³ã·ã¥ãŒããŒããããã€ããŒã«æåŸ
ããæ¯ãèããæ£ç¢ºã«èŠå®ããå¥çŽã®å®çŸ©ããå§ãŸããŸãããã®å¥çŽã¯ãå
·äœçã«ã¯ç¹å®ã®ãªã¯ãšã¹ãã«å¯ŸããæåŸ
ãããã¬ã¹ãã³ã¹ã瀺ã仿§ãšãªãã¹ãã§ãããã®æéããããçç±ã¯ãæç¢ºãªå¥çŽã«ããã³ã³ã·ã¥ãŒããŒãšãããã€ããŒã®éã®èª€è§£ãé£ãéããæå°åããæ¬¡ã®æ®µéã§ãããã¹ãã®æåçãé«ããããã§ãã ã³ã³ã·ã¥ãŒããŒã«ãããã¹ã ïŒæ¬¡ã«ãã³ã³ã·ã¥ãŒããŒã¯äžèšã®å¥çŽãåºã«ããŠãã¹ãã±ãŒã¹ãäœæããå®è¡ããŸãããã®ã¹ãããã§ã¯ãæåŸ
ããã¬ã¹ãã³ã¹ããããã€ããŒããæ£ç¢ºã«è¿ãããšãã§ããããã·ã¹ãã ã®éçããã¹ãããããšãç®çã§ãããã®çµæã«ãããã³ã³ã·ã¥ãŒããŒã¯å¥çŽãæ£ããæ©èœããããšã確èªã§ããä¿¡é Œæ§ã®é«ãã³ãŒãããããã€ããŒãµã€ãã«æäŸã§ããŸãã å¥çŽã®å
±æ ïŒãã¹ããç¡äºåæ ŒããåŸãã³ã³ã·ã¥ãŒããŒã¯å¥çŽããããã€ããŒãšå
±æããŸãããã®ã¹ãããã¯ãåæ¹åã®ã³ãã¥ãã±ãŒã·ã§ã³ãšå調ãä¿é²ããåºç¯ã§äžè²«æ§ã®ããçµæãçãããã«äžå¯æ¬ ã§ãã ãããã€ããŒã«ãããã¹ã ïŒæåŸã«ããããã€ããŒã¯åãåã£ãå¥çŽã«åºã¥ããŠãèªèº«ã®ãã¹ãã±ãŒã¹ãäœæãå®è¡ããŸãããã®ã¹ãããã§ã¯ããããã€ããŒãå¥çŽä»æ§ãé©åã«éµå®ããŠããããšã確èªããŸããããã«ãããåæ¹ã®ãã€ã¯ããµãŒãã¹éã®ä¿¡é Œæ§ãé«ãŸããå®å
šãªãããã¯ã·ã§ã³ç°å¢ãžã®é©çšãå¯èœãšãªããŸãã Pactã®ç¹æ§ CDCãã¹ãã®åºæ¬ãçè§£ãããšããã§ã次ã«ç޹ä»ããã®ã¯ãCDCãã¹ãã宿œããããã®åŒ·åãªããŒã«ãPact( https://docs.pact.io/ )ã§ãã Pactã¯ãCDCãã¹ãã广çã«å®æœããããã®ãªãŒãã³ãœãŒã¹ã®ãã¬ãŒã ã¯ãŒã¯ã§ããäž»ã«ãã³ã³ã·ã¥ãŒããŒãšãããã€ããŒéã®å¥çŽãå®çŸ©ãããã®å¥çŽãé©åã«éµå®ãããŠããããšã確èªããããã®ãã¹ããäœæãå®è¡ãæ€èšŒããäœæ¥ã容æã«ããŸãã åºå
žïŒ https://docs.pact.io/ Pactã®ãã1ã€ã®å€§ããªå©ç¹ã¯ãèšèªã«äŸåããªãããšã§ããããã«ãããç°ãªãæè¡ã¹ã¿ãã¯ãæã€ãã€ã¯ããµãŒãã¹éã§ã䜿çšããããšãã§ããŸããããã«ãèŠèŠçã«çè§£ã§ãããã¹ãçµæãæäŸããå¥çŽéåãçºçããå Žåã«ã¯ãã®è©³çްãæç€ºããŸããããã«ãããéçºè
ã¯åé¡ãçŽ æ©ãç¹å®ãããã®ä¿®æ£ã«åªããããšãã§ããŸãã ããããªããããã®ç« ã§ã¯Pactã®å
šæ©èœã«ã€ããŠè©³ãã説æããã®ã§ã¯ãªããPactãCDCãã¹ããã©ã®ããã«ãµããŒããããããããŠããããªãéèŠãªã®ãã«çŠç¹ãåœãŠãããšæããŸããPactã®è©³çŽ°ãªæ©èœãäœ¿çšæ¹æ³ã«ã€ããŠã¯ã å
¬åŒããã¥ã¡ã³ããŒã·ã§ã³ ãã芧ãã ããã ã¯ãŒã¯ã·ã§ããçŽ¹ä» ãããŸã§ã«ãCDCãã¹ããšPactã«ã€ããŠèª¬æããŠããŸãããããŸã ããããã®æŠå¿µãæœè±¡çã«æãããããããŸãããããã§ããã®ã»ã¯ã·ã§ã³ããã¯å
·äœçãªå®è·µäœéšãéããŠãPactã®äœ¿ç𿹿³ãšCDCãã¹ãã®ã¡ãªããããããããã説æããŸãã Pact Workshop JSã¯ãCDCãã¹ãã®å®è·µçãªéçšãäœéšã§ããã¯ãŒã¯ã·ã§ããã§ããããã§ã¯ãPactã䜿çšãããã€ã¯ããµãŒãã¹éã®å¥çŽã®å®çŸ©æ¹æ³ãšãã®ãã¹ãæ¹æ³ãäœéšã§ããŸãããã®ã¯ãŒã¯ã·ã§ããã¯ãçŸå Žã§çŽæ¥å¿çšããããšãã§ããç¥èãšã¹ãã«ãåŸãããã®ãã¿è¶³ããšãªããŸããããã«ãçŽ60åã§å®äºã§ããããèšèšãããŠããŸãã ã¯ãŒã¯ã·ã§ããã®ã¬ããžããªã¯ä»¥äžããã¢ã¯ã»ã¹ã§ããŸãã https://github.com/pact-foundation/pact-workshop-js ãã®ãã³ãºãªã³ã¯ãŒã¯ã·ã§ããã¯ãPactã䜿ã£ãŠCDCãã¹ããäœéšããæ©äŒãšãªããŸãã CDCãã¹ããæ£ç¢ºã«çè§£ããé©åã«èšå®ããããšã§ãã€ã¯ããµãŒãã¹ã®ä¿¡é Œæ§ãåäžãããããšãã§ããŸãããã®æ©äŒããã²æŽ»çšããŠãCDCãã¹ãã®å®è·µçãªéçšãäœéšããŠã¿ãŠãã ããã æºåæé ã¯ãŒã¯ã·ã§ããã®çºã®æºåã¯ãPact Workshop JSå
¬åŒã®ã®githubã«èšèŒãããŠãããŸããã以äžã®ãœãããŠã§ã¢ã®ã€ã³ã¹ããŒã«ãå¿
èŠãšãªããŸãã®ã§ãäºåã«ã€ã³ã¹ããŒã«ããŠäžããã Docker Docker Compose Node + NPM ãœãããŠã§ã¢ãå
šãŠã€ã³ã¹ããŒã«ããããæ¬¡ã«äžèšã®ã³ãã³ããå®è¡ããã¯ãŒã¯ã·ã§ããã®ãªããžããªãcloneããŠãã ããã git clone <https://github.com/pact-foundation/pact-workshop-js.git> 以äžãã¯ãŒã¯ã·ã§ããã®æºåæé ã«ãªããŸããããã§æºåã¯å®äºã§ãïŒ åŠç¿å
容 Pact Workshop JSã¯ãPactã䜿çšããConsumer Driven Contract (CDC) ãã¹ãã®å
·äœçãªæé ãšäŸãåŠã¶ããã®ã¯ãŒã¯ã·ã§ããã§ãããã®ã¯ãŒã¯ã·ã§ããã¯11ã®ã¹ãããã§æ§æãããŠããŸããããããã¯ä»¥äžã®4ã€ã®äž»èŠãªãã§ãŒãºã«åãããŠããŸãã ã¹ããã1 – 5: Pactã®å©çšã®åºæ¬ ïŒãã®ãã§ãŒãºã§ã¯ãã³ã³ã·ã¥ãŒããšãããã€ãã®éã§éä¿¡ã®å¥çŽãå®çŸ©ããããã«åºã¥ããŠãã¹ããäœæãå®è¡ãæ€èšŒããŸããããã«ãããPactãå©çšããCDCãã¹ãã®åºæ¬çãªæµããçè§£ããŸãããŸããã³ã³ã·ã¥ãŒããšãããã€ãéã®éä¿¡å¥çŽããã£ãããšæ
ä¿ãããããšã確èªããŸãã ã¹ãããã®å®æœå
容ãšããŠã¯ãã³ã³ã·ã¥ãŒãåŽã®ãšã³ããã€ã³ãåã®èª€èªèã«ããçµåãã¹ãã倱æããç¶æ
ãã¹ã¿ãŒããšããŠãPactã«ããCDCãã¹ãã«ããåé¡ã®æ€ç¥ã»è§£æ¶ãè¡ããšãããŸã§ãå«ãŸããŠããŸãã®ã§ãCDCãã¹ãã®æçæ§ã確èªããäžã§ã¯ååãªå
å®¹ãšæããŸãã ã¹ããã6 – 7: ããŒã¿ç¶æ
(stateHandlers)ãå©çšãããã¹ã ïŒæ¬¡ã®ãã§ãŒãºã§ã¯ããããã€ãåŽã«æ ŒçŽãããŠããããŒã¿ã®ç¶æ
ã«å¿ãããã¹ããè¡ããŸããããã«ãããããŒã¿ç¶æ
ãšå¿çããŒã¿ã®é¢ä¿æ§ã®æ€èšŒãPactã§è¡ãæ¹æ³ãåŠã³ãŸããå
·äœçã«ã¯ã察象ã®IDã®ååãååšããªãã±ãŒã¹ããååãå
šããªãå Žåã®ã±ãŒã¹ã«ã€ããŠã®å®è£
ãè¡ããŸãã APIã®ãšã³ããã€ã³ãããªã¯ãšã¹ããã¬ã¹ãã³ã¹ã®åœ¢åŒãªã©ã¯ãIDL(Interface Definition Language)ãå©çšããããšã§éçãªæ€èšŒãè¡ãããšãå¯èœã§ãããããŒã¿ã®ç¶æ
ã«åºã¥ãã¬ã¹ãã³ã¹å
容ã¯åçãªæ§è³ªãæã€ããããã¹ãã§ã®æ€èšŒãå¿
èŠãšãªããŸããPactã§ã¯stateHandlersã®æ©èœãå©çšããããšã§ããããã®åçãªã¬ã¹ãã³ã¹ãå¹ççã«ãã¹ãããããšãå¯èœãšãªããŸãã ã¹ããã8 – 10: åçãªããŒã¿ã«ã€ããŠã®ãã¹ã ïŒãã®æ®µéã§ã¯ãåçãªããŒã¿ïŒäŸãã°ãèªèšŒããŒã¯ã³ãªã©ïŒã«ã€ããŠã®ãã¹ããè¡ããŸãããã®æ®µéã§ã¯ãåçãªããŒã¿ãæ±ããã¹ãã±ãŒã¹ã§Pactãã©ã®ããã«å©çšãããã«çŠç¹ãåœãŠãŸããå
·äœçã«ã¯ãAPIã®èªèšŒæ©èœãšããŠã¿ã€ã ã¹ã¿ã³ããå«ãããŒã¯ã³ã®çµã¿èŸŒã¿ããŠãŒã¹ã±ãŒã¹ãšããŠèããŸããããã§ã¯ããã®ãããªåé¡ã解決ããããã«Pactãã©ã®ããã«æŽ»çšããããåŠã³ãŸãã ãŠããããã¹ãã§æåŸ
å€ãæ€èšŒããéãæ¥ä»æ
å ±ãäžæçãªèªèšŒããŒã¯ã³ã®ãããªåçãªããŒã¿ã®åãæ±ãã¯åžžã«èª²é¡ãšãªããŸããPactã§ã¯RequestFilterãšããæ©èœã䜿ã£ãŠãããã®åçãªèŠçŽ ã«å¯Ÿå¿ãããã¹ããå®è£
ããããšãå¯èœã§ããããã«ããããã¹ãã®ä¿¡é Œæ§ãšç²ŸåºŠã倧å¹
ã«åäžããåé¡è§£æ±ºã®æéãåæžã§ããŸãã ã¹ããã11: Pact Brokerãå©çšããå¹ççãªPactãã¡ã€ã«ã®ç®¡ç ïŒæåŸã®ãã§ãŒãºã§ã¯ãPact Brokerãå°å
¥ããPactãã¡ã€ã«ã®ç®¡çãå¹çåããŸããPact Brokerã¯ãPactãã¡ã€ã«ã®ããŒãžã§ã³ç®¡çãå
±æãæ€èšŒçµæã®è¿œè·¡ãªã©ãè¡ãããšãã§ããè€æ°ã®ãµãŒãã¹ãããŒã éã§ã®å¥çŽãã¹ãã容æã«ããŸããããã«ãPact Brokerã¯CDCãã¹ãã®çµæãäžå
çã«ç®¡çãããããåºã«èªåçã«ãããã€ãèš±å¯ããã倿ãããªã©ãCI/CDãã€ãã©ã€ã³ãšã®çµ±åã匷åã«ãµããŒãããŸããããã«ãããCDCãã¹ãã®çµæãçŽæ¥CI/CDããã»ã¹ã«åæ ãããããšãå¯èœãšãªããéçºããã»ã¹å
šäœã®å¹çåã«å¯äžããŸãã ã¯ãŒã¯ã·ã§ããã§ã¯ãPactã®ãã¹ããæå³çã«å€±æããç¶æ³ãèšããŠããŸããããããããªããã¹ãã倱æããã®ãïŒããèªå·±åŠç¿ã®äžç°ãšããŠçè§£ããããšãæ±ããããŸãã ãã®ããã«ãåã¹ããããé æ¬¡é²ããªãããPactã®äœ¿ç𿹿³ãšãã®æçæ§ãæ·±ãçè§£ããããšãããã®ã¯ãŒã¯ã·ã§ããã®äž»ãªç®çã§ãã äœéšãšæŽå¯ ã¯ãŒã¯ã·ã§ãããçµããŠã¿ãŠæããã®ã¯ãCDCãã¹ãã®å
šäœçãªãããŒãçè§£ãäœéšããããšãã§ããããã«ã¯Pactã䜿çšããŠå¥çŽãå®çŸ©ãããã¹ããäœæãå®è¡ãæ€èšŒããæ¹æ³ãåŠã¶ããšãéåžžã«æçã ã£ããšããããšã§ãã ãã®ã¯ãŒã¯ã·ã§ããã®æçµæ®µéã§Pact Brokerã®çµã¿èŸŒã¿ãè¡ã£ãããšã«ããããæåŸã«ãã€CDCãã¹ããè¡ããããïŒãããã©ã®ããŒãžã§ã³ã®ãããã€ããšæ¥ç¶ã確èªãããïŒããšãã£ãæ
å ±ãWebäžã§ç°¡åã«ç¢ºèªã§ããããã«ãªã£ãã®ã倧ããªåç©«ã§ããã ãŸããã¯ãŒã¯ã·ã§ããã§åŠãã ããšã¯åºæ¬çãªäŸã«ãããŸãããå®ç°å¢ã®CDCãã¹ãã¯ãããã«å€ãã®ã·ããªãªãã«ããŒã§ãããšæããŸããç¹ã«ããã€ã¯ããµãŒãã¹ç°å¢ã§ã¯ãCDCãã¹ãã«ãã£ãŠå®çŸããããµãŒãã¹éã®ãããã¯ãŒã¯ã°ã©ãã¯ãåãµãŒãã¹ã®æ¥ç¶ç¶æ³ãäžèŠ§è¡šç€ºããããšã«éåžžã«åœ¹ç«ã¡ãŸãã ãã®çºããã®ã¯ãŒã¯ã·ã§ãããæåŸ
以äžã«äŸ¡å€ããäœéšã§ãã£ããšæããŠããŸãã åºå
žïŒ https://github.com/pact-foundation/pact_broker#network-diagram æåŸã« ä»åã¯ã Consumer Driven Contract (CDC) ãã¹ã ãš Pact ã«é¢ããã¯ãŒã¯ã·ã§ããã«ã€ããŠã玹ä»ããããŸããããããã®ç¥èãšããŒã«ããããªãã®éçºããã»ã¹ãæŽã«äžå¯§ã§ãå¹ççãªãã®ã«é²åãããããé«å質ãªãœãããŠã§ã¢äœãã«è²¢ç®ããããšãå¿ããé¡ã£ãŠããŸãã ãã®ã¯ãŒã¯ã·ã§ãããéããŠãæ°ããªã¹ãã«ãç²åŸããèªèº«ã®æè¡ã¹ã¿ãã¯ãæ¡åŒµããããã®ç¬¬äžæ©ãšãªãããšãæåŸ
ããŠããŸããã©ããããã®æ©äŒã«ã¯ãŒã¯ã·ã§ããã詊ããŠã¿ãŠãã ããã The post CDCãã¹ãã«è§ŠããŠã¿ãããPact JS workshopãå©çšããCDCãã¹ãã®å®äœéš first appeared on Sqripts .