ã¿ãªããã¯ãããŸããŠãQAã³ã³ãµã«ã¿ã³ãã®ãã£ã¡ã§ãã ç§ã¯ãããŸã§å¶åŸ¡ç³»ãšã³ãžãã¢ãšããŠæ§ã
ãªæ¡ä»¶ã«æºãã£ãŠããŸãããä»åã®ããã°ã§ã¯ãå¶åŸ¡ç³»éçºãšã¯ã©ã®ãããªéçºããšããã話ããèªèº«ãçµéšããŠåŠãã éçºã§ã®èª²é¡ã察çã玹ä»ããããšæããŸãã å¶åŸ¡ç³»éçºãšã¯ã©ããªãã®ã å¶åŸ¡ç³»éçºãšçµèŸŒã¿éçºã¯ãããæ··åãããŸãããéãéçºã®çš®é¡ã«ãªããŸãã å¶åŸ¡ç³»éçºã¯å
·äœçãªã¢ããäœãã®ã§ã¯ãªããã¢ããå¶åŸ¡ãããšããèãæ¹ããããããããšæããŸãã è»ãèªåçã«ç®çå°ã«éã¶ããã®ä»çµã¿ãäœãåºãã·ã¹ãã éçºãå¶åŸ¡ç³»éçºãšèããããšãã€ã¡ãŒãžãããããšèããŸããé転æãããªãèªåè»ãããããããç©ãæŽãåäœãããå Žåãªã©ã人ãæäœããããšãªããåäœãå¶åŸ¡ããã·ã¹ãã ãäœãã®ãã·ã¹ãã éçºã®æŠèŠã«ãªããŸãã äŸãã°ãèªåè»ã«ä¹ã£ãŠé«ééè·¯ãèµ°ã£ãŠãããšããŸããå¶åŸ¡ç³»éçºã§ã¯ãèªåè»ãé床ãäžå®ã«ä¿ã€ããã«å¶åŸ¡ããã·ã¹ãã ãäœæããŸãããããã®é床ãç®æšå€ãããéããªã£ããããã¬ãŒãã軜ããããŠé床ãäžããããæç€ºããç®æšå€ãããé
ããªã£ããã¢ã¯ã»ã«ãèžãã§é床ãäžããããæç€ºããŸããããã«ãããèªåè»ã¯ç®æšã®é床ãããŒãã§ããã®ã§ãã å¶åŸ¡ç³»éçºã¯ãèªåè»ã®ä»ã«ããæŽæ¿¯æ©ã®æ°Žé調æŽããšã¢ã³ã³ã®æž©åºŠèª¿æŽãé»è»ã®èªåé転ãªã©ãããŸããŸãªå Žé¢ã§æŽ»çšãããŠããŸããã·ã¹ãã ãäžå®ã®ç®æšãéæããããã«ãæç€ºããåºãä»çµã¿ãªã®ã§ãå¹ççãã€å®å
šãªåäœãå®çŸããããšãå¯èœã§ãã å¶åŸ¡ç³»éçºã¯ãç§ãã¡ã®ç掻ã®äžã§èªååãå¹çåãå®çŸããããã«æ¬ ãããªãæè¡ãªã®ã§ãã éçºçŸå Žã§èŠåŽããã㚠次ã«ãå®éã®éçºã«ãŠèŠåŽããããšãèšèŒããŠãããŸããWebéçºãã¢ããªéçºãšãéè€ããå
容ããããŸãããäž»ã«èŠåŽããããšãããã¯ã¢ããããŠèšèŒããŸãã ãœãããŠã§ã¢ã ãã§ãªããããŒããŠã§ã¢ã®ç¥èãå¿
èŠ å¶åŸ¡ç³»éçºã§ã¯ãœãããŠã§ã¢ã®ç¥èã ãã§ãªããããŒããŠã§ã¢ã®ç¥èãå¿
èŠã«ãªããŸãããã¡ããå°éå®¶ã»ã©ã®ç¥èŠã¯äžèŠã§ãããéçºã§ã¯ããããã¯ããŒãã䜿çšããŠãããã°ã©ã ãæµã蟌ãã§ããã°ã©ã ã®åäœç¢ºèªãè¡ããŸãã æ€èšŒã§ã¯ããªã·ãã¹ã³ãŒã â»1 ãPLC â»2 ãªã©ããŒããŠã§ã¢ã䜿çšããŠããã°ã©ã ãå¶åŸ¡ãããã¹ããè¡ã£ããããŸããæ®æ®µäœ¿ãæ
£ããŠããªããã®ãªã®ã§ãæå䜿ããšãã«ã¯æ
£ãããŸã§æéãããããŸããã æ³å®ãã仿§ã®è€éã å¶åŸ¡ç³»éçºã§ã¯ãæ§ã
ãªæ¡ä»¶ã§èµ·åããã忢ããããããããè€éãªä»æ§ã«ãªããããã§ãã现ããªå¶åŸ¡ãå¿
èŠã§ãããããæ°åŠçãªèšç®åŒã䜿ã£ãŠå¶åŸ¡ãè¡ãå ŽåããããŸãã ãããã£ãå Žåããªããã®åŠçã«ãªã£ãŠããã®ããã©ã®ä»æ§ã§ãã®ããã°ã©ã ãåäœããŠãããçã調ã¹ãã®ãå°é£ãªå Žåãå€ãã§ãã ãŸããåäœããç°å¢ã¯ãèªåè»ãã»ã³ãµãŒã®ãããªã¢ãã§ãããããå®éã®åäœãèŠãããšã¯äžã
ã§ããŸããããšãã¥ã¬ãŒã¿çã䜿çšããä»®æ³ç°å¢ã§ããã°ã©ã ãäœæããããã¹ããè¡ã£ããããŸãããã®ããã䜿çšããããŒã«çã®çè§£ãç¿åŸãå¿
èŠã«ãªããŸãã çŽæã®å³ãã çŽæã«ã€ããŠã¯Webéçºãã¢ããªéçºãåæ§ã«ãªããŸãããå¶åŸ¡ç³»éçºã§ã¯ã¢ãïŒããŒããŠã§ã¢ïŒãå«ããŠå®æã«ãªããŸããä»ã§ã¯PCãã¹ããŒããã©ã³ã¯å®¹æã«æºåã§ãããã®ã«ãªããããæºåã«ãããŸã§æéãå¿
èŠã«ã¯ãªããŸããã ããããèªåè»ãã»ã³ãµãŒãªã©åäœç°å¢ãå«ããŠãªãªãŒã¹ãããšãªããšæ§ã
ãªæºåãå¿
èŠã«ãªããŸãããã£ãŠããœãããŠã§ã¢ã®éçºã ãã§ãªããããŒããŠã§ã¢ã®æºåã鲿ã«ãæ°ãé
ãå¿
èŠããããŸãã 課é¡ã«å¯Ÿãã察ç äžè¿°ãã課é¡ã«å¯ŸããŠã®å¯Ÿçã«ã€ããŠä»¥äžã«èšèŒããŸãã ããŒããŠã§ã¢ã®ç¥èããã£ããã€ãã å
è¿°ã§ãèšèŒããéããå¶åŸ¡ç³»éçºã§ã¯è²ã
ãªããŒããŠã§ã¢ã䜿çšããŠéçºãè¡ãããšãå€ãã®ã§ãœãããŠã§ã¢ã®å匷ã ããè¡ã£ãŠããã°è§£æ±ºã§ãããã®ã§ã¯ãããŸããããã£ãŠãåéçºã«äœ¿çšããããŒããŠã§ã¢ã®çè§£ãæ·±ããå¿
èŠããããŸãã ããããããšã«ãããããŒããŠã§ã¢ãå«ããåäœãæèããããšãã§ããããã«ãªãããœãããŠã§ã¢ã ãã§ãªãã¢ããšããŠå
šäœãå«ããèŠç¹ã§éçºã«çæã§ããããã«ãªããŸãã ããããããšã«ãã£ãŠãœãããŠã§ã¢ã®åäœãšãã芳ç¹ã ãã§ãªããã·ã¹ãã å
šäœã俯ç°ããŠæèããŠããªãã£ãããšã«æ°ä»ãããã«ãªããŸãã è€éãªããžãã¯ãçè§£ã§ããèšç·Žããã å¶åŸ¡ç³»éçºã ãã§ãªããã®ä»ã®éçºã§ãåãããšãèšããŸãããè€éãªä»çµã¿ã仿§ãçè§£ããã®ã¯å®¹æã§ã¯ãããŸãããç§ãæåã¯èŠåŽãããŸãããããªããã®ãããªèšç®åŒã䜿ãã®ãããªããã®ã¿ã€ãã³ã°ã§å¶åŸ¡ãè¡ãã®ããšããèŠç¹ã§ç©äºãèãããšã ãã ããšçè§£ã§ããããã«ãªãã仿§æžã«æžãããŠããå
容ã«å¯ŸããŠããåé¡ããããšããã«ææã§ããããã«ãªã£ãŠãããŸããããã®éã«åœ¹ã«ç«ã£ãã®ã¯ããžã«ã«ã·ã³ãã³ã°ãšããèãæ¹ã§ããããžã«ã«ã·ã³ãã³ã°ãšã¯ãç©äºãçµè«ãšæ ¹æ ã«åãããã®è«ççãªã€ãªãããæããªããç©äºãçè§£ããæèæ³ã«ãªããŸããä»ã§ã¯æžç±ãç ä¿®ãªã©æ§ã
ãªèšç·Žæ¹æ³ããããŸãã®ã§ãèå³ãããæ¹ã¯ãã²å匷ããã ãããšããå§ãããŸãã å
šäœãèŠæ®ããã¹ã±ãžã¥ãŒã«ç®¡çãæèãã å
è¿°ãè¿°ã¹ãããã«å¶åŸ¡ç³»éçºã§ã¯ãœãããŠã§ã¢ã ããªããããŒããŠã§ã¢ãå«ããéçºã«ãªããŸãããã£ãŠãåŸæ¥ã§ããã°ãœãããŠã§ã¢ã®ãªãªãŒã¹ã¹ã±ãžã¥ãŒã«ãèæ
®ããŠããã°åé¡ãªãã§ãããå¶åŸ¡ç³»éçºã§ã¯ããŒããŠã§ã¢ã®ãªãªãŒã¹ãå«ããã¹ã±ãžã¥ãŒã«ç®¡çãå¿
èŠã«ãªããŸãããã®åã課é¡ç®¡çããªã¹ã¯ç®¡çãããŒããŠã§ã¢ãå«ãã管çãå¿
èŠã«ãªããŸãã®ã§æèããŠã¹ã±ãžã¥ãŒã«ç®¡çãè¡ãããã«ããŠãã ããã ãŸãšã ä»åã¯å¶åŸ¡ç³»éçºã§æ°ãä»ããã¹ãå
容ã察çã«ã€ããŠèšèŒãããŠããã ããŸãããããã«æžããŠããå
容ã«ã€ããŠã¯ãä»ã®æ§ã
ãªéçºã«ãæµçšã§ããèãæ¹ã ãšæããŸãã çŸåšã¯QAã³ã³ãµã«ã¿ã³ããšããŠæ¥åã«æºãã£ãŠãããŸãããå¶åŸ¡ç³»éçºã«ãã£ãŠåŸãå
šäœã俯ç°ããŠéçºãé²ããŠããçµéšãããžã«ã«ã·ã³ãã³ã°æèãçšããŠãããžã§ã¯ãã®èª²é¡ã®è§£æ±ºããããšã§ãæçµçãªææç©ã®å質ã®åäžã«ç¹ãã£ãŠããããšã身ããã£ãŠå®æããŠãããŸãã ä»åŸããããžã§ã¯ããæåã«å°ããããã«æ¥ã
ã¹ãã«ã¢ãããç®æããŠæ¥åãéè¡ããŠãããããšèããŠãããŸãã APPENDIX:çšèªã®èª¬æ â»1ïŒ ãªã·ãã¹ã³ãŒãïŒWikipediaïŒ ãªã·ãã¹ã³ãŒã (è±: oscilloscope) ã¯ãå
¥åããä¿¡å·ã®é»å§ã®å€åãæéã®é¢æ°ãšããŠèŠèŠçã«è¡šç€ºãã黿°èšåšã衚瀺ãããæ³¢åœ¢ãããæ¯å¹
ã»åšæ³¢æ°ã»ç«ã¡äžããæéïŒè±èªçïŒã»æéééãªã©ã®å€ãåŸãããšãã§ãããæã®ãªã·ãã¹ã³ãŒãã§ã¯ããããã®å€ãåŸãã«ã¯ç»é¢ã«çµã¿èŸŒãŸããç®çãã䜿ã£ãŠæ³¢åœ¢ãæåã§èªã¿åã£ãŠèšç®ããå¿
èŠããã£ãããçŸåšã®ãªã·ãã¹ã³ãŒãã¯ãããã®å€ãèªåã§èšç®ããŠè¡šç€ºããã â»2ïŒ PLCïŒWikipediaïŒ ããã°ã©ããã«ããžãã¯ã³ã³ãããŒã©ïŒè±: programmable logic controllerãPLCïŒã¯ããªã¬ãŒåè·¯ã®ä»£æ¿è£
眮ãšããŠéçºãããå¶åŸ¡è£
眮ã§ãããããã°ã©ããã«ã³ã³ãããŒã©ãšãåŒã°ããäžè¬çã«ã·ãŒã±ã³ãµïŒäžè±é»æ©ã®åååã§ãããç»é²åæšã§ã¯ãªãïŒãšãåŒã°ããã The post ãããžã§ã¯ããæåãããå¶åŸ¡ç³»éçºã®é²ãæ¹ïŒåŠãã æèšãšå¯Ÿç first appeared on Sqripts .
ããã«ã¡ã¯ãã¿ããã¡ã§ãã ã¢ãžã£ã€ã«éçºã®QAãšããŠæ¥ã
æ¥åãè¡ã£ãŠããŸãã 11/2ã«éå¬ããã JaSST’23 Kyushu ã«ãªã³ã©ã€ã³åå ããŠããŸãããä»åã¯ãE2Eãã¹ãã®èªååå°å
¥ãããç¶ç¶çãã¹ãããããŒãã«ãã ã ãã¹ãèªååããã éçºãæ¯ããç¶ç¶çãã¹ããž ã ãšããã»ãã·ã§ã³ã«ã€ããŠãèŠç¹ãšæããããšãã¬ããŒãããããšæããŸãã ã»ãããŒæŠèŠ ã ãã¹ãèªååããã éçºãæ¯ããç¶ç¶çãã¹ããž ã ä»åã®ã»ãã·ã§ã³ã¯ãããéçºããŒã ããã¹ãèªååã®å°å
¥ãç®åãã«ããœãããŠã§ã¢éçºãµã€ã¯ã«å
šäœã«æ®µéçã«ãã¹ããå°å
¥ããŠããã ç¶ç¶çãã¹ã ããå®çŸãããŸã§ã®é²åã®éã®ãã«ã€ããŠã話ããããŠããŸããã ãç»å£è
ã æ«æ æä¹ïŒãããã ãããïŒãã ãªãŒãã£ãã¡ã€æ ªåŒäŒç€Ÿ ã·ãã¢ãã¯ãã«ã«ãµããŒããšã³ãžãã¢ïŒãã¹ãèªååã¹ãã·ã£ãªã¹ã ã¡ãªã¿ã«ãç¬ãããªããšçããŠãããªãã¿ã€ãã®äººéãªãã§ããããšãèªèº«ã§ãã£ããã£ãŠããéãã70åã®è¬æŒã¯é¢çœããŠãã£ãšããéã§ããã è³æã¯å
¬éãããŠããŸãã®ã§ãèå³ã®ããæ¹ã¯èŠããŠã¿ãŠãã ããã ç¶ç¶çãã¹ãã«é²åãããŸã§ã®éã®ã ããã¯æ«æããã6幎åã«QAããœãããŠã§ã¢éçºã«æºãã£ããšãã®è©±ã ããã§ãã ææ¥ãªãªãŒã¹ãããšãããªãªãŒã¹æ¥çšãå·®ãè¿«ã£ãŠããç¶æ³ã®ãšãã«âŠ éçºè
ïŒãQAãã¹ãããŠãã ããïŒã QA ïŒãã¯ãïŒã QA ïŒããã°èŠã€ãããŸããïŒã éçºè
ïŒããã°çŽããŸããïŒãâãªãªãŒã¹åœæ¥3æéå QA ïŒãïŒãïŒãã£ãããã¹ãããã®ïœïŒïŒã ã¿ãããªããšããšãŠãã¹ãã¬ã¹ã ã£ããšããããšã§ãéçºè
ã®å®è£
ãšQAã®ãã¹ãã®éã«äœãèŠããªãå£ããã£ãŠãŠã©ãŒã¿ãŒãã©ãŒã«ã«è¿ããã®ãæ®ã£ãŠããããã§ãããã®èŠãã¿ã®æºæ³ã¯äœãªã®ãããããå匷ããŠãããã¡ã«DevOpsãšããã®ãç¥ããŸããã DevOpsãšã¯ DevOpsãšã¯ãDevelopmentïŒéçºïŒãšOperationïŒéçšïŒãåããŠä»äºããŠããã®ãäžç·ã«ãããããšããã·ã¹ãã éçºã®æµããè¯ãããæå³ã§äœ¿ãããé èªã§ããããäžæ¯ãããæè¡ãæŠå¿µãšããŠç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ãç¶ç¶çããªããªãŒãšããèãæ¹ãåºãŠããããã§ãã åºå
žïŒ ãã¹ãèªååããéçºãæ¯ããç¶ç¶çãã¹ããž ïŒP.9ïŒ ã§ã¯ãä»åã®äž»åœ¹ãšãèšãããç¶ç¶çãã¹ãããšã¯äœãªã®ãã åºå
žïŒ ãã¹ãèªååããéçºãæ¯ããç¶ç¶çãã¹ããž ïŒP.10ïŒ äžèšå³ã®ããã«ãç¶ç¶çãã¹ãã¯ãã¹ãŠã®å Žæã§ãã¹ãã§ãããšèšãããŠããŸãã éçºãšQAã®éã«ãã£ãå£ãèŠãã¿ã®æºæ³ã§ãããã確ãã«ãã®å
«ã®åãªãå£ãåã£æãããã§ãããšããããšã§ããããéçºããŒã ã®ãã¹ããç¶ç¶çãã¹ãã«é²åãããŸã§ã®éã®ãããã¹ã¿ãŒãããŸããã ã¯ã©ã€ããã¯ã¹ãã¹ã åºå
žïŒ ãã¹ãèªååããéçºãæ¯ããç¶ç¶çãã¹ããž ïŒP.15ïŒ ããéçºããŒã ã®ã話ã§ãã1ã¹ããªã³ã2é±éã§éçºïŒãã¹ãïŒãªãªãŒã¹ãšããæµãã§ä»äºãããŠããŠã äžåºŠã«ãªãªãŒã¹ããéãå€ã ããã é§ã蟌ã¿ããŒãžãå€ã ããã ææ»ããå€ã ããšãã課é¡ããããQAã®æåãã¹ããããã«ããã¯ã«ãªã£ãŠããŸãããæåãã¹ããèªååããããªãªãŒã¹é »åºŠãå¢ãããã®ã§ã¯ãªããïŒãšããããšã§ããŸãã¯ã¯ã©ã€ããã¯ã¹ãã¹ãã®ãœãªã¥ãŒã·ã§ã³ãšã㊠E2Eãã¹ãã®èªåå ãå°å
¥ããŸããã ïŒã¡ãªã¿ã«ãã¯ã©ã€ããã¯ã¹ãã¹ããã®ååã¯ChatGPTã«èããŠããã£ãããã§ããæåŸã®æ¹ã«ã©ã£ããŒãŒããšãã¹ãããã®ãäœãããååãªãïŒãšèããããã¯ã©ã€ããã¯ã¹ã¯ã©ãã§ãããããšããããšã§åä»ã芪ã«ãªã£ãŠããã£ãããã§ããããä»äºããŸããïŒïŒ ãã¹ãèªåå åºå
žïŒ ãã¹ãèªååããéçºãæ¯ããç¶ç¶çãã¹ããž ïŒP.22ïŒ ãã¹ãèªååããããã¹ãå®è¡é床ã¯1/4ïœ1/2ãŸã§ççž®ãã4æéã ã£ããã¹ãã¯1ïœ2æéã«ãªããŸããã ãããããã«ã課é¡ããã⊠åºå
žïŒ ãã¹ãèªååããéçºãæ¯ããç¶ç¶çãã¹ããž ïŒP.25ïŒ E2Eãã¹ãã®èªåãã¹ãã³ãŒããå€ãã£ãããæ°æ©èœè¿œå ã«å¯Ÿå¿ã§ããŠããªãã£ãããšãå®éã«åãããŠã¿ãŠåããŠåé¡ã«æ°ãä»ããŸããã åé¡ã«æ°ä»ãã®ãé
ãã£ã ã®ã§ãããã¹ãæéã¯ãã¹ãã³ãŒãã®ã¡ã³ããã³ã¹äœæ¥ã远å çºçããŠãããå¢ããŠããŸããŸããã å®è£
ã®åŸã«ãã¹ãå·¥çšãéäžããŠããã®ãæªããŠããããéçºäžã«E2Eãã¹ããåãããããã®ãµã€ã¯ã«ã®äžã§åé¡ã«ããã«æ°ä»ããã®ã§ã¯ãªããã åºå
žïŒ ãã¹ãèªååããéçºãæ¯ããç¶ç¶çãã¹ããž ïŒP.32ïŒ ãšããããšã§æ¬¡ã®ãã£ã¬ã³ãžã§ãïŒ ã·ããã¬ãã åºå
žïŒ ãã¹ãèªååããéçºãæ¯ããç¶ç¶çãã¹ããž ïŒP.35ïŒ ä»ãŸã§éçºã®åŸã«éäžããŠãããã¹ããéçºã®éäžã«ãã£ãŠãããããšãã ã·ããã¬ãã ãåãå
¥ããŸããã éçºäžã«éçºè
ã«ãã£ãŠãã¹ãã³ãŒãã®å®è£
ïŒã¡ã³ããã³ã¹ããããã®ã§ã åé¡ã«æ°ä»ãã¿ã€ãã³ã°ãæ©ã ãªããCIãµã€ã¯ã«ã®äžã«E2Eãã¹ããçµã¿èŸŒãã°èªåçã«å®è¡ãããŠãªãªãŒã¹çŽåã®QAã®è² è·è»œæžãã³ãŒãããªãŒãºæéã®ççž®ããªãªãŒã¹ãµã€ã¯ã«ã®ççž®ãå¯èœãšãªããçµæãã2é±éã¹ããªã³ãã1é±éã«ããã2é±ã«1åãªãªãŒã¹ã1é±ã«1åã«ãæ¹åããŠãããŸããã ãã ããããã«ã課é¡ããã⊠éçºè
ãã¡ã«ãã©ã¹ãã¬ãŒã·ã§ã³ ããããŸããã ãCIã®å®è¡æéãé·ããªã£ãã ãUNITãã¹ãã§å
åãªã®ã«E2Eãã¹ããæžããªããšãã¡ãªã®ïŒã ãã㯠ã©ã®ãããªãã°ãã©ã®ããã«èŠã€ãããããšããããšãããŒã å
ã§å
åå
±æãããŠããªãã®ãåå ãšããããšããããã課é¡ãããã£ãã®ã§æ¬¡ã®ãã£ã¬ã³ãžã§ãã ãã¹ããªã¢ãŒããã¯ãã£ã³ã° ãªã¢ãŒããã¯ãã£ã³ã°ã¯ãªãã¡ã¯ã¿ãªã³ã°ãšé¡çŸ©èªã§äœ¿ãããŸããããªã¢ãŒããã¯ãã£ã³ã°ã¯çŽèš³ãããšåèšèšããã¹ããªã¢ãŒããã¯ãã£ã³ã°ã¯ãä»ãŸã§E2Eãã¹ãã«å¯ããããŠãããã¹ãããã£ãšããããªãã¹ãã¬ãã«ã«å¯ããŠããããšãããã®ã«ãªããŸãã åºå
žïŒ ãã¹ãèªååããéçºãæ¯ããç¶ç¶çãã¹ããž ïŒP.41ïŒ å·Šã®å³ã®ã¢ã€ã¹ã¯ãªãŒã ã³ãŒã³ãšããã¢ã³ããã¿ãŒã³ãããå³ã®å³ã®å®è¡æéãçãå®è¡ã³ã¹ããå°ãªãé ã«å
å®ããããã¹ããã©ãããã®ãã©ã³ã¹ã«ãã£ãŠãããããšããã®ã éçºããŒã å
ã§å
±æããŸãã¯åæ ãåããŸããã æ¬¡ã«ãã¹ãã®ãã©ã³ã¹ãèããŠE2Eãã¹ããæžãããåæã«ãã¹ããåã£ãŠãã«ãã¬ããžã¯ä¿ã£ãŠããããšãè£ä»ããããã®ã«ãã¬ããžèšæž¬ã1é±éã«1åãã£ãŠããã®ããŒã ã«ãšã£ãŠäžçªæé©ãªãã¹ããã©ãããã®ãã©ã³ã¹ã確ç«ããŸããã ããã«ãã£ãŠããªãªãŒã¹é »åºŠãé±1åã ã£ãã®ããã¹ããªã¢ãŒããã¯ãã£ã³ã°ã§é±4åã«å¢ããããšãã§ããŸããã ãã ããã§ã課é¡ã⊠å質ã«ã€ããŠè°è«ã§ããŠããªã ã®ã§ã¯ãªããâŠã 次ã®ãã£ã¬ã³ãžã§ãïŒ ç¶ç¶çãã¹ã ã ç¶ç¶çãã¹ã ãã¯äœãåãããªãªãŒã¹ã®åŸãŸã§ãã£ãšãã¹ããç¶ãããšããããšã§ãã åºå
žïŒ ãã¹ãèªååããéçºãæ¯ããç¶ç¶çãã¹ããž ïŒP.56ïŒ ã éçºå ã 仿§ãçè§£ãã仿§ã®æãæŒããæžãããã€ãŸãã¯éçºïœãããã€ãŸã§ã®å¿
èŠãªãã¹ãããªãã¡ã€ã³ã¡ã³ãã§èšç»ãç«ãŠãŠåæïŒQAæ¿èªæžïŒãããããèªåãã¹ããéã£ããQAã®å€æãåŸ
ããã«ïŒQAã¯éçºè
ããããã¯ããã«ïŒãããã€ã§ããããã«ãªããŸãã ã ãªãªãŒã¹å ã æªç¥ã®äžå
·åãæ¢ãããã«ãæ¢çŽ¢çãã¹ããããŸãã ã ãªãªãŒã¹æïŒæ®µéçããŒã«ã¢ãŠãïŒ ã ãŠãŒã¶ãŒã®åå¿ãèŠãããã«äžåºŠã«ãªãªãŒã¹ããªãã§ã¡ãã£ãšãã€ãªãªãŒã¹ããŠãããæ®µéçããŒã«ã¢ãŠããããŸãã ã ãªãªãŒã¹åŸïŒGAïŒGeneral AvailabilityïŒïŒ ã å
šãŠãŒã¶ãŒã«äœ¿ã£ãŠããããGAïŒGeneral AvailabilityïŒïŒ ç£èŠãäžã€ã®ãã¹ãææ®µãšããŠäœ¿ãããŠãŒã¶ãŒãã©ããªãµãã«äœ¿ã£ãŠããããšããã®ããã¹ãããŸãã äœãåãããªãªãŒã¹ã®åŸãŸã§ãã£ãšãã¹ããç¶ãããç¶ç¶çãã¹ãããããããšã«ããããããã€é »åºŠã¯é±4åããæ¯æ¥æ°åã«ãªããŸããïŒ ããã«ã¯ããŒã ã®èª²é¡æãå€ãããæåã¯éçºããã»ã¹ã®äžã®è©±ã°ããããŠããã®ããã©ããªãã¹ããå¿
èŠããèªåãã¡ãã©ããã䟡å€ããŠãŒã¶ãŒã«æäŸã§ããããªã©ãæ°ä»ãã°ããŒã å
šäœã§ å質ã«ã€ããŠè°è«ã§ããããã« ãªã£ãŠããŸããã æåŸã«æ«æããã¯ãããã®éãã«ãããšããããã§ã¯ãããŸããããã®è©±ããããå°ã«ããŠèªåãã¡ã®ããŒã ã§ã話ããŠã¿ãŠãã ãããããŒã ã®ç¶æ³ã«å¿ããã¢ãããŒããå¿
èŠã§ããããšãã£ããã£ãŠããŸããã 確ãã«ãã£ãããéãããã®ãç¶ç¶çãã¹ããã®åãçµã¿ã¯äžã€ã®äºäŸã§ãå
šãŠã®éçºããŒã ã«ãã®ãŸãŸé©å¿ã§ãããã®ã§ã¯ãªããéçºããŒã ããšã®èª²é¡ãããããã®è°è«ã®çµæããã£ãŠã解決ããŠããããã®ããã»ã¹ããã³ãã«ã€ããŠããã®è¬æŒããåŠã¶ãšãšãããã®ãè¯ãããã ãšæããŸããã ææ³ ä»åã®ã»ãã·ã§ã³ãèŽããŠããå質ã䌎ããç¶ç¶çãã¹ãããç¶ããããšããéèŠã ãšæããŸããããã ãã ãç¶ç¶çãã¹ãããããã®ã§ã¯ãªããPOïŒéçºè
ïŒQAããããããå質ããã€ã³ããæã¡ç¶ããããšã§ãã®å
ã®ãŠãŒã¶ãŒãžã®äŸ¡å€æäŸã«ã€ãªãããããšè§£éããŸãããããã«æä»£ãšå
±ã«ãŠãŒã¶ãŒã®æ±ãã䟡å€ãå€åãç¶ããä»ã ãããããå質ã䌎ããç¶ç¶çãã¹ãããç¶ããããšãããããããŠããã®ã ãšæããŸããïŒã¡ãªã¿ã«ã仿ºãã£ãŠããèªèº«ã®éçºããŒã ã¯ãŸãã«ãããäœçŸããŠããã®ã§è¬æŒãèŽããåŸãã«ããŸããšå¹žããåã¿ãããŠããŸãããïŒ ãŸããã»ãã·ã§ã³å
容ãšã¯å¥ã®èгç¹ã§çç®ããŠããã®ã¯ãä»åäžè²«ããŠæ®µéçã«äœç³»ç«ãŠãŠæ€èšŒããé²ãæ¹ã§ãããæ«æããããã£ãŠãããããããããšã§XXãèµ·ãã£ãŠãããããåºã課é¡ã次ã®ãã£ã¬ã³ãžãææããã®éœåºŠäžå¯§ã«æããã«ããŠãããµã€ã¯ã«ãã¯æ¬åœã«å§å·»ã§ãããããã¯æ¥ã
ã®æ¥åã§æèããŠããéšåã§ã¯ãããã®ã®èŒªéããŒãããŠããŸããã¡ãªãšããã§ããã£ãã®ã§ãèªèº«ã®èª²é¡ãèŠã€ããªããè¬æŒã«ããªããŸããããã£ããææ¥ããã®ä»äºã«ãã®åŠã³ã圹ç«ãŠãŠãããããšæããŸãã æåŸãŸã§èªãã§ããã ããããããšãããããŸããã The post ãã¹ãèªååãããéçºãæ¯ããç¶ç¶çãã¹ããž JaSSTâ23 Kyushu åå ã¬ããŒã first appeared on Sqripts .
ãã®é£èŒã¯ãç»å ŽããŠ20幎ãéããæçæãè¿ãã€ã€ãããã¢ãžã£ã€ã«éçºãã解説ããŸããã¢ãžã£ã€ã«éçºã«ã€ããŠã¯ãäžã®äžã«ããããã®æžç±ãæ
å ±ãããµããŠããŸãããã¢ãžã£ã€ã«ã³ãŒããšããŠ10幎以äžã®çŸå Žçµéšãããšã«ããããããŠåŠã³çŽãããæ
å ±ãäžå¿ã«ãŸãšããŠãããŸãã 第12åç®ã®ããŒãã¯ãããªãŒã³ãœãããŠã§ã¢éçºãã§ãã ãã®å
容ã¯Udemyã§å
¬éããŠãããªã³ã©ã€ã³ã³ãŒã¹ã çŸåœ¹ã¢ãžã£ã€ã«ã³ãŒããæããïŒåæ¥ã§çè§£ã§ããã¢ãžã£ã€ã«éçºãšã¹ã¯ã©ã å
¥éç·š ãã®å
容ãå
ã«ããŠããŸãã ãªãŒã³ãšããææ³ ãªãŒã³ãœãããŠã§ã¢éçºã¯ããªãŒã³éçºãšãåŒã°ããŠããŸãã æ¥æ¬ã§çãŸããããšã¿çç£æ¹åŒã¯ãã¢ã¡ãªã«ããšãŒãããã®ãœãããŠã§ã¢éçºã§æŽ»çšã»é©çšãããäœç³»åãããŠæ¥æ¬ã«é茞å
¥ãããéçºææ³ã§ãããªãŒã³ã®èãããæ¥æ¬ã®ãœãããŠã§ã¢ç£æ¥ã«çŽçµããŠãããªãã£ãã®ã¯ãæ¥æ¬äººãšããŠæ®å¿µã«æããŸãã ãªãŒã³ãšããèšèã¯ããªãŒã³ã¹ã¿ãŒãã¢ãããªã©ãçŸåšãæ§ã
ãªæžç±ã§ã䜿ãããŠããŸããããªãŒã³éçºèªäœã¯ããŸã話é¡ã«ãªããªãããã«æããŠããŸããã©ã¡ãããšãããšäžäººæ°ã§ãã ãã®çç±ãèããŠã¿ããšããªãŒã³éçºã«ã¯ãå
·äœçãªãã©ã¯ãã£ã¹ãå°ãªããã22ã®æèããŒã«ããšåŒã°ãããªãŒã³ã®èãæ¹ïŒã¹ã¯ã©ã ã§ãåºãŠãããªãŒã³æèïŒããå€ãèªãããŠãããããããããŸããã ãªãŒã³é¢ä¿ã®æžç±ãèªã¿è§£ããŠãããšããªãŒã³éçºã«ã¯ãã©ã¯ãã£ã¹ããªãã®ã§ã¯ãªãããªãŒã³æèãããŒã¹ã«çŸå Žã«å³ãããã©ã¯ãã£ã¹ãèããŠãããªãããšããã¡ãã»ãŒãžãšããããšãèŠããŠããŸãããã®ããããã¹ã¯ã©ã ãšãšãŠã䌌ãŠããŸãã ããããèªåãã¡ã§èããã®ã¯å€§åãªããšã§ãããèªè
ãçªãæŸãããããªèšãæ¹ã«ãæããŸãããã£ããããææ³ã§ãã£ãŠãã䜿ãããªããã°æå³ããããŸããããã£ããããªãŒã³æèããªãŒã³ã®ååã«ã¯ãçŸåšã®éçºã§ãéçšãããã®ãããããããã®ã«ããã®ãããã¯ãã£ãããªããšæããããåŸãŸããã ãªãŒã³éçºã®æ¬ã¯ãããŸã§3åãæ¥æ¬èªèš³ãããŠããŸããããããããããªãŒã³éçºãåŠã¶ã®ã§ããã°ãå»ç€ã«ãªã£ãŠããŸããŸãããã ãªãŒã³éçºã®æ¬è³ª ããããããã§ãã ãã®èšäºã§ãããªãŒã³éçºã®æ¬è³ªããããŒã¹ã«è§£èª¬ããŸãã ãªãŒã³ãœãããŠã§ã¢ã®7ã€ã®åå ãªãŒã³ãœãããŠã§ã¢ã®7ã€ã®ååãã¿ãŠãããŸããããæžç±ããªãŒã³éçºã®æ¬è³ªããèŠããšã䟡å€ããååãå
ã«ç»å ŽããŠããŸãã åå1ïŒ ã ãããªãã ã²ãšã€ãã¯ãã ãããªãããã§ãããã ãããã«ã¿ã«ããªã®ã¯ããªãŒã³ãæµ·å€ãããã£ãŠããèãæ¹ã ããã§ããããè±èªã ãšãWasteïŒç¡é§ã浪費ïŒããšããèšèããããŸãããããšã¿ã®èããå°éãããçµæããç¡é§ãããã ããã«ãªãããã®èšèèªäœãæµ·å€ã§ãéããããã«ãªããŸããã ããšã¿çç£æ¹åŒãæºæµãšãããªãŒã³éçºãªã®ã§ãã ãåãã¯å€§åãªååã§ããããã ããèŠã€ããã ãããªããããšã§ã顧客ãžã®äŸ¡å€æäŸãæçè·é¢ã§è¡ã£ãŠãããŸãããŸããã ãããªããã®ã¯ãããŸããŸãªã¢ãžã£ã€ã«éçºææ³ã§ãåãå
¥ããããŠããèãæ¹ã§ããããèãããšãããšã¿çç£æ¹åŒã¯ããŸããŸãªéçºææ³ã«åœ±é¿ãäžããã®ã ãšèšããŸãã åå2ïŒ å質ãäœã蟌ã 2ã€ç®ã¯ãå質ãäœã蟌ããã§ãã äºåŸã«æ¬ é¥ãèŠã€ããã®ã§ã¯ãªããæåããæ¬ é¥ãå
¥ã蟌ãŸãªãããã«ããŠããããšãããããäœã蟌ãããšè¡šçŸããŠããŸãã ãœãããŠã§ã¢ã ãšãäœã£ãããšã§ãä¿®æ£ãã§ããŠããŸãã®ã§ããäœã蟌ãããšããæèãæã¡ã«ããéšåãããã®ãããããŸãããããããããšã¿çç£æ¹åŒã ãšãçç£ç©ãè»ãªã®ã§ãæ¬ é¥ãåŸã§åãé€ããŸããã補åã«æ¬ é¥ãå
¥ã蟌ããšãåœã®å±éºã«ããªããŸãã æ¥æ¬ã ãšããœãããŠã§ã¢ã®ãã¹ãã¯ãäœã£ããã®ããã¹ãããã®ãäž»æµã§ããããããã°ãåºããšå€§éšãããæåãªã®ã§ã倧éã®ãã¹ãããæåã§å®è¡ããçŸå Žãå€ãã§ããããããšã¿åºèº«ã®äººãèšã£ãŠãããããªèšèããããŸãã ãã§ã«ãã°ãåã蟌ãŸããŠãããã®ããã¹ãããŠãã°ãåãé€ããŠããå質ããããšã¯èšããªãã ãã°ãåãé€ãããšã«å¿
æ»ã«ãªãã®ã§ã¯ãªãããã°ãã®ãã®ãåã蟌ãŸããªãä»çµã¿ãæ¹æ³ãèããå¿
èŠããããŸããããããªããã°ãéçºããã°ãäœãããã¹ãã§çºèŠãããšãããéå¹çãªããããããããã£ãšç¶ããŠããŸããŸãã ãå質ãäœã蟌ããããéçºææ³å
šè¬ã§å€§åã«ãããŠããååã§ãã åå3ïŒ ç¥èãäœãåºã 3ã€ç®ã¯ãç¥èãäœãåºããã§ãã ãœãããŠã§ã¢éçºã¯ç¥èåµé ã®ããã»ã¹ã§ããããã»ã¹ãéå¶ããªããç¥èãçã¿åºããææç©ã ãã§ãªãããã»ã¹æ¬äœãæ¹åããŠãããŸãã åå4ïŒ æ±ºå®ãé
ããã 4ã€ç®ã¯ã決å®ãé
ããããã§ãã ãœãããŠã§ã¢éçºã«ãããŠãæåã«ãã¹ãŠã決ããã®ã¯äžå¯èœãšèšããŸãããªããªããæªæ¥ãèŠéãã®ãé£ããããã§ãã æžç±ã«ã¯ããœãããŠã§ã¢ã®è©³çްãªèšèšã¯ãã³ãŒãã£ã³ã°ã®æäžã«è¡ããããã®ã§ããããšãæžãããŠããŸããèšèšãè©³çŽ°ã«æžãããããšã³ãŒãã«è¿ã¥ããŠããŸããŸããã ããããããŠæ±ºå®ãé
ãããŠãã³ãŒãã£ã³ã°äžã«èšèšããŠããã»ã»ã»ã®ãã²ãšã€ã®æãããããŸããã æææ±ºå®ã¯çŽ æ©ãè¡ãããšã倧åã§ããããæ±ºå®ãé
ããããã§ã¯ã倧åãªæææ±ºå®ãããããŠãå
å»¶ã°ããããããããŸã§æ
å ±ããã£ãŒãããã¯ãéããŠã決å®ãè¡ããŸãã åå5ïŒ éãæäŸãã 5ã€ç®ã®ååã¯ãéãæäŸãããã§ããã²ãšã€ãã®ãã ãããªãããã§ãã§ãŠãããéãäŸ¡å€æäŸãã§ãã ã¹ããŒãã匷ã¿ãšããããšã§ãç«¶åä»ç€Ÿãšã®ç«¶äºã«æã¡åã¡ãŸããããã¯ãªãŒã³ã«éãããã¢ãžã£ã€ã«éçºã®æ¬è³ªãšãèšããå
容ã§ãã åå6ïŒ äººãå°éãã 6ã€ç®ã®ååã¯ã人ãå°éãããã§ãã æžç±ã«ã¯ãããšã¿ã®è£œåéçºã·ã¹ãã ã®4ã€ã®åºæ¬ç念ã®ãã¡ã3ã€ãŸã§ãã補åéçºããã»ã¹ã«æºãã人ã«é¢ä¿ããŠããããšãããŸãããœãããŠã§ã¢éçºã¯äººéäžå¿ã®æŽ»åã§ãã ããã«ãããšã¿çç£æ¹åŒã§ã¯ãèªååãããã³ãã³ã®ä»ãããèªååããšãã衚çŸã«ããŸãã人éã倧åã«ããããšã¿çç£æ¹åŒããã衚çŸã ãšæããŸãã åå7ïŒ å
šäœãæé©åãã æåŸã®ååã¯ãå
šäœãæé©åãããã§ãã ãªãŒã³ã§ã¯ã¢ã€ãã¢ãçãŸããŠãªãªãŒã¹ãããŸã§ã®æµãããããªã¥ãŒã¹ããªãŒã ããšæããŠæ¹åããŠãããŸããããªã¥ãŒã¹ããªãŒã ã¯ãæ¥æ¬èªã«ãããšäŸ¡å€ã®æµãã§ãããªãŒã³éçºã§ã¯ããªã¥ãŒã¹ããªãŒã ã®äžéšåã§ã¯ãªããå
šäœãæé©åããŸãã å
šäœãèŠããéšåæé©ãããŠããåé¡ãã©ããã«ç§»åããŠãŸãå¥ã®åé¡ãçãŸããŠããŸããŸããã ãããå
šäœãèŠãªããæ¹åãè¡ã£ãŠãããŸããããã¯å¶çŽçè«ãšããæåãªçè«ã§ãèªãããŠããŸãã ãªãŒã³ãœãããŠã§ã¢éçºã®22ã®æèããŒã« æåŸã«ããªãŒã³ãœãããŠã§ã¢éçºã®22ã®æèããŒã«ã解説ããŸãããã®æèããŒã«ã¯ãXPã§ãããã©ã¯ãã£ã¹ã«äŒŒãç«ã¡äœçœ®ã®ãã®ã§ãããããã®ããŒã«ã¯7ã€ã®ååã«åé¡ã§ããŸãã 1. ã ãããªãã ã ããèªèãã ããªã¥ãŒã¹ããªãŒã ãããã³ã° 䟡å€ã®æµããå³è§£ããæµããæéãèšæž¬ããŠæµããççž®ããŠãã 2. å質ãäœã蟌ã èªç¥çµ±äžæ§ çµ±äžæ§ãäœã蟌ã ã³ã³ã»ããçµ±äžæ§ çµ±äžæ§ãäœã蟌ã ãªãã¡ã¯ã¿ãªã³ã° ãã¹ãã£ã³ã° 3. ç¥èãäœãåºã ãã£ãŒããã㯠ã€ãã¬ãŒã·ã§ã³ åæ éåããŒã¹éçº ããŒã éçº 4. 決å®ãé
ããã ãªãã·ã§ã³æè æçµè²¬ä»»æç¹ æææ±ºå® 5. éãæäŸãã ãã«ã·ã¹ãã ããã°ãã®èãæ¹ åŸ
ã¡è¡åçè« ãªãŒã³ãšã¯å¥ã®çè« é
ãã®ã³ã¹ã 6. 人ãå°éãã èªçºçæ±ºå® ã¢ãããŒã·ã§ã³ ãªãŒããŒã·ãã å°éç¥è 7. å
šäœãæé©åãã èšæž¬ å¥çŽ ãã詳现ãç¥ãããå Žåã¯ãæžç±ã ãªãŒã³ãœãããŠãšã¢éçº ã¢ãžã£ã€ã«éçºãå®è·µãã22ã®æ¹æ³ ããã確èªãã ããã é£èŒäžèЧ 第1åïŒã¢ãžã£ã€ã«éçºã®éå»ãçŸåšãæªæ¥ãç¥ããïŒ ç¬¬2åïŒå£°ã«åºããŠèªã¿ããã¢ãžã£ã€ã«ãããã§ã¹ã 第3åïŒåŸæ¥åéçºãšã¢ãžã£ã€ã«éçºã®éãããã®ïŒ 第4åïŒåŸæ¥åéçºãšã¢ãžã£ã€ã«éçºã®éãããã®ïŒ 第5åïŒã¢ãžã£ã€ã«éçºã®ãããã誀解ãè§£ããŠãããïŒ ç¬¬6åïŒäžçäžã§å€§äººæ°ã®ç§å¯ã«è¿«ãïŒã¹ã¯ã©ã ã䜿ã£ããœãããŠã§ã¢éçº ç¬¬7åïŒãããããã§ãããã«ããã¹ã¯ã©ã ããŒã ã®è²¬ä»» 第8åïŒã¹ã¯ã©ã ã€ãã³ãã®å®è·µæ¹æ³ 第9åïŒãšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã°ãšãã®äŸ¡å€ 第10åïŒãšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã°ã®ååãšåºç€ãã©ã¯ãã£ã¹ 第11åïŒãšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã°ã®å¿çšãã©ã¯ãã£ã¹ 第12åïŒãªãŒã³ãœãããŠã§ã¢éçº The post 第12å ãªãŒã³ãœãããŠã§ã¢éçº first appeared on Sqripts .
ã¯ãããŸããŠïŒãã¹ããšã³ãžãã¢ã®ã倧ã®åãã§ãã ç§ã¯ã²ãŒã æ¥çã§ãã¹ã¿ãŒãçµãŠããšã³ã¿ãŒãã©ã€ãºæ¥çã®ãã¹ããšã³ãžãã¢ã«ãªããŸããã ä»åã¯ããšã³ã¿ãŒãã©ã€ãºæ¥çã«è»¢èº«ããããšã§æ°ä»ãããšãåºæ¥ãããããã°ããšããã¹ããã®éãã«ã€ããŠã玹ä»ããããšæããŸãã æ°ä»ã åè·ã®ã²ãŒã æ¥çã§ã¯ãããããã°ããããããã¬ãŒããšããèšèãããã¹ããããã¹ã¿ãŒããšåãæå³ã§æ±ãããŠããããšãå€ããç§èªèº«ãããããã°ããšããã¹ããã¯åãèšèã®æå³ã ãšæã£ãŠããŸããã ãããããšã³ã¿ãŒãã©ã€ãºæ¥çã§ãã¹ãã®ç¥èãåŠã¶ãã¡ã«2ã€ã®èšèã¯ãŸã£ããç°ãªãèšèã®æå³ã ãšç¥ããŸããã ä»åã¯JSTQBèªå®ãã¹ãæè¡è
è³æ Œã®ã·ã©ãã¹ãéããŠãããããã°ãããã¹ããã®æå³ãä»ã«ããã誀解ãããããèšèããšã©ãŒããæ
éããæ¬ é¥ãã®æå³ãå確èªããŠã¿ãããšã«ããŸããã ãããã°ãšã¯ïŒ ç§ã¯ä»¥åãŸã§ããããã°ãã¯éçºè
ãããã°ã©ã ã®ãã°ãèŠã€ããè¡çºã ãšããã£ãããšããã€ã¡ãŒãžã§èªèããŠããŸããã ã§ã¯ãå®éã«ã¯ã©ã®ãããªæå³ããJSTQBã®ã·ã©ãã¹ã§ç¢ºèªããŠã¿ãŸãããã ãããã°ã¯ãæ
éã®åºãšãªãæ¬ é¥ãèŠã€ããŠãè§£æããåãé€ãäžé£ã®éçºã®æŽ»åã§ããã JSTQB-SyllabusFoundation_Version2018.J03 JSTQB-FL 1.1.2 ãã¹ããšãããã° ãµããµãããªãã»ã©ïŒã€ãŸããããã°ã©ã å
ã«æœãã§ããæ¬ é¥ãèŠã€ããŠãåå ã®ããã°ã©ã ã³ãŒãããã§ãã¯ããŠæ¬ é¥ãåãé€ãè¡çºèªäœãããããã°ããšããæå³ãªãã§ããã ã§ã¯ãæ
éã®åå ã§ããæ¬ é¥ãåãé€ããåŸãæ¬åœã«ãã®æ
éãç¡ããªã£ããã¯ç¢ºèªããªãã®ã§ããããïŒãã®çãã¯ããããã玹ä»ããããã¹ããã«ããããã§ãã ãã¹ããšã¯ïŒ ç§ã¯ããã¹ãããšããã°ããã¹ãæé éãã«å®è¡ããŠæåŸ
ããçµæãšäžèŽããŠãããã©ããã確èªããè¡çºã ãšæã£ãŠããŸãããã§ã¯ãæ£ããæå³ã¯ã©ãã§ããããïŒJSTQBã®ã·ã©ãã¹ã確èªããŠã¿ãŸãããã ãã¹ãã¯ãå®è¡ããããšã§ãœãããŠã§ã¢ã«ååšããæ¬ é¥ã«èµ·å ããæ
éã瀺ãããšãã§ãã JSTQB-SyllabusFoundation_Version2018.J03 JSTQB-FL 1.1.2 ãã¹ããšãããã° ããã¹ãããšã¯ãæ¬ é¥ãåå ã®æ
éãçºçãããã©ããã瀺ãããšãã§ãããã§ããããŸããæ
éã®çºçã¯ç¢ºèªã§ããŸããããã®æ¬ é¥ã®åå ãç¹å®ã§ããªãããšãç¹åŸŽãšèšããŸãã ã§ã¯ããã®æ¬ é¥ãããããã°ãã§åãé€ããåŸãçºçããŠããæ
éãä¿®æ£ãããããšã®ç¢ºèªã¯è¡ããªãã®ã§ããããïŒãã®åãã«ã¯ãå床ã·ã©ãã¹ã®èšèŒãèŠãŠã¿ãŸãããã ãã¹ãæ
åœè
ã確èªãã¹ãã宿œããä¿®æ£ã«ããæ¬ é¥ã解決ããããšã確èªããã JSTQB-SyllabusFoundation_Version2018.J03 JSTQB-FL 1.1.2 ãã¹ããšãããã° ãªãã»ã©ãããããã°ããè¡ã£ãŠä¿®æ£åŸã«ããã¹ãããè¡ããæ€åºããæ¬ é¥ãç¡ããªã£ãããšããã¡ããšç¢ºèªãããã§ããã ãšã©ãŒãšã¯ïŒ ç§ã¯ããšã©ãŒããšããã°ãããã°ã©ã å
ã§èª€ã£ãåäœãçºçããããšã ãšæã£ãŠããŸããã ã§ã¯ããŸããŸãJSTQBã®ã·ã©ãã¹ã§æå³ã確èªããŠã¿ãŸãããã 人éã¯ãšã©ãŒïŒèª€ãïŒãç¯ãããã®ãšã©ãŒããœãŒã¹ã³ãŒããä»ã®é¢é£ããäœæ¥ææç©ã®æ¬ é¥ïŒãã©ãŒã«ããŸãã¯ãã°ïŒãšãªãã JSTQB-SyllabusFoundation_Version2018.J03 JSTQB-FL 1.2.3 ãšã©ãŒãæ¬ é¥ãããã³æ
é 1 ã€ã®äœæ¥ææç©ã§æ¬ é¥ãçºçããããšã©ãŒã¯ãä»ã®é¢é£ããäœæ¥ææç©ã§ãæ¬ é¥ãçºçãããå¯èœæ§ãããã JSTQB-SyllabusFoundation_Version2018.J03 JSTQB-FL 1.2.3 ãšã©ãŒãæ¬ é¥ãããã³æ
é ãã¹ãæ¥çã§ã®ããšã©ãŒãã®æå³ã¯ãããã°ã©ã å
ã ãã§ã¯ãªãããã¥ãŒãã³ãšã©ãŒãå«ãã æå³ãªãã§ããããœãããŠã§ã¢ã®ãšã©ãŒã«çãŸããããã¹ããè¡ãäžã§çºçãã人çºçãªãã¹ãã€ã¯ãå«ãæå³ã§ããããšãåãããŸãããã æ¬¡ã¯ããããã°ãããã¹ããããšã©ãŒããããæ·±ãçè§£ããŠããããããäžèš3ã€ã®äžã§äœ¿ãããŠãããæ
éããšãæ¬ é¥ããšããèšèã®æå³ã«ã€ããŠã玹ä»ããŸãïŒ æ
éãšã¯ïŒ JSTQBã®ã·ã©ãã¹ã§ã¯äžèšã®ãããªå®çŸ©ããããŠããŸãã ã³ã³ããŒãã³ããã·ã¹ãã ããæåŸ
ããæ©èœããµãŒãã¹ãçµæããéžè±ããããš ãæ
éããšã¯ãã·ã¹ãã ãæåŸ
ããçµæãšç°ãªãçµæã«ãªãããšãæå³ããã®ã§ãããç§ã®çµéšåäžã§ã¯1ã€ã®æ¬ é¥ã§è€æ°ã®æ
éãçºçããããšãããå°è±¡ããããŸãããæ
éããæ€åºããããã®æŽ»åãšããŠãã¹ããè¡ãã®ã§ãã€ã¡ãŒãžãããããã§ããã æ¬ é¥ãšã¯ïŒ JSTQBã®ã·ã©ãã¹ã§ã¯äžèšã®ãããªå®çŸ©ããããŠããŸãã ã·ã¹ãã ã®èŠä»¶ãæ©èœãå®çŸã§ããªãåå ã«ãªãäžåãæ¬ ç¹ ãæ¬ é¥ããšã¯ãèŠä»¶ãæ©èœãæºãããªããæ
éãã®åå ã®ããšãªãã§ããããŸãããã¹ãã«ãã£ãŠãæ¬ é¥ããååšããŠããããšã¯ç€ºããŸããããæ¬ é¥ããååšããªãããšã¯èšŒæã§ããŸãããã€ãŸãããœãããŠã§ã¢ã«æ®åããæªæ€åºã®æ¬ 饿°ã¯æžãããŸããããæ¬ é¥ããèŠã€ãããªããšããŠãæ®åãããæ¬ é¥ãã¯ç¡ããšã¯èšãåããªãã®ãç¹åŸŽã§ãã ãã¹ãããã£ãšè©³ãã ã§ã¯ãèšèã®æå³ãåãã£ããšããã§å°ããã¹ãã«ã€ããŠæ·±æãããŠãããããšæããŸãã ãã¹ããšããã°ã以åã®ç§ã®ããã«ãœãããŠã§ã¢ã®åäœã確èªããŠæåŸ
ããçµæãåŸããããã確èªããã ããšèªèãããŠããæ¹ããããšæããŸããããããå®ã¯ãã¹ãã«ã¯äžèšã®ãããªæ§ã
ãªæŽ»åã®ããã»ã¹ãååšããŸãã ããã¹ãèšç»ãããã¹ãã®ã¢ãã¿ãªã³ã°ãšã³ã³ãããŒã«ãããã¹ãåæã ããã¹ãèšèšãããã¹ãå®è£
ãããã¹ãå®è¡ãããã¹ãå®äºã ãŸãããã¹ãããã»ã¹ã«ã¯ããã€ãã®ã¡ãªããããããŸãã ããã»ã¹ãåããããšã§ãåæ
åœã®äœæ¥ç¯å²éœéœ¬ãªã©ã®ãã¥ãŒãã³ãšã©ãŒãäºé²ã§ãã ããã»ã¹æ¯ã«ãšãã¹ããŒããªäººå¡ãã¢ãµã€ã³ããããšã«ãããäœæ¥ã®å¹çåãå®çŸã§ãã ãã¹ãããã»ã¹ã®äžã§åé¡ç¹ããã£ãå Žåãã©ã®ããã»ã¹ã«åé¡ããã£ãããåæããæ¹åãç¶ããããšãã§ãã ãã¹ãããã»ã¹ã段éçã«è¡ãããšã§ã人çºçãªãã¹ã®é²æ¢ãäœæ¥ã®å¹çåãåããã»ã¹ã®æ¹åçãå¯èœã«ãªãããªã¹ã¯ã®è»œæžã«ãç¹ãããŸãã ãŸãšã ããããã°ããšããã¹ããã®åœ¹å²ã«ã€ããŠãçè§£ãæ·±ããããã§ãããããæ¬ é¥ãåãé€ãããããã°ãã倧åã§ãããããã¹ããã«ãã£ãŠæ
éãæ€åºããããšã§æ¬ é¥ãããããšãåãããããããã¹ããã¯å¿
èŠäžå¯æ¬ ãªååšã§ããããœãããŠã§ã¢å質ãä¿ã€ããã®æåŸã®ç Šã§ããããšããåããããã ãããšæããŸãã ãŸãããšã³ã¿ãŒãã©ã€ãºæ¥çã§ã¯ã·ã¹ãã ã®å€§èŠæš¡åãè€éåãççŽæåãæ¥ã
é²ãã§ããŠããŸããããããå®çŸããããã«ãã¹ãããã»ã¹ãäžæãæŽ»çšããŠããã¥ãŒãã³ãšã©ãŒã®äºé²ãäœæ¥ã®å¹çåããã¹ããæ¹åããŠããä»çµã¿äœããåºæ¥ãããšãä»ååŠã¹ãŸããã ã¿ãªãããä»åãæ©äŒã«åãã¹ãããã»ã¹ã«ã©ã®ãããªåœ¹å²ããããã調ã¹ãŠã¿ãã®ããããããããŸãããã ã/Sqriptsãã§ã¯ããã¹ãããã»ã¹ã«ã€ããŠã玹ä»ããŠããŸããæ¯éãã§ãã¯ããŠã¿ãŠãã ããã ã»åºæ¬çãªãã¹ãããã»ã¹ åºæ¬çãªãã¹ãããã»ã¹ ã»ãã¹ãåæã®éèŠæ§ïœãã¹ããæ¯ããçžã®äžã®åæã¡ïœ ãã¹ãåæã®éèŠæ§ïœãã¹ããæ¯ããçžã®äžã®åæã¡ïœ ã»ãã¹ãèšèšææ³ ãã¹ãèšèšææ³ The post ãã¹ããšã¯äœãïŒãããã°ãšã¯éãã®ïŒ first appeared on Sqripts .
æ¬é£èŒã§ã¯ãããžã§ã¯ããããžã¡ã³ãã®å
šäœåãšãããžã§ã¯ããæåãããäžã§æäœéæããã¹ãç¥èãšæè¡ã¯ãã¡ããããããžã§ã¯ããçäžãããªãããã®æè¡ãã³ãããäŒãããããšæã£ãŠããŸãã ã¿ãªããã®ãããžã§ã¯ããä»ä»¥äžã«å
å®ããç¬é¡ã§ãããžã§ã¯ãçµçµãè¿ããããããäžç·ã«åŠãã§ãããŸãããã 第2åãšãªãä»åã¯ããããžã§ã¯ããããŒãžã£ãŒã®åœ¹å²ãå¿
èŠãªã¹ãã«ãå¿æ§ãã«ã€ããŠãäŒãããŸãã é£èŒç¬¬1åã¯ãã¡ã ã第1åããããžã§ã¯ããããžã¡ã³ããšã¯äœãïŒ ïŒ»é£èŒååå
šæå
¬éäžïŒSqriptsäŒå¡ä»¥å€ã®æ¹ãå
šæãèªã¿ããã ããŸã PMïŒãããžã§ã¯ããããŒãžã£ãŒïŒãšã¯ ãããžã§ã¯ããããŒãžã£ãŒã¯ããããžã§ã¯ãç®æšãéæããããšã«è²¬ä»»ããã€ããŒã ããªãŒãããããã«ãæ¯äœçµç¹ãä»»åœãã人ç©ã§ããããšå®çŸ©ãããŸãããããžã§ã¯ãã®æåŠã«å€§ããªåœ±é¿ãåãŒããã®ãšããŠãPMã®ååšã¯ç¬¬äžã«æããããèŠçŽ ã§ãããPMã¯ãããã ãããžã§ã¯ããããžã¡ã³ãã®ç¥èãæè¡ããããŸã§ã®çµéšãå人ã®äººéåããç·åå¡ãããããããžã§ã¯ãã®ç®çã»ç®æšãæéãŸã§ã«éæãããããžã§ã¯ãå®äºã®è²¬ä»»ãæã€ ååšã§ãã PMã®äž»ãªåœ¹å² PM㯠ãããžã§ã¯ãã®ç®çã»ç®æšãæéãŸã§ã«éæãããçºã«ããããžã§ã¯ããããžã¡ã³ãã®ããã»ã¹ãå®è¡ããããžã¡ã³ã ããŸãã ãããžã§ã¯ããããžã¡ã³ãã®ããã»ã¹ã¯äž»ã«ïŒç«äžããèšç»ãå®è¡ãç£èŠã»ã³ã³ãããŒã«ãçµçµïŒã®ïŒã€ã®ããã»ã¹çŸ€ã«åããããŸãã ããããžã§ã¯ããããžã¡ã³ãã®ããã»ã¹ããåªããŠããç¹ã¯ãã©ã®æ¥ç𮿥æ
ã§ãé©çšå¯èœãã§ããç¹ã«ãããŸããITã§ãè£œé æ¥ã§ããµãŒãã¹ã§ãããããåéã«é©çšã§ããã®ããããžã§ã¯ããããžã¡ã³ãããã»ã¹ã§ãã äžæ¹ã§ãããžã§ã¯ã掻åã«ãããŠçã¿åºããããææç©èªäœãçã¿åºãããã»ã¹ãã¯æ¥ç𮿥æ
ã«ãã£ãŠç°ãªã£ãŠããŸããã€ãã³ãäŒç»ã®ããã»ã¹ãšãã 建èšã®ããã»ã¹ã¯æããã«éããŸããããã®ææç©ãçã¿åºãããã»ã¹ãå®è¡ããã®ã¯ããŒã ã¡ã³ããŒã§ãããPMã¯ãã®ãææç©ãçã¿åºãããã»ã¹ãïŒã¡ã³ããŒã®æŽ»åã«ããïŒåæ»ã«é²ã¿ãææ¥ãŸã§ã«ææç©ãçŽåã§ãããããã«ã ãããžã§ã¯ããããžã¡ã³ãã®ããã»ã¹ãšã¢ãããŒããé§äœ¿ããŠãããŒãžã¡ã³ããã ããšããã®å€§ããªåœ¹å²ã§ãã PMãšããŠã®åœ¹å²ã«éäžãã çµéšã®ããã¿ãªããã¯ããã®ææç©èªäœãçã¿åºãããã»ã¹ïŒïŒçŸå Žã»ã¡ã³ããŒãšããŠã®æŽ»åïŒã«ãšãŠã粟éãããŠããã®ã§ã¯ãªãããšæããŸãããŸãèªããæãåºããæ¹ãã¹ã ãŒãºã«éã¶å ŽåããããããããŸãããããããããžã§ã¯ãæåã«åããäžã§ã®å®ç³ãšããç¹ã§ã¯ãå
ã㯠ããã®ãããžã§ã¯ããããžã¡ã³ãã®ããã»ã¹ïŒïŒPMãšããŠã®æŽ»åïŒãã«éäžããŠã»ãã ãšæããŸãã å°èŠæš¡ãããžã§ã¯ããçµç¹ã®ç¶æ
ã«ãã£ãŠã¯ããããžã§ã¯ããããŒãžã£ãŒãããªãããã¡ã³ããŒã®åœ¹å²ãå
Œä»»ãããããšãå°ãªãæããŸãããäŸãã°ã·ã¹ãã éçºã®PMãšããŠæŽ»åããªãããåæã«ã·ã¹ãã éçºèªäœã«ããšã³ãžãã¢ãšããŠã®åœ¹å²ãæã€ãããªå Žåã§ããããããã®ããã«å
Œåããå Žåã«ã¯ãèªåã®æŽ»åã®ã©ããPMãšããŠã®åœ¹å²ã§ãã©ããã¡ã³ããŒã®åœ¹å²ãªã®ããæèãããŠæŽ»åããããšã倧åã§ããã©ãããŠãã¡ã³ããŒãšããŠã®æŽ»åã«æéãå²ãããããããžã¡ã³ãã«å¿
èŠãªæŽ»åãæéãå
ãŠãããªãããšããäºã«ãªããªãããæ³šæããŸãããã PMã®æŽ»åãšåœ±é¿ç¯å² 以äžã¯ãããžã§ã¯ããããžã¡ã³ãå°éè·ã®äŸ¡å€ãšè²¢ç®ã瀺ãPMç¬èªã®æŽ»åãšãããŸãã ãããžã§ã¯ãç®æšãšã¹ããŒã¯ãã«ããŒã®æåŸ
ã«å¿ããããããããããžã§ã¯ãããŒã ãå°ãããš å©çšå¯èœãªè³æºãšç«¶åããå¶çŽæ¡ä»¶ãšã®ãã©ã³ã¹ãç¶æããããš ã¹ãã³ãµãŒãããŒã ãã¡ã³ãããã®ä»ã®ã¹ããŒã¯ãã«ããŒéã®åãã¥ãŠãã±ãŒã·ã§ã³ãã¯ããããš PMãžã®æåŸ
ãšè²¬ä»»ã®æ¡å€§ æè¿ã§ã¯PMãããžãã¹ã¢ããªã·ã¹ïŒBAïŒãããžãã¹ã±ãŒã¹ã®äœæããããžã§ã¯ãã®ããã®ããŒããã©ãªãªãããžã¡ã³ãäœæãªã©ãžã®é¢äžãæ±ããããã·ãŒã³ããããŸããããžãã¹ã±ãŒã¹ãšã¯ãããžã§ã¯ãã®ãç«ã¡äžãåãã«ãããžã§ã¯ãã¹ãã³ãµãŒãªã©ã«ããäœæããããããžã§ã¯ãã®ç«ã¡äžãçç±ãç®æšãèšå®ããŸãããããã®æŽ»åã«æ©ããããããžã§ã¯ããããŒãžã£ãŒãåå ããè©äŸ¡ãåæãç®æšæšé²æ¹æ³ãææ¡ã«é¢äžããããšã§ããããžã§ã¯ãã®æåè§åºŠãé«ããŠãã®åŸã®ãããžã§ã¯ã掻åãåæ»ã«ãããšãã£ãæåŸ
ã蟌ããããŠããŸãããŸãåãããã«ãããžã§ã¯ããããã£ããã®å®çŸã«åããŠããããžã§ã¯ã掻ååŸã®å皮察å¿ãžãé¢äžããããšããããŸãããããžã§ã¯ããããŒãžã£ãŒã®åœ¹å²ããã®æåŸ
ã¯çµç¹ããããžã§ã¯ãæ¯ã«ç°ãªããã®æŽ»åãããŒã©ãªã³ã° â» ãããŸãããäžèšã®ãã㪠æåŸ
ã«èšæ©å¿å€ã«å¿ããããš ãæ±ããããŠããŸãã â»ããŒã©ãªã³ã°ïŒtailoringïŒ ïŒçŽèš³ã§ã¯ãä»ç«ãŠãããããžã§ã¯ããããžã¡ã³ãã«ãããŠã¯ãããžã§ã¯ããããžã¡ã³ãã®ç¥èãææ³çãããããžã§ã¯ãã«åãããŠé©åã«èª¿æŽããŠé©å¿ãããããšãæå³ããŸãããã®å¯Ÿå¿ãæŽæã®ä»ç«ãŠã«èŠç«ãŠããŒã©ãªã³ã°ãšåŒã³ãŸãã ãããžã§ã¯ããããžã¡ã³ãã®æåææš ãããžã§ã¯ããããžã¡ã³ãã«ãããæå倿ã¯ãäŒçµ±çã«QCDïŒå質ã»ã³ã¹ãã»çŽæïŒã®éæãåºæºãšãããŠããŸããããæšä»ã¯ããã ãã§ã¯ã¹ããŒã¯ãã«ããŒã®æºè¶³ãåŸãããªããªã£ãŠããŸãããQCDSç®æšãéæããã®ã«ããªããããžã§ã¯ããæåãšèšããªãã®ããè©äŸ¡ãããªãã®ãããšããç¶æ³ã«é¥ããªããããäºåã«ãããžã§ã¯ãç®æšçã«æåææšãéæäºé
ãæç¢ºã«ããŠèšé²ãããªã©ããŠåæãåŸãŠããããšãPMãšããŠã®éèŠãªæŽ»åãšãªã£ãŠããŸããïŒåŸæ¥ã®QCDè©äŸ¡ã¯å
šäœã®30ïŒ
ã«éããªããšãèšãããŸãïŒ èšèŒããŠãããšããéæäºé
äŸïŒ è²¡åææšãéè²¡åææšã®éæ çµç¹ç§»è¡ã®å®äº ã¹ããŒã¯ãã«ããŒã®æºè¶³ 顧客ããšã³ããŠãŒã¶ãŒããã®åãå
¥ã çµç¹ãçŸå Žãžã®ææç©ã®çµ±å ã¬ããã³ã¹åºæºã®å
è¶³ããªã© PMã«å¿
èŠãšãããã¹ãã«ãšã¯ïŒ å
·äœçã«PMã«ã¯ã©ã®ãããªã¹ãã«ãæ±ããããã®ã§ããããããããžã§ã¯ã掻åã«å¿
èŠãªç¥èãçµéšã®é©çšãããŒã ãå°ããªãŒããŒã·ããâŠãªã©ãPMã«æ±ããããã¹ãã«ã¯å€æ§ã§åãå£ã¯æ°å€ãååšããŸããããã§ä»åã¯PMIãæå±ãããPMIã¿ã¬ã³ãã»ãã©ã€ã¢ã³ã°ã«ãã玹ä»ããŸãã ã¿ã¬ã³ãã»ãã©ã€ã¢ã³ã°ã«ãšã¯ã广çãªãããžã§ã¯ããããžã¡ã³ãã宿œããäžã§å¿
èŠãšãããïŒã€ã®ã¹ãã«ã»ããã§ãããããã®ã¹ãã«ãåãããã©ã€ã¢ã³ã°ã«ã®åã®éãããã©ã³ã¹ããçºæ®ãããããšããããžã§ã¯ãã®æåã«å¹æçã ãšãããŠããŸãã Ways of Working Business Acumen Power Skills Ways of WorkingïŒåãæ¹ãä»äºã®é²ãæ¹ïŒ ãä»äºïŒãããžã§ã¯ããªã©ïŒãæãéãããããã« ããŸããŸãªæ¹æ³ãšã¢ãããŒãïŒäºæž¬åãã¢ãžã£ã€ã«ããã¶ã€ã³æèããããã¯ãŸã éçºãããŠããªãæ°ããææ³ïŒãé§äœ¿ããŠææãäžããã¹ãã« ãæããŸãã ãã®çºPMã¯å€æ§ãªåãæ¹ãä»äºã®é²ãæ¹ãªã©ãçµéšã»ç¿åŸããããšããŸãããããé©åãªã¿ã€ãã³ã°ã§æŽ»çšãããããšãæ±ããããŸãã Business AcumenïŒããžãã¹æŽå¯åïŒ çµç¹ãæ¥çã«ããããã¯ããšãã¯ãã®åœ±é¿åãçè§£ããé©åãªæææ±ºå®ãè¡ãããã®æ©èœãŸãã¯ãã¡ã€ã³åºæã®ç¥èãæã€ ããšãæããŸãã广çã«æææ±ºå®ãè¡ããèªåãã¡ã®ãããžã§ã¯ããçµç¹å
šäœã®æŠç¥ãã°ããŒãã«ãªãã¬ã³ããªã©ã®å
šäœåãšã©ã®ããã«ãæŽåãããŠããããçè§£ã§ããã¹ãã«ãæ±ããããŸãã Power SkillsïŒãã¯ãŒã¹ãã«ïŒãšã¯ å調çãªãŒããŒã·ãããã³ãã¥ãã±ãŒã·ã§ã³ã驿°çãã€ã³ãã»ãããç®çå¿åãå
±æåãªã©ã®å¯Ÿäººé¢ä¿ã¹ãã« ãæããŸãã ãããžã§ã¯ããããŒã ã«å¯ŸãããªãŒããŒã·ããã¯ãã¡ããã®ããšããå調çãããå
±æåããšãã£ã察人é¢ä¿ã¹ãã«ãçºæ®ããŠã¹ããŒã¯ãã«ããŒãžé¢äžãã圌ãã«åœ±é¿åãç¶æãæ±ããããŠããŸãã ãããã§ããããïŒã¿ã¬ã³ãã»ãã©ã€ã¢ã³ã°ã«ã«ç€ºãããèŠæ±ã¹ãã«ãããPMãžã®æåŸ
ãããžãã¹æŠç¥ãšãã®éæã«ãšã£ãŠå€§ããªåœ¹å²ãæã€ããšãããããŸããããã®ã»ãã«ãã¿ãªããããããžã§ã¯ãã«åå ããäžã§ãå
茩PMã®æ¯ãèããªã©ãèŠãŠãèªåã ã£ããããããããæ¬¡ã®ãããžã§ã¯ããªãããã§ããããšããçºæ³ããèªèº«ã®PMåãšã¹ãã«ã»ããã®ã€ã¡ãŒãžãèšããŸããŠã¿ãŠãã ããã PMãšããŠå€§åã«ããŠã»ããããš äººéæ§ãããããžã§ã¯ãã®æšé²å ãããç¥èãæè¡ãçµéšããã£ãŠãäººéæ§ãé©åã§ãªããã°ãªãŒãã·ãããçºæ®ããããžã§ã¯ããåæ»ã«é²ããããšã¯å°é£ã§ãã ãããžã§ã¯ãã¯å€ãã®äººãšå
±ã«å£çµããŠç®çã»ç®æšã®éæãç®æããŸãããã®çºãã¡ã³ãããäžç·ã«ãããžã§ã¯ããé²ããããããã®äººã«ãªããããžã§ã¯ããä»»ããããããšæããããããªååšã§ãªããŠã¯ãªããŸãããæè¡ãšç¥èãšããåºç€åã«å ãããã®äººéæ§ã§ãªãŒããŒã·ãããçºæ®ããããžã§ã¯ããåæ»ã«é²ããŠãããŸãããã management by walking around MBWA(Management By Walking Around)ãšã¯ãæ©ããŸãããããžã¡ã³ããã€ãŸãããããŒãžã£ãŒãçŸå Žãæ©ããŠãããŒãžã¡ã³ãããããšããããšã§ãããåžã«åº§ã£ãŠå ±åãåŸ
ã£ãŠããã ãããå®äŸããŒãã£ã³ã°ã®å Žã§ã ãæ
å ±åéããããšãã£ããããŒãžã¡ã³ãã§ã¯ãªããèªãæ
å ±ãåãã«è¡ã(pull)ãã¹ã¿ã€ã«ã§ãã察話ãããããšãå¯Ÿè©±ã®æ©äŒãå¢ããããšãèªããã®ç©ºæ°ãšå Žãéžæããããšãã¡ã³ããŒã¯ãã®è¡åã空æ°ãæ±²ã¿åããèªç¶ãšå®å¿æãããã©ãŒãã³ã¹ã®å€åãåŒã³èµ·ããã¯ãã§ãããã²æèããŠã¿ãŠãã ããã ãèªå·±æµPMãã«é¥ããªãçºã« ãèªå·±æµã®PMãã¯èªåã®åŒ·ã¿ãäžå¿ã«ã䌞ã°ããç¯å²ã«æã䌞ã°ããŠãããŸãããããæ±ºããŠæªãã¯ãããŸããããäžæµã®PMãã¯ã©ãããšãããšããããã¯ãããããžã§ã¯ãã®å
šäœåãçè§£ããäžã§ãèªåãããã¹ãä»äºãæ
ããªãããèªåã²ãšãã§ã¯æã®å±ããªãä»äºãé©åã«ããŒã ã«å§ä»»ãããªã©ããŸãã倧åãªã®ã¯ãã©ã³ã¹ãšæèã§ãã 宿ã«èªå·±æµã«èµ°ããç¬èµ°ãããªãããããèªèº«ããã€ç¹æ§ã»èŠçŽ ãšäŒžã°ããŠããã¹ãæ¹åãæèããŠããããšããã¯ãããŸãããã 誰ãããç®çã»ç®æšã®éæã«ãã ãããæã€ PMã¯ãããžã§ã¯ãã®ç®çã»ç®æšãæéãŸã§ã«éæãããããžã§ã¯ãå®äºã®è²¬ä»»ãè² ãååšã ãšã話ããŸããããããå®éã«ãããžã§ã¯ããå®è¡ãããšãããããèšç»éãã«è¡ããªãããšãå€ã
çºçããã¯ãã§ããåæãå¶çŽæ¡ä»¶ãçºçããå°é£ã«å¯ŸåŠããªãããããžã§ã¯ããæšé²ããããšã¯ç°¡åã§ã¯ãããŸããããã ãããšèšã£ãŠPMãç°¡åã«è«Šãããããã®ãããã§ãããããšå®æãªåŠ¥åãããŠã¯ãããŸãããPMã¯ã§ããã°ããŒã ã§æããç®çãç®æšã«ãã ããæèããæã£ãŠãã ããããã®æèããã©ãããã°ç®çã»ç®æšãéæã§ããã ãããïŒãšããè¡åãåŒã³èµ·ããããŒã ãå°ããŸãã ãããã« ãããžã§ã¯ãã®æåã«å€§ããé¢ããPMãšãã®æŽ»åããããžã§ã¯ãã«ãããŠéåžžã«éèŠãªååšã§ããããããããã®åœ¹å²ãä»äºå
å®¹ãæ±ããããã¹ãã«ãçŽ é€ã¯å€å²ã«ããããŸããPMã¯ããææ®è
ãªã©ã«ãäŸããããŸãããæ§ã
ãªç¥èããã«æŽ»çšããæ¹åæ§ã瀺ããæè»æ§ãæã£ãŠãç¹çްã«ãæã«å€§èã«ãããžã§ã¯ãããŸãšãäžããŠããæ§åã¯ãå¿æäœãã©ã³ã¹ãæã£ããç·åæ Œéå®¶ããšããæ¹ããã³ãšããæ°ãããŸããã¿ãªããããã²PMãšããŠã®ãçèããããã«éããŠããããžã§ã¯ããæ¯ããŠãããŸãããïŒ ä»åã¯ãPMã®åœ¹å²ãæåŸ
ãããã¹ãã«ã»ãããªã©ã«ã€ããŠèããŠã¿ãŸããã æ¬¡åã¯ããèŠæãªæŽ»åãããããããªãããšèšãããããšãå€ããã¹ããŒã¯ãã«ããŒãããžã¡ã³ããããå
·äœçãªææ³ã亀ããŠåŠãã§ãããŸãããã é£èŒäžèЧ ã第1åããããžã§ã¯ããããžã¡ã³ããšã¯äœãïŒ The post ã第2åããããžã§ã¯ããããŒãžã£ãŒã®åœ¹å²ãšã¯ïŒ first appeared on Sqripts .
ããã«ã¡ã¯ïŒãšã³ãžãã¢ã®ã±ããŽã§ãïŒ å
šåœé«çå°éåŠæ ¡ããã°ã©ãã³ã°ã³ã³ãã¹ã(以äžãé«å°ããã³ã³)ã®ç¬¬34åçŠäºå€§äŒã2023幎10æ14æ¥ã10æ15æ¥ã«éå¬ãããŸãããä»åã¯ç§ã®äŒç€ŸAGESTãåè³ããããšãšãªããç§ãã¡ã³ããŒãšããŠåå ããŠããŸããã ç§èªèº«ãé«å°ããã³ã³ã®ããšãããç¥ããªãã£ãã®ã§ãããå®éã«åå ããŠã¿ãŠãåŠçã®çããã®æè¡åãšç±ãæ³ãã«ãšãŠãåºæ¿ãåããŸããã®ã§ããã®æ§åããå±ãããããšæããŸãã é«å°ããã³ã³ãšã¯ïŒ å
šåœã®é«çå°éåŠæ ¡ã®åŠçãã¢ã€ãã¢ãæè¡åãç«¶ã倧äŒã§ãã ã課é¡ããèªç±ããç«¶æãã®3éšéã§éå¬ãããŠããŸãã 以äžå
¬åŒHPã§ãã å
šåœé«å°ããã°ã©ãã³ã°ã³ã³ãã¹ã å
¬åŒãµã€ã 第34åçŠäºå€§äŒ(2023) 課é¡éšé 課é¡éšéã¯2幎ã«1床ããŒããå€ããããã®ããŒãã«æ²¿ã£ãäœåãéçºãæãåªããã·ã¹ãã ãæ±ºããéšéã«ãªããŸããä»åã¯æšå¹Žã«åŒãç¶ãããªã³ã©ã€ã³ã§çã¿åºãæ°ããæ¥œãã¿ããšããããŒãã§ããã å°æ£ãã«ã«ã¿ãªã©ãªã³ã©ã€ã³ã§æ¥œãããã²ãŒã ãéçºããŠããããŒã ããæ®æ®µã®æŽ»åããã²ãŒã ãªã©ãã¿ããªã§ãªã³ã©ã€ã³ã§æ¥œãããããã«èããããäœåã鳿¥œãªã©ããªã³ã©ã€ã³ã§ããæ¥œããããããªå·¥å€«ãããŠããäœåãªã©ãå€ãåºãŠããŸããã èªç±éšé èªç±éšéã¯èª²é¡éšéãšã¯éãèªåãã¡ãå°ã£ãŠããããšããé¢å¿ã®ããããšãªã©èªç±ãªããŒãã§ç¬åµçãªäœåãéçºããæãåªããã·ã¹ãã ãæ±ºããéšéã«ãªããŸãã åŠçå¯®ã®æŽæ¿¯ç®¡çã«ã€ããŠããã¢ã¯ãªã«å»æã®åå©çšãé«éœ¢è
ã®æè¬ç®¡çãªã©èº«è¿ãªåé¡ãã瀟äŒåé¡ãªã©å¹
åºãåé¡ã«å¯ŸåŠããäœåããã鳿¥œãã¢ãŒããªã©ã®ãŠããŒã¯ãªèŠç¹ã§ã®äœåãå€ãåºãããŠããŸããïŒ ç«¶æéšé ç«¶æéšéã¯äžããããã«ãŒã«ã«æ²¿ã£ãŠããã°ã©ã ãäœæãããã®ããã°ã©ã ãçšããŠã²ãŒã ãè¡ãããŒã å¯ŸææŠãè¡ãéšéã«ãªããŸãã ä»åã¯ã決æŠïŒnä¹è°·åããšããããŒãã§è¡ãããŠããã2ããŒã 察æŠåã®é£åãã²ãŒã ã§ãããéãã«ç«¶æãé²ãã§ãããªããåºå ŽããŠããåŠçããçã®çå£ãªè¡šæ
ããç·åŒµæãäŒãããç±ãæŠããç¹°ãåºããããŠããŸããïŒ äŒå Žã®æ§å ä»åã®äŒå Žã¯çŠäºç靿±åžã®ããµã³ããŒã çŠäºããšããå Žæã§ããã ç¹åŸŽçãªå€è£
ã®å»ºç©ã§ãã«ãã³ããã£ãã§ãïŒïŒ å
éšã§ã¯åŠçããçããèªåã®ãããªäŒæ¥ã®æ¹ãäžè¬ã®åå è
ããçã«èª¬æããŠãããŸããã åŠçããçã¯ã¿ããªèªåãã¡ã®äœåã«ã€ããŠç±ã説æããŠãããèããŠãããšåŠçããçã®ãã¬ãã·ã¥ããç±éãäœåã«å¯ŸããŠã®èªä¿¡ãäŒãã£ãŠããŠãšãŠãçŽ æŽãããã£ãã§ãïŒ ãŸãã䜿ã£ãŠããæè¡ãããŒããæ±ºãããã£ããããã¶ã€ã³ãªã©è³ªåããããšããããæ
åœã®äººãåçãè¿ããŠãããŠããªãã»ã©âŠãããâŠããšãªãç¶ããªãã説æãèããŠããŸããïŒ ç«¶æéšéãç±ãæŠããç¹°ãåºããããŠããŸããïŒæ¬¡ååå ããã§ããããã£ãšã«ãŒã«ãæåããææ¡ããããç±ã芳æŠãããããšæããŸããïŒ å人çã«å°è±¡çã ã£ããã® å
šéšã®äœåãäœéšã§ããããã§ã¯ãªãã£ãã®ã§ãããèªåãäœéšããäžã§å°è±¡çã ã£ããã®ã2ã€ç޹ä»ããããšæããŸãã VibraSymphony -å
šãŠã®äººã«ãªã¢ã«ãªVRäœéšã- ãã¡ãã¯ç³å·çã®ç³å·é«å°ã®èªç±éšéã®äœåã§ãã èŠèŠã»èŽèŠã®ã¿ã§ããäœéšã§ããªãã£ãVRã©ã€ãã«æ¯åããããã€ã¹ãåãå
¥ããèšå Žæãåäžããããšããç®çã®äœåã§ããã èžéšã»è
¹éšã«æ¯åããã¹ããŒããã©ã³ãå
¥ãããã¹ããæ¯åããã€ã¹ãå
¥ããéŽãççšããVRã©ã€ããäœéšãããŠããã ããŸãããæ¯åãæ¬åœã«ã©ã€ãäŒå Žã®é³ã®æ¯åãæããŠããããã§æ¬åœã«ãã®å Žã§ã©ã€ãã®é³ã鳎ã£ãŠãããããªæèŠã«ãªããŸããã äœåã®å®æåºŠãåŠçããçã®ååããŠèª¬æãããŠããããšãããéåžžã«çŽ æŽããããšæããŸããïŒ Learn Mate åŠçã®åŠçã«ããåŠçã®ããã®é£çµ¡ã¢ã㪠ãã¡ãã¯çŠå²¡çã®ææé«å°ã®èª²é¡éšéã®äœåã§ãã åŠçåå£«ã®æ²ç€ºæ¿ãå
çãšã®å¿åã®ãã£ãããToDoãªã¹ããæéå²ãªã©åŠççæŽ»ãéãã«ããã£ãŠæ¬²ãããã®ãããããå
¥ã£ãŠããäœåã§ãããå®éã«å°ã£ãŠããããšããããã£ãããããªãšããåŠçç®ç·ã§äœãããŠãããèªåãåŠçã®æã«ãã®ãããªä»çµã¿ãããã°ãªâŠãšæããŸããïŒ å
çãžè³ªåãããæµæè»œæžã®ããã«å¿åã«ããããå¿åã§ãæªæ¯çãã§ããªãããã«ããŠããããªã©ãäœ¿çšæã®æ³å®ã现ãããããŠããŠçŽ æŽãããã£ãã§ãïŒ AGESTäŒæ¥è³ AGESTäŒæ¥è³ãæäžããã®ã¯çŠå²¡çã®ä¹
çç±³é«å°ã®èªç±éšéãSeQuickïŒæ°è»œãªåŠç¿ã²ãŒã ã§ãã»ãã¥ãªãã£äººæãå¢ãããïŒãã§ããïŒããã§ãšãããããŸãïŒ SeQuickïŒæ°è»œãªåŠç¿ã²ãŒã ã§ãã»ãã¥ãªãã£äººæãå¢ãããïŒ ã»ãã¥ãªãã£äººæã®äžè¶³ã課é¡ãšããŠã²ãŒã 圢åŒã§æ¥œããç¶ç¶çã«ã»ãã¥ãªãã£ã®åŠç¿ãè¡ãç®çã®äœåã§ãããéåžžã«ã»ãã¥ãªãã£ãåŠã¶ã®ã«å¹æçã§ãããäŒç€Ÿã®ç ä¿®çã§ãã®ãããªã·ã¹ãã ãããã°ã广çã«æ¥œããã»ãã¥ãªãã£ã«ã€ããŠåŠã¶ããšãã§ãããšæããŸããïŒ ææ³ ãŸããããŒã ã§ããŒããæ±ºããŠã¿ããªã§ååããŠäœæããããšãããšããããšæ¬åœã«å°æ¬ããŸãïŒ ãŸããã¿ã€ãã«ã«ããããŸãããç±ã济ã³ãïŒããšæããŸããããšã³ãžãã¢ãšããŠããã®ã¥ãããããŠãããã®ãšããŠãã®ç±ã«æåããèªåãé 匵ãããšæããŸããïŒ ãŸããä»ååå ããŠããäžã§äŒæ¥ç޹ä»çãè¡ãæ©äŒããããåŒç€Ÿãå°éãšããŠããå質ã®è©±é¡ãªã©ä»åã®äœåäœãã®ãªãã§å
±æããŠããããéšåãèå³ãæã£ãŠèããŠãããåŠçãããå€ããæ¹ããŠåŒç€Ÿã®é åã«ã€ããŠèªä¿¡ãæã€ããšãã§ããŸããïŒ æåŸã« ããããã®ITãåŒã£åŒµã£ãŠããã§ãããåŠçããçãšäº€æµã§ããããšãéåžžã«è²ŽéãªäœéšããããŠããã ããŸããïŒ ãŸããåŠçããçã®ãã¬ãã·ã¥ãããã®ã¥ãããžã®ç±éãããŒã ã¡ã³ããŒãšååããŠãããšãããã¿ãŠéåžžã«ãšãã«ã®ãŒãããããŸããïŒ åå ããçããããç²ãæ§ã§ããïŒ ãããŸã§èªãã§ããã ãããããšãããããŸãã The post 第34åé«å°ããã³ã³ã§æããæªæ¥ã®ãšã³ãžãã¢ã®ç±éãšåµé å first appeared on Sqripts .
ããã«ã¡ã¯ã ãšã³ãžãã¢ã® nobushi ã§ãã RDBãå¿
èŠãªèŠæš¡ã®ããŒã¿ãæ±ãWebã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããå Žåãå€å°ãªããšããæ€çŽ¢ãæ©èœãæ±ãããããã®ã ãšæããŸãã ãããããã®ãæ€çŽ¢ãæ©èœãèŠæ±äºé
ã®å¹
ãéåžžã«å€§ãããå Žåã«ãã£ãŠã¯å®çŸãããªãé£ãããšæãããããšããããããããç¡ãã§ããããã ãå
šææ€çŽ¢ãã¯ãã®ä»£è¡šãšãæããããã®ã§ãæ©èœèªäœã¯ãšãŠãã¡ãžã£ãŒãªãã§ãããRDBã ãã§ã§ããããšã¯ãããªã«å€ããããŸããã ããã§ Elasticsearch ã®ãããªå
šææ€çŽ¢ãšã³ãžã³ã掻çšããã±ãŒã¹ãå€ããšæããŸãã ãã ãã®å ŽåãããŒã¿æŽæ°ãRDBãElasticsearchã®äž¡æ¹ã«å¯ŸããŠè¡ãå¿
èŠããããäœããšç
©éã«ãªããã¡ã§ãã PGSync 㯠PostgreSQL ãšElasticsearchã®åæããŒã«ã§ãPostgreSQLã®ããŒã¿å€æŽã峿ã«Elasticsearchã«åæ ããŠãããŸãã ãã®ãããã¢ããªã±ãŒã·ã§ã³ã§ã¯Elasticsearchãžã®ããŒã¿æŽæ°ãè¡ãå¿
èŠããªããã³ãŒããã¹ãããªããŸãã ä»åã¯ç°¡åã«PGSyncã®å°å
¥ãããŠã¿ãããšæããŸãã å°å
¥ docker-compose ã䜿ããç°å¢ã§ãä»»æã®ãã£ã¬ã¯ããªã«ä»¥äžã®ãã¡ã€ã«ãé
眮ã㊠/ db/ initdb.sh postgresql.conf pgsync/ Dockerfile entrypoint.sh schema.json docker-compose.yml é
眮ãããã£ã¬ã¯ããªã§èµ·åããŠãã ããã docker compose up -d docker-compose.yml services: pgsync: build: context: ./pgsync environment: PG_HOST: db PG_USER: postgres PG_PASSWORD: hoge ELASTICSEARCH_HOST: elasticsearch depends_on: db: condition: service_healthy elasticsearch: condition: service_healthy db: image: postgres:16.0 environment: - POSTGRES_PASSWORD=hoge command: >- -c "config_file=/etc/postgresql/postgresql.conf" volumes: - ./db/postgresql.conf:/etc/postgresql/postgresql.conf - ./db/initdb.sh:/docker-entrypoint-initdb.d/initdb.sh healthcheck: test: ["CMD", "pg_isready", "-U", "postgres"] pgadmin: image: dpage/pgadmin4:7.7 environment: - PGADMIN_DEFAULT_EMAIL=johndoe@example.com - PGADMIN_DEFAULT_PASSWORD=hoge ports: - 50080:80 elasticsearch_prepare: image: bash privileged: true user: root command: ["sysctl", "-w", "vm.max_map_count=262144"] elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.10.2 depends_on: elasticsearch_prepare: condition: service_completed_successfully environment: discovery.type: single-node xpack.security.enabled: "false" ES_JAVA_OPTS: -Xms1g -Xmx1g mem_limit: 2g healthcheck: test: ["CMD", "curl", "<http://localhost:9200>"] interval: 1s retries: 180 kibana: image: docker.elastic.co/kibana/kibana:8.10.2 environment: - ELASTICSEARCH_URL=http://elasticsearch:9200 depends_on: elasticsearch: condition: service_healthy healthcheck: test: ["CMD", "curl", "<http://localhost:5601>"] ports: - 55601:5601 PostgreSQLãElasticsearchã®ã€ã³ã¹ã¿ã³ã¹ãšãPGSyncã®ã€ã³ã¹ã¿ã³ã¹ãé
眮ããŠããŸãã ãŸãPostgreSQLãElasticsearchããããã®ViewerãšããŠpgAdminãKibanaãé
眮ããŠããŸãã db/initdb.sh #!/bin/bash -xeu set -o pipefail psql -v ON_ERROR_STOP=1 <<- _EOT_ CREATE TABLE IF NOT EXISTS public.sample (id integer PRIMARY KEY, value text); _EOT_ db/postgresql.conf include = '/var/lib/postgresql/data/postgresql.conf' wal_level = logical max_replication_slots = 10 pgsync/Dockerfile FROM python:3.11.5-alpine3.18 RUN apk update --no-cache &&\\ apk add --no-cache redis RUN pip install pgsync==2.5.0 COPY entrypoint.sh . COPY schema.json . ENTRYPOINT ["sh"] CMD ["./entrypoint.sh"] pgsync/entrypoint.sh #!/bin/sh -xeu set -o pipefail redis-server --daemonize yes bootstrap --config schema.json pgsync --config schema.json --daemon pgsync/schema.json [ { "database": "postgres", "nodes": { "table": "sample" } } ] PGSyncã®èšå® PGSyncã¯Pythonã®ã¢ããªã±ãŒã·ã§ã³ã§ãã äžèš PGSyncãµãŒããŒã®æ§ç¯ ã§ã¯Pythonã®ã³ã³ããã€ã¡ãŒãžãããŒã¹ã«ããŠããŸãã ãŸãã Redis ãå¿
é ãªã®ã§Redisãçµã¿èŸŒãã§ãŸãã èµ·åã¹ã¯ãªãã ã§ã¯RedisãµãŒããŒãããã¯ã°ã©ãŠã³ãèµ·åããåŸã«ä»¥äžã®ã³ãã³ãã§PGSyncãèµ·åããŠããŸãã bootstrap --config schema.json pgsync --config schema.json --daemon ããããPGSyncã®åæºåãèµ·åã®ã³ãã³ãã§ãã schema.json ãåŒæ°ãšããŠæž¡ããŠããŸãã schema.jsonã¯PGSyncã®å¯Ÿè±¡ããŒãã«çã®èšå®ãè¡ããŸãã ä»åã¯æäœéã®èšå®ãšããŠå¯Ÿè±¡DBã postgres ãããŒãã«ã sample ãšããŠããŸãã ãã®èšå®ã ãšå¯Ÿè±¡ããŒãã«ã®å
šã«ã©ã ãElasticsearchã«åæããããšã«ãªããŸãã ä»åã¯å²æããŸãããschemaèšå®ã§ã¯å¯Ÿè±¡ã®ã«ã©ã ãéå®ããããã¹ã¯ãªããã§å€ãå å·¥ããããšèªç±åºŠã¯é«ãã§ãã åäœæ€èšŒ ã§ã¯pgAdminãšKibanaã§ç¢ºèªããŠã¿ãŸãã pgAdminãžã®ã¢ã¯ã»ã¹ã¯äžèšã® docker-compose ã®éãã§ããã° http://127.0.0.1:50080 ã§ã Kibanaã®DevToolãžã¯ http://127.0.0.1:55601/app/dev_tools#/console ã§ã¢ã¯ã»ã¹å¯èœãªã¯ãã§ãã pgAdminãžã®login http://127.0.0.1:50080 ã«ã¢ã¯ã»ã¹ãããšãã°ã€ã³ç»é¢ã衚瀺ãããã®ã§ docker-compose ã®ç°å¢å€æ°ã§èšå®ãã以äžã®ã¡ãŒã«ã¢ãã¬ã¹ããã¹ã¯ãŒãã§ãã°ã€ã³ããŸãã johndoe@example.com / hoge pgAdminããDBãžã®æ¥ç¶ ãã°ã€ã³ãããDBãµãŒããŒãžã®æ¥ç¶ã远å ããŸãã General / Name Connection / Host name Connection / Username Connection / Password db db postgres hoge ãã®æ®µéã§ã¯ sample ããŒãã«ã¯ç©ºã§ãã Kibanaã§Elasticsearchã®ç¢ºèª http://127.0.0.1:55601/app/dev_tools#/console ã«ã¢ã¯ã»ã¹ãããšKibanaã®DevToolã³ã³ãœãŒã«ã衚瀺ãããã®ã§ GET /postgres/_search ãšå
¥åã㊠postgres ã€ã³ããã¯ã¹ã®å
容ã衚瀺ããŸãã ãã®æç¹ã§ã¯ sample ããŒãã«ã空ãªã®ã§Elasticsearchã®ã€ã³ããã¯ã¹ã空ã§ãã PGSyncã®åäœç¢ºèª ã§ã¯ãPGSyncãåäœããããšã確èªããŸãã pgAdminãã sample ããŒãã«ã«ããŒã¿ã远å ããŸãã INSERT INTO public.sample VALUES (1, 'value1') 远å ããåŸã§ãå床Kibanaã§Elasticsearchã確èªããŸãã ç¡äºãElasticsearchã«ããŒã¿ãåæãããŠããããšãããããŸãã ææ PGSyncã«ãã£ãŠPostgreSQLãšElasticsearchã®äž¡æ¹ãã¢ãããã¯ã«æŽæ°ããå¿
èŠããªããªããšããç¹ã§ã å©ç¹ã¯éåžžã«å€§ãããšæããŸãã äœ¿ãæ¹ãé£ãããªãããŸããPythonã®ã¹ã¯ãªãããèšå®ã§ããã®ã§èªç±åºŠãããªãé«ãã§ãã Elasticsearchã䜿çšããéã«ã¯æ€èšããŠã¯ãããã§ãããã The post PostgreSQLãšElasticsearchã®åæããŒã«PGSyncã䜿ã£ãŠã¿ã first appeared on Sqripts .
TestArchitectã¯2023幎å€ã«ã¢ãã€ã«ç«¯æ«ïŒiOS/AndroidïŒäžã§åäœããã¢ããªã±ãŒã·ã§ã³ãå¯Ÿè±¡ã«æ©èœãã¹ããå¯èœãªãTestArchitect for MobileãããªãªãŒã¹ããŸãããã¢ãã€ã«ç«¯æ«ãèªååããããšã§Windowsã¢ããªã±ãŒã·ã§ã³ãWebã¢ããªã±ãŒã·ã§ã³ã1ã€ã®èªååããŒã«ã§å¶åŸ¡ããããšãã§ããããã«ãªããŸããã ãããTestArchitectã¯ã¢ãã€ã«å¯Ÿå¿ãã§ããããšã ããåªããŠããç¹ã§ã¯ãããŸãããTestArchitectã¯è€æ°ãã©ããããŒã ã®å¯Ÿå¿ä»¥å€ã«ãããŒã¯ãŒãé§ååã§ã®ç°¡åãªã¹ã¯ãªããã®äœæãéšåäžèŽã§ã®ç»åæ¯èŒã仿§å€æŽãžã®åŒ·ããªã©ä»ã®èªååããŒã«ã«ç¡ãç¹åŸŽãããã€ããããããå®éã«äœ¿ã£ãŠã¿ãŠã©ã®ãããªãã®ãªã®ãæ€èšŒããŠã¿ãŸããã åèïŒ TestArchitectã®æŠèŠ TestArchitectã®ç¹åŸŽ 1. ããŒã¯ãŒãé§ååã§è€éãªåŠçããšã¯ã»ã«ã©ã€ã¯ã«ã¹ã¯ãªããäœæã§ãã TestArchitectã¯ããŒã¯ãŒãé§ååã§ãšã¯ã»ã«ã©ã€ã¯ã«ã¹ã¯ãªããäœæãã§ããããäœããããèªã¿ãããã¡ãªããããããŸããä»ã®èªååããŒã«ã§ãç°¡åã«ã¹ã¯ãªãããäœæã§ããããšã売ãã«ããŠããèªååããŒã«ããããŸããããããã£ãèªååããŒã«ã§ã¯ç°¡åãªåŠçã ãç°¡åã«èªååã§ããŸãããè€éãªåŠçã«ãªããšããã°ã©ã æè¡ãå¿
èŠã«ãªãå Žåãå€ãã§ãã ããããããããããã TestArchitectã¯äžè²«ããŠè€éãªåŠçãããŒã¯ãŒãé§ååã§èªååã§ããç¹ãä»ã®èªååããŒã«ãšç°ãªãç¹ã§ãããã®ããã«ããŒã¯ãŒãé§ååã䜿ã£ãŠç°¡åã«èªååã§ããããšã§èªååç¿çã®ããŒãã«ãäžããç¹ãTestArchitectã®è¯ãã§ããèªåãã¹ãã®çŸå Žã®åé¡ãšããŠãã¹ãæè¡è
ã§èªåãã¹ãã®ã¢ãµã€ã³ãæ€èšããŠããéã«ããã°ã©ã æè¡ãæã¡åããããã¹ãæè¡è
ãæããããšãé£ãããèªååæ
åœè
ã®ã¢ãµã€ã³ã«å°ãããšããããŸãããããããŒã¯ãŒãé§ååãäœã£ãTestArchitectã§ã¯ãããã£ãåé¡ã®è§£æ¶ãã§ããŸãã TestArchitectã¯ããã°ã©ã æè¡ãç¡ããŠãã¹ã¯ãªããäœæãã§ãããããæ°é±éããŒã«ã䜿ãã°çŸå Žã§äœ¿ããã¬ãã«ã«ãªãããšãã§ããŸããç§ã®èãã§ããèªåãã¹ãã¯ããã¹ããçç¥ããŠãããã¹ãæè¡è
ãèªååæ
åœè
ã«ãªãããšãè¯ããšèããŠããããç°¡åã«äœ¿ããTestArchitectã¯ãã¹ãæè¡è
ã«ãšã£ãŠãè¯ãããŒã«ã§ãããã¹ãæè¡è
ãã¹ãã«ã¢ããã®ãããèªåãã¹ãã®æè¡ã身ã«çããŠã¿ããæ¹ã¯TestArchitectãäžåºŠäœ¿ã£ãŠã¿ãŠã¯ã©ãã§ããããïŒ èªååçµéšã®ãªããã¹ãæè¡è
ã«ãšã£ãŠã¹ãã«ã¢ããã®ãã£ã³ã¹ã§ãã 2. è€æ°ãã©ããããŒã ã§èªååãã§ãã TestArchitectã¯ä»å察å¿ãããã¢ãã€ã«ã®ä»ãWindowsã¢ããªããã©ãŠã¶ãšç°ãªããã©ããããŒã ã1ã€ã®èªååããŒã«ã§èªååããããšãã§ããŸãããã®ãããšã¯ã»ã«ã«ç»é²ãããæ
å ±ããã©ãŠã¶ã§ç»é²ããPCããéä»ããã¡ãŒã«ãã¹ããã§ç¢ºèªãããšãã£ãè€æ°ãã©ããããŒã ãè·šãã æäœãå¯èœã§ãã åããŠèªååããŒã«ãéžã¶éã«ã€ã³ã¿ãŒãããã§è¯ãè©äŸ¡ã®èªååããŒã«ãéžãã§ããèªåãèªååããã察象ã·ã¹ãã ã«ãšã£ãŠå¿
ãããè¯ãèªååããŒã«ã ãšéããŸãããèªååã®ç®çãæç¢ºã§ãªããã°ãã©ã®èªååããŒã«ãéžãã§ãããåãããªããªããŸãããããã£ãèªååããŒã«ã«äœãå¿
èŠããææ¡ããŠããªãå Žåã§ããTestArchitectã®èªååã§ãããã©ããããŒã ãšå
å®ããã¢ã¯ã·ã§ã³æ°ãããã°ãå¹
åºãåŠçãèªååã§ãèªååããããšã«å°ãããšã¯ãªããšèšã£ãŠãéèšã§ã¯ãããŸããã åãäŒç€Ÿã§TestArchitectã䜿ã£ãŠãããããžã§ã¯ããããã°ãäžåºŠåããŠè©ŠããŠã¿ãŠã¯ã©ãã§ããããïŒèªååã§ããããšãããããããããŸãããç¡æã®Teamçãããã®ã§æ°è»œã«ããŠã³ããŒãããŠã詊ããã ããã 3. 仿§å€æŽã«åŒ·ãæ§æ TestArchitectã¯ã¹ã¯ãªããäœæããéã«åº§æšæå®ãè¡ããªããã仿§å€æŽã«åŒ·ããšããã¡ãªããããããŸãã åº§æšæå®ãè¡ãå Žåã§ã¯ãªããžã§ã¯ãã®äœçœ®å€æŽããããšã¹ã¯ãªããã®ä¿®æ£ãå¿
èŠã«ãªããŸãããTestArchitectã§ã¯ã€ã³ã¿ãŒãã§ãŒã¹ç»é²ãè¡ããŸãããªããžã§ã¯ããTestArchitectå
ã«ç»é²ãããã®ç»é²åãåã¹ã¯ãªããã§åŒåºããŠäœ¿ãããã«ãªããžã§ã¯ãã®IDãªã©ã«å€æŽããã£ãå Žåã«ãã€ã³ã¿ãŒãã§ãŒã¹ãåãçŽãããšã§ãã¹ã¯ãªããã«å€æŽã¯çºçããŸããã ããããããããã ãªããžã§ã¯ãã®IDãªã©ãã¹ã¯ãªããã§èšå®ããŠäœ¿ãèªååããŒã«ã¯ãIDãªã©ãå€ãã£ãŠããŸããšãã®ãªããžã§ã¯ãã䜿ã£ãã¹ã¯ãªããå
šãŠã«ä¿®æ£ãçºçããããšã«ãªããŸãããããã£ãã¡ã³ããã³ã¹å¹çã§TestArchitectã¯åªããŠããŸãã ã€ã³ã¿ãŒãã§ãŒã¹ãç°¡åã«ç»é²ããããšãã§ãããããç¹ã«äœ¿ãããªãããšã¯ç¹å¥ãªæè¡ã¯å¿
èŠãããŸããã ãŸãå
±é颿°ãç°¡åã«äœæããããšãã§ãããããè€æ°ã®ã¹ã¯ãªããã§äœ¿çšããåãåŠçã¯ïŒã€ã®å
±é颿°ãåŒåºããŠäœ¿çšã§ããŸãã仿§å€æŽããã£ãå Žåã«ã¯ãã®åŒã³åºãå
ã®é¢æ°ãä¿®æ£ããã°ä»æ§å€æŽã®å¯Ÿå¿ãå¯èœã«ãªããŸãã ã€ã³ã¿ãŒãã§ãŒã¹ç»é²ãšå
±é颿°ã䜿ãããšã§ã¡ã³ããã³ã¹å¹çãé«ããããšãã§ãããããTestArchitectã¯ä»æ§å€æŽã«åŒ·ãèªååããŒã«ã§ãã 4. ããŒãã¹æ©èœã§ãããã察象ãèªååã§ãã JavaãC#ãPythonã§äœã£ãããã°ã©ã ãåã蟌ã¿ãTestArchitectã§åŒåºããŠäœ¿ãããšãã§ããæ©èœããããŸãã ãã®æ©èœã䜿ãããšã§éåžžTestArchitectã§å¶åŸ¡ã§ããªãåŠçãããŒãã¹æ©èœã䜿ãããšã§èªååããããšãå¯èœã«ãªããŸãããããŸã§è«ŠããŠããèªååãTestArchitectãªãèªååã§ãããããããŸããã ãŸãããŒãã¹æ©èœã䜿ãã°Raspberry Piã䜿ã£ãçµèŸŒã¿ç³»è£œåã®å¶åŸ¡ãå¯èœã«ãªããŸãã çµèŸŒã¿ç³»è£œåã®èªåãã¹ãã¯çµèŸŒã¿ç³»è£œåãèªååããããã®ããŒã«ãäœãããšãæè¡çãªããŒãã«ãé«ãèªååã®å®çžŸãå°ãªãã§ãããTestArchitectã®ããŒãã¹æ©èœã䜿ãããšã§Raspberry Piã䜿ãçµèŸŒã¿ç³»è£œåãèªååããããšãå¯èœã«ãªããŸããRaspberry Piãšé£æºã§ããããŒãã¹æ©èœãšå¹
åºããã©ããããŒã ãèªååã§ããTestArchitectã䜿ãã°ãè€æ°ã®ã·ãã¥ã¬ãŒã¿æ©åšã䜿ã£ãIoTæ©åšã®èªååãå¯èœã«ãªããŸãã ä»ã®èªååããŒã«ã§ã工倫ãã·ãã¥ã¬ãŒã¿ãªã©å€éšæ©èœãšé£æºããããšã§ãåæ§ã®å¹
åºãæ©èœã§èªååãã§ããŸãããã®ããæ¹ã§ã¯å€§ããªåé¡ãçºçããŸãã1ã€ã®èªååããŒã«ã§è€æ°ã®å€éšæ©èœãšé£æºããå Žåãæ§é ãè€éã«ãªãå®è¡ãšã©ãŒãçºçããå Žåã®ãšã©ãŒåå ã®ç¹å®ãå°é£ã«ãªããŸããéçšæ
åœè
ã¯å¿
ãããã¹ã¯ãªããäœæè
ã§ã¯ãªããããèªååã·ã¹ãã ã®æ§é ã詳ããçè§£ããŠããªãå Žåãå€ããåé¡ãçºçããéã«è€éãªæ§é ã§ã¯åå ç¹å®ãé£ããå®éçšã«åé¡ãåºãããšãåºãŠããŸããŸãã äžæ¹ãTestArchitectã¯å
šãŠã®æ©èœãïŒã€ã®ããŒã«ã§å¶åŸ¡ããããæ§é ãè€éã«ãªãããïŒã€ã®ããŒã«ã®ãã°ãããšã©ãŒãç¹å®ããããšãå¯èœã«ãªããŸããèªååã§ããå¹
ãåºããããã®ããŒãã¹æ©èœã®ç¹åŸŽã§ããã1ã€ã®èªååããŒã«ã§è€æ°ã®ã·ãã¥ã¬ãŒã¿ãªã©ã®å€éšæ©èœãšé£æºããèªååå¯Ÿè±¡ã®æ§é ãç°¡çŽ åã§ãããšããç¹åŸŽããããŸãã 5. ã¹ã¯ãªããã®æ§æãæŽçãããã TestArchitectã§ã¯ãã¹ãã¢ãžã¥ãŒã«ã«ã¯åœ¹å²å¥ã«4ã€ã®åºåãæºåãããŠããŸãã ããããã®åºåã§å®è¡ããåŠçãåããããšã§ãå¯èªæ§ãé«ãŸãæ
åœè
ãæããããšã§ã¡ã³ããã³ã¹ãã§ããªããªãèªåãã¹ãã®éçšãæ¢ãŸã£ãŠããŸãå¯èœæ§ã¯äœããªããŸããããšããšããŒã¯ãŒãé§ååã§äœããããçè§£ããããèªååããŒã«ã®ãããïŒã€ã®åºåãããããšã§ãããããããã䜿ããããèªååããŒã«ã«ãªããŸãããã®åºåã«åãããŠã¹ã¯ãªããäœæããã ãã§ã³ãŒãã£ã³ã°èŠçŽã«åããããããªäžå®ã®å質ã®ã³ãŒãã£ã³ã°ãã§ããŸãã 6. é«åºŠãªç»åå€å®ãã§ãã äžè¬çãªèªååããŒã«ã§ã¯ç»åäžèŽã®èªåãã¹ãã¯å®çšé¢ã§ã¯ããŸã䜿ãåæããããããŸããã ãã®çç±ã¯ç»åå€å®ããã¯ã»ã«åäœã®äžèŽã§è¡ã£ãŠããããã誀å€å®ãå€ãããã§ãã ãããTestArchitectã¯Key-PointãçšããŠæœåºããç¹ç°ç¹ãšäžèŽãããã®ãç»åå
ã«ãããå€å®ããããšãã§ããŸãããã®ããå®å
šäžèŽã§ã¯ãªãéšåäžèŽã§ã®å€å®ãå¯èœã§ããããžã¿ã«ã«ã¡ã©ã§ååŸããç»åã䜿ã£ãç»åå€å®ãè¡ããšå°ãã®äœçœ®ã®ãããç»åãã€ãºãå
¥ãããšããå®å
šäžèŽã§ã¯å€å®ã¯äžå¯èœã§ãã ãã®ç¹Key-Pointæè¡ãçšããç»åå€å®ãè¡ããšããžã¿ã«ã«ã¡ã©ã§ååŸããç»åã®äžèŽãå¯èœã«ãªããŸããããžã¿ã«ã«ã¡ã©ã§ã®ç¢ºèªãå¯èœã«ãªãããšãããçµèŸŒã¿ç³»è£œåã§ã®ãã¹ãã«ã䜿ãããšãã§ããŸãã ãããããããã ç»åãã§ãã¯ã®èªååã¯ãããŸã§ãªããžã§ã¯ãèªèãã§ããªãã£ããšãã®æåŸã®ææ®µãšããŠäœ¿ã£ãŠããŸããããéšåäžèŽãå¯èœã«ãªããšäœ¿ãæ¹ãå€ããããèªååã®å¹
ãåºãããŸãã 7. èªååããŒã«ã®ã©ã€ã»ã³ã¹äŸ¡æ Œãéåžžã«å®ã èªååããŒã«ã®è³Œå
¥ãæ€èšããå ŽåãéèŠèŠãããã€ã³ãã¯èªååããŒã«ã®äŸ¡æ Œã§ã¯ãªãã§ããããã 瀟å
ã®äºç®ãéãã«ã¯äŸ¡æ Œã®é«ãèªååããŒã«ã§ã¯ãèŠåŽãäºæ³ãããŸãããã£ãšäºç®ãéããŠããããçŸå Žã§äœ¿ããªããã°ã倧ããªåé¡ã«ãªããŸãã ãããTestArchitectã¯ä»ã«èªååããŒã«ãšæ¯ã¹ãŠãäŸ¡æ Œãå®ããå®è¡ããã ãã®ãRun Onlyãã§ããã°å¹Žé9äž3ååã§äœ¿ããŸããã¹ã¯ãªããäœæã»ç·šéå¯èœãªãEnterpriseãã§ã幎é44äž9ååã§äœ¿ãããšãã§ããŸãã ä»ã®èªååããŒã«ãšæ¯ã¹ãŠãäŸ¡æ Œãäœãã倿©èœãªèªååããŒã«ã¯ä»ã«ãããŸããã ã客æ§ã«äžã«ããTestArchitectã¯ããã ã倿©èœã§ãªãããã»ã©äŸ¡æ Œãå®ãã®ã§ããïŒããšãã声ãããèããŸããèªååããŒã«ã®è³Œå
¥ã®éèŠãã€ã³ãã§ããäŸ¡æ Œãå®ããšããç¹ã ãã§ããããŒã«è³Œå
¥ã®éžæè¢ã«å
¥ããŠãã䟡å€ããããšæããŸãããã®TestArchitectãšããååãªæ©èœãæã£ãèªååããŒã«ãå®è¡ã ããªã幎éïŒäžãã䜿ãããšããã ãã§ããäœæ¥è
ãéãããšãæãã°ããªãã³ã¹ãé¢ã§ã®ã¡ãªããã¯åºãŠããŸããããªããè²·ãåŸã ãšæããŸãã 8. èªåå察象ã«åãããŠã«ã¹ã¿ãã€ãºå¯èœ ã©ãããŠãä»ã®èªååããŒã«ã§èªååã§ããªãããšãTestArchitectã§ããã°ãã«ã¹ã¿ãã€ãºãè¡ãããšã§ä»ã®èªååããŒã«ã§ã§ããªãããšãèªååãããããšãã§ããŸãã Linuxç°å¢ã§å
å®ããèªåãã¹ããè¡ãããšãã§ããèªååããŒã«ãæ¢ããšãªããšãªããªãè¯ããã®ãèŠã€ããããèªååæå¿µãšãªããããŸããã ç¹æ®ãªç°å¢ã®åãããèªååããŒã«ãäœæãããã«ããæ°ãã«èªååããŒã«ãäœãããã«å¿
èŠãšãªãæè¡ãé«ããã®ãæ±ãããããããç°¡åã«èªååããŒã«ãäœæããããšèžã¿åãããã®ã§ã¯ãããŸããã ãããã£ãåé¡ããã£ãŠãTestArchitectã¯ç°å¢ã«åãããã«ã¹ã¿ãã€ãºãã§ãããããèªåå察象ã«åãããèªååããŒã«ã«ããããšãã§ããŸããããæ±ããèªååããŒã«ãæ¢ããŠãèŠã€ãããªãå Žåã¯TestArchitectã®ã«ã¹ã¿ãã€ãºãéžæè¢ã«å
¥ããŠã¿ãŠã¯ãããã§ããããïŒ çºã TestArchitectã®åªããç¹ã°ãã説æããŠããŸãããã1ç¹ä»ã®èªååããŒã«ã«æ¯ã¹ãŠå£ã£ãŠããç¹ããããŸãã ããã¯TestArchitectã®ç¥å床ãç¡ãããšã§ãããã®ãããªäŸ¡æ Œãå®ãå®çšçãªèªååããŒã«ãäžéã«ç¥ãããŠããŸããã æ¥æ¬ä»¥å€ã®åœã§ïŒïŒå¹Žä»¥äžã®å®çžŸããããŸãããæ¥æ¬ã§ã®å°å
¥ã¯ããæè¿ã®ïŒïŒïŒïŒå¹Žé ããã§ããæµ·å€ã§ã¯å®çžŸãããè²©å£²å°æ°ãå€ãèªååããŒã«ã§ãã®ã§ãæ¥æ¬ã§ç¥å床ãç¡ãããšã¯åé¡ã§ã¯ãããŸãããæ¥æ¬ã§ã¯ããããå®çžŸãäœã£ãŠããéçšã§ããããçŸåšã¯ç¥å床ãç¡ããšããç¶æ
ã§ãã TestArchitectãæ€èšŒãããšããèªåãã¹ãã®çŸå Žã®æ§ã
ãªåé¡ã解決ã§ããé«ãå®çšæ§ãåããèªååããŒã«ã§ããããšãããããŸãããä»ã®èªååããŒã«ã«ç¡ãç¹åŸŽãæã£ãæ§ã
ãªæ©èœãæããããããªå Žé¢ã§æŽ»çšããããšãã§ããããã䜿ãããªãããšã«é«ãã¹ãã«ãå¿
èŠãšããªãèªååããŒã«ã¯ä»ã«ç¡ããã®ã ãšæããŸãã æ°ã«ãªã£ã人ã¯Teamçã§ããã°ç¡æã§äœ¿ãããããTestArchitectã詊ããŠã¿ãŠãã ããã åèïŒ TestArchitectã®æŠèŠ é£èŒäžèЧ ã第1åãèªåãã¹ãã¯ãªã倱æããã®ãïŒ The post ã第2åãTestArchitect for Mobileã®åäœæ€èšŒ first appeared on Sqripts .
ã¿ãªãããããã«ã¡ã¯ïŒãQAãšã³ãžãã¢ã®ããŒããã§ãã 11/2ã« JaSSTä¹å· ãéå¬ãããŸãããïŒæ°æœãšåãæžãåºãæ¹âŠïŒ èªåã®ä»æã®JaSSTåå ãšããŠã¯6ææ±åã9ææ°æœã®2ç®æã¯çŸå°åå ãšããŠããŸããããä»åã¯ä¹å·ã®äžã§ãçŠå²¡éå¬ãšããããšã§äœããè¡ããããªæ°ãããã®ã§ããã¡ããçŸå°åå ãããŠããŸããã ãã¹ãã®åºæ¬ã«ç«ã¡è¿ã æ¯å¹Žä¹å·å
ã§éå¬å°åãå€ããŠããŠãæ°å¹Žã¶ãã«åæé嬿 ç¹ã®çŠå²¡ã«ãã©ã£ãŠããããšãã ãããŸã ãããã¹ãã®åºæ¬ã«ç«ã¡è¿ãã ãšããããšãããŒãã«æ±ããã·ã³ããžãŠã ã§ããã ãŸãJaSSTå®è¡å§å¡ã®äžã«åŠçã®æ¹ãåç»ãããããšããããšããããåºèª¿è¬æŒã®ã¿ãŒã²ãããã åŠçåã éçºããã£ãŠãããã©ãã¹ãã¯åå¿è
ãšããæ¹ã察象ãšããè¬æŒãšããããšã®ããšã§ããã ä»åã®ããã°ã§ã¯äž»ã«åºèª¿è¬æŒã®å
容ãæèŽããªããèããå
容ããŸãšããŠãããããšæããŸãã ãããããªãïŒããããïŒã«å€ãããïŒ- QAãšã³ãžãã¢ãå®è·µããŠããåºæ¬çãªèãæ¹ãšæ¹æ³ã ãšããããšã§ãäžèšãåºèª¿è¬æŒã®ã¿ã€ãã«ãšãªããŸãããšããããã©ãããŠãæžãããããšã ããå
ã«æžããšã çšèªã¯ISTQB ã°ãããµãªãŒã掻çšããã®ãããïŒç¡æã ãïŒïŒ QAã®çšèªçµ±äžã¯ãããã¯ããäŒç€Ÿã«ãã£ãŠå€§ããç°ãªãã äŸãã°åäœãã¹ããšããèšèããšã£ãŠãå
šç¶éã åäœãã¹ãïŒUnit Testã®ããšãèãã人ãããã°ãç»é¢äžã®ãããŸããåæ©èœã®ããšãåäœãã¹ããšããäŒç€Ÿããã ã§ãã£ïŒïŒïŒ èªåçQAããããã®ïŒåç®ã«ãããŠãå
容ã§ããïŒ2åç®ä»¥éã¯æªèšå®ïŒ ãããèããŠããããŒããã£ã±ããã¯åºãäžè¬çïŒãªQAãããããªãã ãªããšåŒ·ãæããŸããã ãã®èšŒæ ã«ããã®è©±ãåºããšãã®äŒå Žã®ç¬ãïŒèŠç¬ãïŒåŒ·ãããªãããªã©ãåå è
ã®åå¿ãæ¬ã·ã³ããžãŠã ã§æã匷ããããããéšåãªã®ã§ã¯ãªãã®ããªããšã ãã®è©±ã¯èªç€Ÿå
ã®å人ã®èªèçžéã§ããã°ç¬ã話ã§ãããããããŸããããåçºæ³šé¢ä¿ã§åºãå Žåã¯å€§ããªãã©ãã«ã«ãªããªã¹ã¯ãåãã§ããŸãã ïŒãšããæ¥ã®å
æ¯ïŒãâ»æè©±ãäºå®ãå
ã«èªåŒµããŠããŸã å¶æ¥ ãã¯ã©ã€ã¢ã³ãæ§ããèŠç©ãšäººå¡ææ¡ã®äŸé Œãæ¥ãŸãããŒïŒâåäœãã¹ãâãããã£ãŠã»ããããã§ãã èªå ãåäœãã¹ãããïŒïŒãããããšéçºç¥èŠããªããšé£ãããšæããã ãã©ãããã£ãŠæ¬åœã«ãåäœãã¹ããã®è©±ïŒïŒã å¶æ¥ ãã¯ããâåäœãã¹ãâã£ãŠèšã£ãŠãŸããïŒã èªå ãïŒã»ããŸãããªâŠïŒã ãã¡ãããã®è©±ã®ãªãã¯ãåäœãã¹ããã®è©±ã§ã¯ãªããåæ©èœãã¹ãïŒçµåãã¹ãã ã£ãããšããããšã«ãªããŸãã ãã®è©±ããŸã ç¬ã話ã§ãã¿ãŸãããããåæ©èœãã¹ãã ãšæã£ãŠãããåäœãã¹ãã ã£ãããšããéã®å Žåã§ã¯å¿
èŠãªã¹ãã«ã¬ãã«ãå€ãã£ãŠããã®ã§ãäŒç€Ÿéã§ããã°å€§ããªãã©ãã«ã«ãªãå¯èœæ§ãé«ãã§ãã ä»åã®è¬æŒã®è©±ã§ã¯ãå
±éçšèªãå®çŸ©ã§ããããšããã€ã³ãããã§ãããããå
±éçšèªãããããšããããšãåãã£ãŠãããšãããããªçšèªãèãããšãã«ã ããã£ãŠæ¬åœã«æ£ããæå³ã§äœ¿ãããŠããã®ããã©ãããæå³ã§äœ¿ãããŠããã®ã ããšããããªéšåã«ã²ã£ããããã§ãããã®ãã²ã£ãããããšããããšããã¹ããšã³ãžãã¢ãšããŠã®è¡èã«ãªã£ãŠããã®ã§ã¯ãªãããªããšèªåã¯èããŠããŸãã ã¢ãŠããããããããšããããš è¬æŒæ¡å
ã«ãçŽãšãã³ã䜿ããããšããããšãèšèŒãããŠããã®ã§ããã¯ãŠïŒã¯ãŒã¯ã·ã§ãã圢åŒã§è¡ãã®ããªïŒããšæã£ãŠããéšåããã£ãã®ã§ãããå®éã¯ããšã¯ãµãµã€ãºãšããŠèããŠããããšã®æåã§ã®ã¢ãŠããããã®æéãèŠæèŠæã§èšããããŠããŸããã æ¬ã·ã³ããžãŠã äžã§ãè€æ°åã«æž¡ã£ãŠ ãã¬ããŒããæžããšãããŸã§ãJaSSTã®åå ã§ãã ãšããèšèãåºãŠããŸããããããã¯ã€ã³ããããšã¢ãŠããããã®é¢ä¿æ§çã«ããšãŠãéèŠãªããšã ãšæã£ãŠããŸãã ãè¬çŸ©ãåããããšãã£ããããªç¥èã®ã€ã³ãããå·¥çšãšããåŸãç¥èãä»ã§æŽ»çšãããã人ã«è©±ããŠã¿ãããã¬ããŒããšããŠäœæããŠã¿ãããšããã¢ãŠããããå·¥çšã¯ã ã€ã³ããã3å²ãã¢ãŠãããã7å² ãçæ³çã ãšèšãããŠããŸãïŒæ¯çã«é¢ããŠã¯æèª¬ãããšæããŸãïŒ ãã®ããã°åããèšã£ãŠã¿ãã°ã¢ãŠããããã®äžã€ãšããŠæŽ»çšããŠããéšåã«ãªããŸãããå®éã€ã³ããããããã®ãã¢ãŠããããããããšã¯ã人ã«ãã£ãŠã¯äžã
ããŒãã«ãé«ãå ŽåããããŸãã ãããã£ã人ã¯ã€ã³ããããšã¢ãŠãããããåæãã€ãçæ³çãªæ¯çã§è¡ããã¯ãŒã¯ã·ã§ããã«åå ããŠã¿ãããšããã®ãããæ©äŒã ãšæããŸãããã¯ãŒã¯ã·ã§ããã«åå ããããšèªäœãããŒãã«ãé«ãããšããããšãåŸã
ã«ããŠãããŸãã ä»åãšã¯ãµãµã€ãºãšããŠãã§ãããã¹ããšã³ãžãã¢ãšã¯ã©ãããããšãã§ããäººãæžãåºããŠã¿ããããšãã£ããããªå®éã«ãã³ãèµ°ãããå·¥çšãè€æ°ãããŸããã ãããã£ãè¬æŒã®æµããšããŠã¢ãŠããããã®æ©äŒãããããªããã€ã¢ãŠãããããããã®ãä»ã«å
¬éããªãããšããå¿ççå®å
šãä¿ãããããã¡ã§ã®è¬æŒã¯äžã
ã«å¹æçãã€å¹ççã ãªããšæããªããåå ãããŠããŸããã äžã«ã¯æåããPCã§æžãã人ããããããããŸãããããã¯ããã³ã䜿ã£ãŠçŽã«æžãããšããã¹ãã§æã¡èŸŒããã¯å¹æã¯éãããšæã£ãŠããã®ã§ãå人çã«ã¯ã¢ãŠããããã¯çŽãšãã³ã§è¡ãã®ããã¹ã¹ã¡ããããšããã§ãã äœè«ã§ããã20幎ããããŸãã¯äžå
·åã¬ããŒããææžãïŒFAXïŒExceléä»ã§è¡ã£ãŠããããããããŸãããããã«æå°éã®åŽåã§ã¬ããŒããæžããããšããããšãæ±ããããã«ãããªãã®æ©ãã§ã¬ããŒãäœæç²ŸåºŠãäžå®å€ä»¥äžãŸã§ãã£ãããšæã£ãŠããŸãã â»æç« ã®äžãæçŽãããã«å
šæžãçŽãããšããã£ãã®ã§ ãã¯ãã«ã«ã¹ãã«ä»¥å€ãåŠã¶ 圹ã«ç«ã€ãã¹ããšããŠããã·ãžã§ã³ããŒãã«ãå¢çå€ãšãã話ã«ãè§ŠããããŠããŸããããå¢çå€ã®äŸãšããŠ æªæå¹Žã»åŠçç¡æã®ã€ãã³ãããã æªæå¹Žã®å®çŸ©ãšããŠã¯ãéå¬å¹ŽåºŠå
ã§17æ³ã§ããã㚠幎霢å€å®ãšããŠã¯ãçå¹Žææ¥ã®4æ1æ¥ãš4æ2æ¥ãå¢çå€ãšããŠèãã ãšããå
容ããããããŠããŸããã ãåãã®æ¹ãå€ããšæããŸãããåŠå¹Žãšããã®ã¯4/2ïœç¿å¹Ž4/1çãŸãã§èããããŠããŸãã SEã®æ¹ããã®ã«ãŒã«ãç¥ããªãå Žåããã®å€å®ã§äžå
·åãæ€åºãããããšãã話ãããŠããŸãããããã¹ãããåŽããã®ã«ãŒã«ãç¥ããªãã£ãå Žåã¯æ®éã«åžå Žäžå
·åãšããŠåºãããã¡ã«ãªããŸãïŒãããããªãæ¥ãããããã€ïŒã ã§ãããã¹ããšã³ãžãã¢ãšã¯ã©ãããããšãã§ããäººãæžãåºããŠã¿ãããã®ãµã³ãã«ãšã㊠ãã©ã®ãã¡ã€ã³ã§ããã¹ãã§ããã ãšããé
ç®ããããããŠããŸããã èšã£ãŠã¿ããšåé
ã®äºäŸãæè²ãã¡ã€ã³ãšèšãããã°æè²ãã¡ã€ã³ã§ããã幎霢ãåŠå¹Žå€å®ã¯æè²ç³»ä»¥å€ã§ãå€ã䜿ãããå
容ã§ãã ã€ãŸã極è«çã«ãããšã ãå
šãŠã®ç©äºã®çã¯ãåºãåããåå²ã®ææšã«ãªãããã ã ãšæããŸãã®ã§ãã€ã³ãããã®æåºŠãåŒ·ãæ¥ã
éããããã®ããããããã¹ããšã³ãžãã¢ãžã®éã«ç¹ããã®ã§ã¯ãªãã®ããªããšæã£ãŠããŸãã ãŸãšã ä»åã¯äºãããã¯ããã°ã«æžããããšæã£ãŠè¬æŒã«èšã¿ãŸããããæåããã¢ãŠãããããããããšããæ°æã¡ã§ç©äºã«ããããšã ãããã©ãã¢ãŠãããããããã èªåã«å¿
èŠãªæ
å ±ã¯äœãªã®ã ãªã©ãšããã€ã³ãããããªããåæã«è³å
ã§ã¢ãŠããããããããšããç¶æ³ã«ãªããšæããŸãã ãŸãä»ããããŠæžããŠããããšèªäœãèªåã®æ¯ãè¿ããæ°ããèŠç¹ã®åµé ã«ãªã£ãŠããã®ã§ãã¿ãªãããããã«ã¢ãŠããããããããããšããããšã«éãããããªããåŠç¿ã«åªããŠã¿ãŠã¯ãããã§ãããã ãã¬ããŒããæžããšãããŸã§ãJaSSTã®åå ã§ãã æžããã®ã§ãèªåã®äžã§ã®JaSSTä¹å·ã¯ããã§çµããã«ãªããŸãïŒ ãç²ãæ§ã§ããïŒïŒ The post åå¿è
åãã®QAè¬æŒãå¥ã®èгç¹ããããããèããŠã¿ã ïŒJaSSTä¹å·ã¬ããŒãã«ãããŠïŒ first appeared on Sqripts .
ããã«ã¡ã¯ãRYUã§ãã çŸåšãç§ã¯ã·ã¹ãã ä¿å®éçšã®ãµããŒãæ¥åãæ
åœããŠãããŸããæ¥åçµéšãšããŠã¯QAã®æ¹ãå€ãã®ã§ãããä»ã¯ã€ã³ãã©ç³»ã®æ¥åãæ
åœããŠãããŸãã ã·ã¹ãã éçšæ¥åã¯ãã¹ã絶察蚱ãããªãå³ããäžçã§ããéçšããŠãããµãŒãã¹ã®èŠæš¡ãçš®é¡ã«ããããŸãããå€ãã®ãŠãŒã¶ãå©çšããŠããWebãµãŒãã¹ã忢ããããããŒã¿ãæå€±ãããããªäºæ
ãçºçããå Žåã«ã¯ãæãããæå®³ãäºæ
çãçºçããåå ã«ããªã£ãŠããŸããŸããããã ãã«ãæ¬çªç°å¢ãªã©ãæäœãããããªäœæ¥ã§ã¯ãããæ
éã«åãçµãŸãªããšãããŸããã ãšã¯ãããç§ã®æ§æ Œçã«ãã¿ã³ããã£ããæŒãã¿ã€ããªã®ã§ãèŠåŽããªããããã¹é²æ¢ãæèããªãããæ¥ã
ã®æ¥åã«åãçµãã§ãããŸãã ã·ã¹ãã éçšæ¥åã£ãŠãããªæãã§ã ç§ãæ
åœããŠããã®ã¯WebãµãŒãã¹ã§ãæ¥åžžçã«ã¯ãã¢ã©ãŒãçºçæã®å¯Ÿå¿ããã£ã¹ã¯å®¹éã®èª¿æŽçãè¡ããŸãããŸãã宿çãªã¢ããªã±ãŒã·ã§ã³ã®ãªãªãŒã¹äœæ¥ããäžå®æã§ãããã¡ã€ã€ãŠã©ãŒã«ãããŒããã©ã³ãµã®èšå®å€æŽãOSã®ããŒãžã§ã³ã¢ãããä»®æ³ãµãŒãã®æ§ç¯çãè¡ã£ãŠãããŸãã ãããã®äœæ¥ã«ãããŠããèšå®ãã¹ãããŒã¿åé€çãè¡ã£ãŠããŸããšããµãŒãã¹éå¶ã«åœ±é¿ãäžããŠããŸããŸãã®ã§ãäœæ¥äžã¯æ°ãæããŸããããã ããç§ã®çµéšãã匷ãæãã®ã§ããã人éã¯ã©ãããŠããã¹ãããçãç©ãªãã ãªããšæããå Žé¢ãå€ã
ãããŸãã ãã®ãããã·ã¹ãã éçšã®çŸå Žã§ã¯éçšæ¥åã«ããããã¹ãé²ãåãçµã¿ãè²ã
ãšçµã¿èŸŒãŸããŠãããä»åã¯ãã®ãããªåãçµã¿ã®äžéšãã玹ä»ãããŠããã ããã°ãšæããŸãã ããã§ç޹ä»ãããŠããã ãåãçµã¿ã¯ãä»äºãæ¥åžžã«åãå
¥ããããšã§ãå€å°ãªããšããåçŽãªãã¹ãé²ãããšãã§ããããã«ãªãå¯èœæ§ããããŸãã®ã§ãã§ãããã ãªãšæã£ããã®ã¯ããã²ã詊ãããã ãããšå¬ããéãã§ãã å®éã®åãçµã¿ 以äžã®å
容ã¯ãããããç®æ°ãããã®ã§ã¯ãªããçæ§ããåç¥ã®ãã®ã ãšæããŸããããã§ããæ¹ããŠèŠçŽããŠããã ããšãæ¡å€ã«åœ¹ã«ç«ã€ãã®ããããããããŸããã®ã§ããã²ãã²ã芧ãã ããã ãã®ïŒïŒèŠçŽã è³æãæé æžãäœæããéãã©ãããŠã 誀åè±åãèªèéã çãçºçãããã®ã§ããæ¬äººã®èªèŠãèªèã®ç¡ããšããã§ãæ³å®å€ã®èšèŒãããããå¿
èŠãªæ
å ±ãæããŠããŸãããšã¯é »ç¹ã«èµ·ãããŸããèªåã§ã¯ãã®ãããªãã¹ã¯æ°ãä»ããªãããšãå€ãã®ã§ãäœæ¥å®äºåŸã«èŠçŽããè¡ãã¹ããªã®ã§ãããèªåã®è¡ã£ãäœæ¥ã«ã€ããŠã¯çããæã¡ã«ãããã®ã§ããã宿ããéã®æºè¶³æãç²åŽæãããäœæ¥å®äºçŽåŸã«èŠçŽããè¡ã£ãŠããã¹ã«æ°ä»ãã«ããç¶æ
ã«ãªã£ãŠãããŸãã ãã®ãããäœæ¥å®äºçŽåŸã§ã¯ãªããå°ãéãäœæ¥ãæãã ããã¡ãã£ãšäŒæ©ãããªã©ãè³ã«éãåºæ¿ãäŒæ¯ãäžããŠããèŠçŽãã ãã§ãèªåã®ãã¹ã«æ°ã¥ãããããªããŸãã âå®éã®åãçµã¿ ã» æé æžã®äœæãä¿®æ£ãå®äºãããæäœ30åã¯å¥äœæ¥ãæãã§ããåç¢ºèª ãéå»è³ææµçšæã¯ãµãŒãå衚èšçã«ä¿®æ£æŒããå€ãã®ã§æ€çŽ¢æ©èœã§å確èªãããšå¹æç ãã®èŠçŽããšããè¡çºã¯ãæ¥åžžç掻ã§ããšæç¶ãçšã®æžé¡èšå
¥ãæçŽãªã©ãè²ã
ãªå Žé¢ã§å®è·µã§ãããã§ãã ãã®ïŒïŒä»è
ã¬ãã¥ãŒ äœæ¥æé æžãèšå®çšããã¥ã¡ã³ããäœæãä¿®æ£ããéã«ã¯ä»è
ã¬ãã¥ãŒã宿œããŸãã æã蟌ã¿ãèªèéããèšèŒæŒã çãããªãæžããããšãã§ããŸãã®ã§ããªããªãæå¹ãªææ®µã§ãã ãšãã«ãã客æ§ã«æåºããããã¥ã¡ã³ããæ¬çªç°å¢ã«é¢ããæé ãèšå®ã«äœ¿çšãããã©ã¡ãŒã¿ã·ãŒãçã¯éèŠãªã®ã§ãä»è
ã¬ãã¥ãŒã®å®æœãäžå¯æ¬ ã§ãã å
ã®ãèŠçŽãããæå¹ãªææ®µã§ã¯ãããŸããããã¯ãåœäºè
ã«ããå確èªãªã®ã§ãã©ãããŠã æã蟌ã¿ã顿ãšãããã£ã«ã¿ãŒ ãååšããŠããŸããŸãããŸãã人ã«ãã£ãŠã泚æãåããã¯ãã«ãç°ãªããŸãã®ã§ãèªåãšã¯éãçžæããã®ãã§ãã¯ãšãããã®ã¯ãéåžžã«æå¹ã§ãã âå®éã®åãçµã¿ ã» å¿
ãä»è
ã¬ãã¥ãŒã宿œããŠå®äºãããŸã§æ¬¡ã«é²ããªããšããã«ãŒã«ãéçš ãæé æžãïŒäººã§åå²äœæãããšãã«äœæè
ã®èªèéãã§æããäœæ¥ãä»è
ã¬ãã¥ãŒã§ææã§ããŸãã æ¥åžžç掻ã§ããšãéèŠæžé¡ã®èšå
¥æã«å¥¥ããŸãæŠé£ããŸãã䞡芪ããå人ããªã©ãªã©ã身è¿ãªæ¹ã«ç¢ºèªããŠããããšè¯ããããããŸãããã ãã®ïŒïŒããã«ãã§ã㯠ã·ã¹ãã å
šè¬ã«èŽåœçãªåœ±é¿ãäžãããããªäœæ¥ã¯å¿
ãïŒäººã§æäœå
容ã®ç¢ºèªãè¡ããŸããæéã«äœè£ãç¡ãæé æžãäœæããããšãã§ããªãæããéå»ã«å®æœããå®çžŸã®ããæé ãªã©ã®å Žåã«ããããã«ãã§ãã¯ã§äœæ¥ãããããšãå€ããããŸãã ããã«ãã§ãã¯ã¯ãäœæ¥ãè¡ãéã«ïŒåäœå¶ã§ãäºãã«äœæ¥å
容ã確èªãã€ã€å®æœããŠãããšãããã®ã§ããå
ã®ãä»è
ã¬ãã¥ãŒããšåãããã«ã ïŒäººã®äžæ³šæãæã蟌ã¿ãã£ã«ã¿ãŒ ãªã©ã®ãã¹ã«ã€ãªããèŠå ãæžå°ãããããšãå¯èœã§ãããšãã«ãæéãç¡ãæãªã©ã¯ãããã«ã§ãçæã§ããŸãã®ã§ãç·æ¥æã«ãæå¹ãªææ®µãšãªããŸãã âå®éã®åãçµã¿ ã» ç°¡åãªäœæ¥ã§ã圱é¿ã倧ãããã®ã¯ããã«ãã§ã㯠ããµã€ãã®ã¡ã³ããã³ã¹äœæ¥ã§ãŠãŒã¶ãŒã¢ã¯ã»ã¹ããããã¯ããå Žåãäœæ¥çµäºåŸã®ãããã¯è§£é€æå»æå®ã¯ããã«ãã§ãã¯ã§è¡ããå¿
ãäºå®æéã«ã¢ã¯ã»ã¹åéã§ããããã«ããŠããŸã æ¥åžžç掻ã§ã¯ãåºããåã«ãçªããã¢ã®éµéããæ°Žéãã¬ã¹ã®å
æ ã®ç¶æ
確èªãªã©ããå®¶æããå人ãšããã«ãã§ãã¯ããããšãã§ããã°éãå¿ããæ¢ãå¿ããªã©ã確å®ã«é²æ¢ããããšãã§ããŸãããšãã«é·ææ
è¡ãªã©ã§é·ãèªå®
ãé¢ããå Žåãªã©ã§ããå®å¿ããŠåºãããããšãã§ããŸããã ãã®ïŒïŒç¡çããªã å€éäœæ¥ãªã©ã宿œããŠããæããã¯ã人éã§ãã®ã§ã©ãããŠãç¡éã«è¥²ãããæããããŸãããã®ãããªå Žåã«ã¯ãææ
¢ããŠäœæ¥ãé²ããŠããéäžåã®æ¬ åŠã«ãã誀èªèãäžæ³šæã«ãã誀æäœãªã©ã«ãããã¹ãçºçããããã§ãããã®ãããäœæ¥ã§éèŠãªããŒã¿çã誀ã£ãŠåé€ããŠããŸããåãè¿ãã®ã€ããªãäºæ
ã«çºå±ããå¯èœæ§ããããŸã ãã§ãã®ã§ããã®ãããªæã¯ç¡çãããïŒïŒåïœïŒïŒåã®ä»®ç ããšãããã«ããŠããŸããâ»ã客æ§ã®èš±å¯ã®äžã§ä»®ç ããŠããŸããéåžžæ¥åæã«ä»®ç ãã¡ããã¡ã§ã(ç¬) ããã€ã¬ã空è
¹æãªã©ããããªã®ã§ããã人éã§ãã®ã§çççæ¬²æ±ãšãããã®ãå¿
ãååšããŸãããããŠããããã¯çããããã«å¿
èŠãªæ©èœãšãªããŸãã®ã§ãèªåã§å¶åŸ¡ããããšã¯ãªããªãé£ããã§ããæ ¹æ§ã§ãªããšããããã粟ç¥åã§ã©ãã«ãããããšããã®ã¯é£ããã§ãã ãŸããŠããç¡éã«è¥²ãããæãªã©ã®ããã«ãçäœãªãºã ã«åºã¥ããæ©èœäœäžç¶æ
ã§äœæ¥ãç¶ããããšã¯ãèªåã®å¥åº·ã«ãè¯ããªãã§ãããäœæ¥å¹ççãªé¢ãããæå¹ã§ã¯ãããŸããã ã§ãã®ã§ãç ãæã¯çŽ çŽã«ä»®ç ãããããã¹ããªå¯Ÿçã«ãªããšç§ãèããŠãããŸããçµæçã«ã¯ããã®æ¹ãå¹çãäžããããã¹ã®çºçãé²ããŸãã âå®éã®åãçµã¿ ã» æ·±å€äœæ¥ã§ã©ãããŠãç ããšãã¯ã¡ã³ããŒäº€ä»£ãš15åã®ä»®ç ååŸ ç¡éãææ
¢ããŠäœæ¥ããããšãç¡ããªããç¡éã«ããé倧ãã¹ïŒã¹ãã¬ãŒãžã®åæåãªã©ïŒãé²ãã§ããŸã æ¥åžžç掻ã§ã¯ãè³æ Œã®å匷ãããŠãããããªå Žé¢ã§å¹æããããšæããŸããéäžåãéåããç¡éã«è¥²ããããããªæã¯ãæéãæ±ºããŠäŒæ©ããããä»®ç ããšããšããã®ã¯æå¹ãªææ®µã§ã¯ãªãã§ããããã ãã®ïŒïŒåçºé²æ¢ãèãã ãããŸã§è²ã
ãšæžããŠããŸãããæå¹ãªææ®µããããšã¯ããããã£ã±ããã¹ãã¡ããæã¯å¿
ããããŸãã ãã®ãããªæã«ã¯ããªããã¹ãèµ·ãã£ãã®ãåå ãèããåçºããªããããªå¯Ÿçãäœããå®è·µããããšã§ãåããããªãã¹ãé²ãããšãã§ããããã«ãªããŸãã ãã ãåçºé²æ¢ã«åãå
¥ãããããšãçµæçã«äœæ¥è² è·ã°ãããå¢ããããšã«ããªããŸãã®ã§ããã©ã³ã¹ãéèŠã«ãªããŸããäžéã§ãæã
話é¡ã«ãªããŸãããäžç¥¥äºãäºæ
ãèµ·ããéãäžçæžåœã«åå 远æ±ãšåçºé²æ¢çãæ€èšããŸããã§ãããã®ããã§æé ãç
©éã«ãªã£ããã審æ»ãå³ãããªã£ãããäžäŸ¿ã«ãªãããšãå°ãªããããããŸãã åçºé²æ¢ã®ç®çã¯ããããŸã§ãã¹ãé²ãããšã«ãããŸãã®ã§ãä»çµã¿ãã«ãŒã«ã¯ã§ããã ãã·ã³ãã«ãªæ¹ãè¯ãããªãšæã次第ã§ãã âå®éã®åãçµã¿ ã» æ¬çªäœæ¥ã®ãã¹ã¯åå åæãšåçºé²æ¢çãçå®ããŠåããã¹ã¯èµ·ãããªã ãééã£ãŠéãã³ãã³ããå
¥åããäºäŸããããã®äœæ¥ã¯å®å
šèªååããããäœæããããšã§ãã¹ã®çºçãé²ãã§ããŸã ãªããæ¥åžžçæŽ»ã§çºçãããã¹ã«ã€ããŠã¯ãäœæ
ãã¹ããã®ãïŒã©ãããã°é²ãããïŒãåžžã«æš¡çŽ¢ããããšãéèŠã«ãªããŸãããããèžãŸããããã§ãå®è·µå¯èœãªå¯Ÿçãå®çŸã§ããã°ãããåããã¹ã¯çºçãã«ãããªããŸãã ããã㫠以äžãåãçµã¿ãšããŠïŒã€ã®å®äŸã玹ä»ãããŠããã ããŸãããããããã䜿ãå€ãããææ³ã§ãããå
šãŠåœããåã ãšæããããªåºæ¬çãªäºæã§ãããšã¯ãããåºæ¬çãªäºæã培åºããŠè¡ããç¿æ
£åããããšã§ããã¹ãæžããããšã¯å¿
ãå¯èœãšãªããŸããç§ã®çµéšããããäžèšææ³ã¯å¹æããããšèããŠãããŸãã 人éã¯çãç©ã§ãã®ã§ãããšããšãã¹ãããããåŽé¢ããããŸããåéãã»æã蟌ã¿ã»é¯èŠã»ç©å¿ãã»äžæ³šæã»é¡æãªã©ãèŠå ãšãªãããšãå€ãã§ãããã®ããããã®ãããªåŽé¢ãããããšãçè§£ããããã§ãäœæ¥ã«åãçµãããšãæå¹ã§ã¯ãªãããšèããŠãããŸãããã ãã©ãããŠã察çã®ããã®å·¥æ°ãçºçããŸãã®ã§ããã©ã³ã¹ãèæ
®ããŠåãå
¥ããŠããããšãéèŠããšæããŸãã ãã¹ãæžãããšããåãçµã¿ã¯ãã·ã¹ãã éçšã§ã¯å®å
šå·¥åŠãä¿¡é Œèšèšã«ããã¢ãããŒãããããŸãããä»å玹ä»ãããŠããã ããå
容ã¯ãã©ã¡ãããšãããšèªç¥å¿çåŠçã®ç¯çãšãªãèªèãè¡åã«çç®ããã¢ãããŒãã«ãªããšèããŠãããŸãããã¹ã鲿¢ããããã«äººéãšããŠã®ç¹æ§ãæèãã察çãèããŠããããšãæå¹ã§ã¯ãªãã§ããããã æåŸãŸã§èªãã§é ããããããšãããããŸããã The post 人éã¯ãã¹ãããçãç©ãªãã§ã ïœã·ã¹ãã ä¿å®éçšæ¥åã§åãçµãã§ãã5ã€ã®ããšïœ first appeared on Sqripts .
ããã«ã¡ã¯ãã€ã³ãã©ãšã³ãžãã¢ã®TYã§ããæ®æ®µã¯AWSãAzureãªã©ã®ã¯ã©ãŠããµãŒãã¹ãæ±ã£ããµãŒãã¹ã®æ§ç¯åã³ãæ€èšŒãªã©ã®æ¥åãè¡ã£ãŠããŸãã ã·ã¹ãã å°å
¥æã®æ€èšŒã§Asteriskã䜿çšããPBXç°å¢ãæ§ç¯ããŸãããä»åã¯Asteriskã«ã€ããŠã玹ä»èŽããŸãã 1.AsteriskæŠèŠ Asteriskã¯ãªãŒãã³ãœãŒã¹ã®PBXïŒPrivate Branch eXchangeïŒã§ããPBXã¯ãªãã£ã¹ãã³ãŒã«ã»ã³ã¿ãŒãªã©ã®ããã«1ã€ã®èŠªçªå·ã«çä¿¡ãããããé©åãªå
ç·é»è©±æ©ããªãã¬ãŒã¿ãŒã«é話ã転éããå¿
èŠãããéã«äœ¿çšãããŸãã Asteriskã¯PSTNãSIPãããã³ã«ã«ããéä¿¡ã¯ãã¡ããã®ããšãACDã·ã¹ãã ã«WebRTCã®æ©èœãæãããŠãå©çšããããšãå¯èœã§ãã ïŒACD (Automatic Call Distribution)ïŒçä¿¡åŒèªååé
è£
眮 ïŒWebRTC (Web Real-Time Communication)ïŒãã©ãŠã¶ããçºä¿¡ãããæ åãé³å£°ã»ãã®ä»ãã¡ã€ã«ãšãã£ãããŒã¿ãåªããåŠçèœåã§éä¿¡ããæè¡ Asteriskã®äžéšæ©èœãšãªããŸãããæ¬¡é
ããAsteriskãSIPãµãŒããŒãšããŠæ§ç¯ããSIPã«ããå
ç·é話ãå®çŸããç°å¢ãæ§ç¯ããããšæããŸãã 2.æ§ç¯ AWS EC2ã€ã³ã¹ã¿ã³ã¹ã«Ubuntuãã€ã³ã¹ããŒã«ããããã«Asteriskãã€ã³ã¹ããŒã«ããŠSIPãµãŒããŒãæ§ç¯ããŠãããããšæããŸãã ç°¡åãªæ§æã¯ä»¥äžã®å³ã®ããã«ãªããŸãã ã§ã¯ãæ§ç¯ããŠãããŸãããã 2.1 AWS ä»åã¯AWS EC2ã€ã³ã¹ã¿ã³ã¹ãå©çšããŸãããã¡ããããŒã«ã«ç°å¢ã§è¡ã£ãŠãåé¡ãããŸããã 2.1.1 EC2ã€ã³ã¹ã¿ã³ã¹ã®èµ·å UbuntuãéžæããŠã»ããã¢ãããé²ããŸããã€ã³ã¹ã¿ã³ã¹ã¿ã€ãã¯å°ãããã®ã§å€§äžå€«ã§ãã 2.1.2 ã»ãã¥ãªãã£ã°ã«ãŒã 以äžã®ããã«èšå®ããŸãã â» SIPã§äœ¿ãUDPããŒãã¯ããã©ã«ãã§ã¯5060ã§ãããå€éšã«Aseteriskãæ§ç¯ããå Žåã¯ã5060ã§ç©ºããªãããã«ããŸããSIPã®ããã©ã«ãããŒãã倿Žããããšã§SIPãå©çšããæ»æã®å¯èœæ§ãäœæžããããšãã§ããŸãã 2.2 Asteriskã®å°å
¥ 2.2.1 Asteriskã®ã€ã³ã¹ããŒã« äœæããEC2ã€ã³ã¹ã¿ã³ã¹ã«SSHã§ãã°ã€ã³ããŸããã·ã¹ãã ãæŽæ°ãããŠããã確èªããŠãã ããã $ sudo apt-get update ä»åaptã§ã®ã€ã³ã¹ããŒã«ã§ã¯Asteriskã§äœ¿çšãäºå®ããŠããæ©èœãå«ãŸããŠããªãã£ããããä»åã¯ãœãŒã¹ãããŠã³ããŒãããã³ã³ãã€ã«æã«äœ¿çšããæ©èœãå«ããç¶æ
ã«ã㊠ãã«ãããŸãã $ cd ~ $ wgetãhttp://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz $ tar -xvf asterisk-18[tab] $ cd asterisk-18.[tab] $ sudo su # contrib/scripts/install_prereq install # ./configure --with-pjproject-bundled # make menuselect # make && make install && make config # exit $ cd ~ $ make menuselect ã¯ããã©ã«ãã®ãŸãŸsave&exitã§å€§äžå€«ã§ãã æåŸã«ä»¥äžã³ãã³ããå®è¡ãAsteriskã®ãµã³ãã«èšå®ãã¡ã€ã«ãã€ã³ã¹ããŒã«ããŸãã ~/asterisk-18.19.0$ make sample 2.2.2 Asteriskã®èšå® å
ç·é»è©±çªå·ã2ã€èšå®ãããäºãã«é話ãã€ãªããããã«ããŸãããã®éã«èšå®ããå¿
èŠã®ãããã¡ã€ã«ã¯”pjsip.conf”ãš”extensions.conf”ã®2ã€ã§ãã /etc/asteriskã«ç§»åãããšä»¥äžã®ããã«ããããã®ãã¡ã€ã«ããããšæããŸãã®ã§ãäžæŠ”pjsip.conf”ãš”extensions.conf”ã®ãã¡ã€ã«åã倿ŽããŸãã $ mv pjsip.conf pjsip_conf_bak $ mv extensions.conf extensions_conf_bak ããã§ã¯èšå®ããŠãããŸãããã ãŸãã¯pjsip.confã§ããSIPãµãŒããŒã«é¢ããèšå®ãå
ç·é»è©±ïŒSIPã¯ã©ã€ã¢ã³ãïŒããã®èªèšŒæ
å ±ãèšå®ããŸãã /etc/asterisk/pjsip.conf ã以äžã®ããã«èšå®ããŸãã [transport-udp] type=transport protocol=udp bind=0.0.0.0:5070 #ããã©ã«ãã§ã¯5060 [6001] type=endpoint context=from-internal disallow=all allow=ulaw auth=6001 aors=6001 rewrite_contact = yes # 6001ãNATç°å¢äžã®å Žåãå¿
èŠã [6001] type=auth auth_type=userpass password=userpassword username=6001 [6001] type=aor max_contacts=10 [6002] type=endpoint context=from-internal disallow=all allow=ulaw auth=6002 aors=6002 rewrite_contact = yes # 6002ãNATç°å¢äžã®å Žåãå¿
èŠã [6002] type=auth auth_type=userpass password=userpassword username=6002 [6002] type=aor max_contacts=10 â6001â,â6002âã® type=auth ã«ãã”userpassword” ã¯èªç±ã«èšå®ããŠãã ãã ç¶ããŠextensions.confã§ããå
ç·é»è©±ïŒSIPã¯ã©ã€ã¢ã³ãïŒããã®çºçä¿¡æã®ã«ãŒã«ãããã«èšè¿°ããŸãã /etc/asterisk/extensions.confã以äžã®ããã«èšå®ããŸãã [from-internal] exten = 100,1,Answer() same = n,Wait(1) same = n,Playback(hello-world) same = n,Hangup() # 6001ãã³ãŒã«ããããSIPã®6001ãåŒã³åºã exten = 6001,1,Dial(PJSIP/6001,30,r) same = n.Hangup() # 6002ãã³ãŒã«ããããSIPã®6001ãåŒã³åºã exten = 6002,1,Dial(PJSIP/6002,30,r) same = n.Hangup() ãããŸã§èšå®åºæ¥ãã以äžã®ã³ãã³ãã§Asteriskãåèµ·åããŸãã $ systemctl status saterisk ãããŸã§ã§Asteriskã®èšå®ã¯å®äºã§ããå®éã«SIPã¯ã©ã€ã¢ã³ããæ¥ç¶ãé話ãè¡ã£ãŠã¿ãŸãããã 3.宿©ãã¹ã 3.1 SIPã¯ã©ã€ã¢ã³ãèšå® åç« ãŸã§ã®èšå®ã§Asteriskã¯SIPãµãŒããŒãšããŠã®æ©èœãæã€ããšãã§ããŠããŸããå®éã«é話ãã§ããã確èªããéã«ã¯èšå®ããAsteriskã«SIPã¯ã©ã€ã¢ã³ããç»é²(ã¬ãžã¹ã)ããŠå©çšããŸããSIPã¯ã©ã€ã¢ã³ãã¯ãªãã§ã倧äžå€«ã§ãããä»åã¯SIPã¯ã©ã€ã¢ã³ããšããŠZoiperãå©çšããŸãã æå
ã®ç«¯æ«2å°ã«zoiperãã€ã³ã¹ããŒã«ãããèµ·åãå³äžã®æ¯è»ããŒã¯ããAccountsãéžæããŸããæ¬¡ã«SIPAccountsã以äžã®ããã«èšå®ããŸãã èšçœ®ç»é¢ã«ã¯ä»¥äžã®ããã«èšå®ããŸããéæ ã®Domainã®éšåã«ã¯ãèªèº«ã®AsteriskãµãŒããŒã®IPã¢ãã¬ã¹orãã¡ã€ã³ãå
¥åãPasswordã«ã¯pjsip.confã§èšå®ãããã¹ã¯ãŒããå
¥åããŠãã ãããå
¥åã§ãããregisterãéžæã以äžã®ç»åã®ããã«StatusãOKã«ãªãã°Asteriskã«Sipã¯ã©ã€ã¢ã³ããã¬ãžã¹ããããŠããŸãã ããçæ¹ã®Sipã¯ã©ã€ã¢ã³ããäžèšãšåæ§ã«pjsip.confã§èšå®ããSipã¢ã«ãŠã³ãã®æ
å ±ãå
¥åããŠãã ãããæ¬èšäºã®å
容éãã ãš6002ã®SIPã¢ã«ãŠã³ãããããšæããŸãã 3.2 å
ç·çªå·6001ããå
ç·çªå·6002ã«çºä¿¡ ãããŸã§èšå®ãã§ãããZoiperã®å·Šäžã«ããDialPadãã6001ã®ã¢ã«ãŠã³ããªã6002ã«ãã€ã€ã«ãçºä¿¡ããŠã¿ãŠãã ãããããŸãèšå®ãã§ããŠããã°6002ã®ã¯ã©ã€ã¢ã³ãã«çä¿¡ããã¯ãã§ãã 4.ãŸãšã ããã§Asteriskãç°¡åãªSIPãµãŒããŒãšããŠæ§ç¯ãå
ç·ç°å¢ãæ§ç¯ããããšãã§ããŸããããã®çšåºŠã®èšå®ã§å
ç·é話ãã§ããããšã¯å§ããŠæ§ç¯ããéã¯çµæ§æåããŸããã ä»åã¯å
ç·ã®ç°å¢ã§ããTwilioãã²ããé»è©±ãªã©ãAsteriskã«ã¬ãžã¹ãããããšã§ãPSTNåç·ãçšããŠSIPã¯ã©ã€ã¢ã³ããšé話ããããšãªã©ãã§ããŸãããAsteriskã¯httpãµãŒããŒã®æ©èœããããããWebsocketãµãŒããŒãšããŠéçšããããšã§WebRTC-Sipã¯ã©ã€ã¢ã³ãã®éè©±ãæ§ç¯æ¬¡ç¬¬ã§å¯èœã«ãªããŸãã ç§ããŸã ãŸã å匷äžã§ããããã®ãããã®èšå®ãæ©äŒãããã°ãŸãã話ãããããšæããŸãã ããããšãããããŸããã The post Asteriskå
¥éãïœSIPãã©ã³ã§é話ããŠã¿ãïœ first appeared on Sqripts .
æ¬é£èŒã§ã¯ããããã¯ãã§ãŒã³ã®åºæ¬çãªä»çµã¿ã解説ããªããããªã³ãã§ãŒã³ããŒã¿ãåæããããã®åºæ¬çãªææ³ã«ã€ããŠãå
š8åã§ç޹ä»ããŸãã 第7åã®ä»åã¯ãEthereumã®ãã©ã³ã¶ã¯ã·ã§ã³ã«çŽã¥ãããŒã¿æ§é ã®æ·±æãããããŒã¿åæã§ããçšããããçºå±çãªSQLã®æ§æã«ã€ããŠã®è§£èª¬ããããªããŸãã Ethereumã®ãã©ã³ã¶ã¯ã·ã§ã³è©³è§£ Bitcoinã®å Žåãåã¢ã«ãŠã³ããä¿æããç¶æ
ã¯åºæ¬çã«ãããã³ã€ã³ã®æ®é«ã§ããããã®å€æŽã¯ééããã€ãã³ã°ãšãã£ãïŒã€ã®ãã©ã³ã¶ã¯ã·ã§ã³ãæå°åäœãšããŠè¡ãããŸããäžæ¹ãEthereumã®å Žåã¯ãåã¢ã«ãŠã³ãã®ã€ãŒãµæ®é«ã®ã»ãã«ãã¹ããŒãã³ã³ãã©ã¯ãäžã®ããŸããŸãªããŒã¿ãç¶æ
ãšããŠä¿æããŠãããç¶æ
å€åã®ã¢ã¯ã·ã§ã³ã¯Bitcoinã»ã©åçŽã§ã¯ãããŸããããŸããïŒã€ã®ãã©ã³ã¶ã¯ã·ã§ã³ã®äžã«è€æ°ã®ã¢ã¯ã·ã§ã³ãå«ãŸããããšããããŸãããããã©ã³ã¶ã¯ã·ã§ã³ãèµ·ç¹ãšããŠãè€æ°ã®ã¹ããŒãã³ã³ãã©ã¯ãã®é¢æ°ãåŒã³åºããšãã£ãããšãå¯èœã§ãããããã£ãè€éãªã¢ã¯ã·ã§ã³ãåæããããã«ãTracesãLogsãšãã£ãããŒã¿æ§é ãååšããŸãã TransactionsãšTraces Ethereumã«ãããTracesãšã¯ããã©ã³ã¶ã¯ã·ã§ã³ãèµ·ç¹ãšããŠãããªãããããŸããŸãªç¶æ
å€åã®ã¢ã¯ã·ã§ã³ã®æå°åäœãèšé²ãããã®ã§ããEtherscan( https://etherscan.io/ )ãªã©ã®ãšã¯ã¹ãããŒã©ãŒã§ã¯ããinternal transactionsããšãã£ã圢ã§è¡šçŸãããããšããããŸããã³ãŒã1ã¯ãDune( https://dune.com/ )äžã§éå»24æé以å
ã®TracesããŒã¿ã100ä»¶ååŸããã¯ãšãªã§ãã ã³ãŒã1 . ææ°24æé以å
ã®Ethereumã®TracesããŒã¿ã100ä»¶ååŸããã¯ãšãª SELECT * FROM ethereum.traces WHERE block_time >= CURRENT_TIMESTAMP - INTERVAL '24' hour LIMIT 100 å³1. ã³ãŒã1.ã®åºåçµæäŸïŒethereum.tracesããŒãã«ã®ãµã³ãã«ããŒã¿ ã³ãŒã2ã¯ãTracesã®çš®é¡ã®äžèЧãšã¢ã¯ã·ã§ã³æ°ãååŸããããã®ã¯ãšãªã§ããèšç®éã®åæžãšèšç®çµæã®åºå®ã®ããã察象æéã2023幎1æ1æ¥ãã31æ¥ãŸã§ã®éã«çµã蟌ãã§ããŸãã ã³ãŒã2 . traces.typeã®çš®é¡ããšã«ã«ãŠã³ãããŠå€ãé ã«äžŠã¹æ¿ããã¯ãšãª SELECT type, count(1) as cnt FROM ethereum.traces WHERE block_time BETWEEN timestamp '2023-01-01 00:00:00' AND timestamp '2023-01-31 23:59:59' GROUP BY type ORDER BY cnt desc LIMIT 100 å³2. ã³ãŒã2.ã®åºåçµæäŸ å³2ã«ç€ºããããšãããTracesã®çš®é¡ã«ã¯ãcallãcreateãrewardãsuicideãªã©ããããŸããæãä»¶æ°ã®å€ãcallã¯ãEtherã®ééãã¹ããŒãã³ã³ãã©ã¯ãã®é¢æ°ãåŒã³åºãå Žåã«çšããããŸããcreateã¯ãã¹ããŒãã³ã³ãã©ã¯ããæ°èŠäœæããå Žåã«çšããããŸããrewardã¯ããããã¯çææã®å ±é
¬ã«é¢ãããã°ã«çšããããŸãããEthereumã®å ±é
¬ã«é¢ãã仿§ã¯é »ç¹ã«å€æŽãããŠãããçŸåšã§ã¯äœ¿çšãããŠããŸãããsuicideã¯ãã¹ããŒãã³ã³ãã©ã¯ãã®åé€ã«é¢ããã¢ã¯ã·ã§ã³ã«çšããããŸãã å³3ã§ç€ºããšãããEtherscanäžã§ã¯ãTracesã®å
容ã¯Internal Txnsãšããã¿ãã§ç¢ºèªããããšãã§ããŸãã å³3. Etherscanã§ç¹å®ã®ãã©ã³ã¶ã¯ã·ã§ã³ã«é¢ããInternal Transactionsã確èªãããµã³ãã«ç»é¢ ïŒ etherscan.ioã®å®éã®ç»é¢ã¯ãã¡ã ïŒ åæ§ã®å
容ããDuneäžã§ãåç
§ããŠã¿ãŸããããã³ãŒã3.ãçšããŠãç¹å®ã®ãã©ã³ã¶ã¯ã·ã§ã³ã«çŽã¥ãTracesã®æ
å ±ãååŸã§ããŸãããã©ã³ã¶ã¯ã·ã§ã³ããã·ã¥ã®ã¿ã®æå®ã§ãããŒã¿ã¯ååŸã§ããŸãããããŒã¿ã®æ¢çŽ¢ç¯å²ãçµã蟌ãããã«WHEREå¥ã§æéãæå®ããŠããŸãã ã³ãŒã3 . æå®ãããã©ã³ã¶ã¯ã·ã§ã³ã®TracesãååŸããã¯ãšãª SELECT trace_address, call_type, "from", to, value, gas FROM ethereum.traces WHERE block_time >= timestamp '2023-10-20 00:00:00' AND tx_hash = 0x7900ef4293837b14cdf8814396e45b9380636cdfb7c55fe05a7343628b8b1ae0 LIMIT 100 å³3ããã³å³4ãèŠæ¯ã¹ãŠã衚èšã®éãã¯ãããã®ã®ãåæ§ã®ããŒã¿ãååŸã§ããŠããããšã確èªããŠã¿ãŠãã ããã å³4. ã³ãŒã3. ã®åºåçµæäŸ TransactionsãšLogs TracesãEVMã®ä»æ§ã«ãã£ãŠã»ãŒèªåçã«åºåããããã°ã§ããäžæ¹ãLogsïŒEvent LogsïŒã¯ã¹ããŒãã³ã³ãã©ã¯ãã®å®è£
è
ãæç€ºçã«å®çŸ©ã§ãããã°ã®çš®é¡ã§ããLogsã¯é¢æ°ã®ãããã°çšéãããã©ã³ã¶ã¯ã·ã§ã³å
ã®ã€ãã³ãããããã¯ãã§ãŒã³å€ã®ã·ã¹ãã ããæ€ç¥ãããããªã©ã«çšããããŸãã ã³ãŒã3ã®ããŒãã«ãLogsçšã«å€æŽããŠãããã»ã©èŠããã©ã³ã¶ã¯ã·ã§ã³ã«é¢ããLogsãååŸããã¯ãšãªãã³ãŒã4ã§ãã ã³ãŒã4 . ãããã©ã³ã¶ã¯ã·ã§ã³ã®LogsãååŸããã¯ãšãª SELECT * FROM ethereum.logs WHERE block_time >= timestamp '2023-10-20 00:00:00' AND tx_hash = 0x7900ef4293837b14cdf8814396e45b9380636cdfb7c55fe05a7343628b8b1ae0 LIMIT 100 å³5.ã³ãŒã4.ã®åºåçµæäŸ å³6. Etherscanã§ç¹å®ã®ãã©ã³ã¶ã¯ã·ã§ã³ã«é¢ããLogsã確èªãããµã³ãã«ç»é¢ ïŒ etherscan.ioã®å®éã®ç»é¢ã¯ãã¡ã ïŒ å³6ã«ç€ºããšãããEtherscanãªã©ã®ãšã¯ã¹ãããŒã©ãŒã§ã¯ãèåãªã³ã³ãã©ã¯ãã«ã€ããŠã¯Logsã®ããŒã¿ããã³ãŒããããç¶æ
ã§è¡šç€ºãããŸããäžæ¹ãEthereumãããã¯ãã§ãŒã³äžã®çããŒã¿ãDuneã®LogsããŒãã«äžã§ã¯ãããŒã¿ã¯ãã€ããªåœ¢åŒã§ãšã³ã³ãŒããããç¶æ
ã§ããããã®ãŸãŸã§ã¯çè§£ãå°é£ã§ãããŸããããŸããŸãªãã©ãŒãããã®ãã°ããã³ãŒãããã«ã¯ããã®ãã°ãã©ã®ãããªãã©ãŒãããã§ããããšããå®çŸ©æ
å ±ãå¿
èŠã§ãã Duneäžã§ã¯ãããããã®ã³ã³ãã©ã¯ãã®å®çŸ©æ
å ±ãçšããŠããŒã¿ããã³ãŒãããããŒãã«ãæäŸããŠãããŠããŸããããã»ã©ãŸã§åç
§ããŠãããã©ã³ã¶ã¯ã·ã§ã³ã§ããã°ãuniswap_v3ãšããDEXïŒãªã³ãã§ãŒã³äžã®åæ£åååŒæïŒã®ãã©ã³ã¶ã¯ã·ã§ã³ãšããŠãã³ãŒããããŠããŸãã ã³ãŒã5 . uniswap_v3ã®ãã¬ãŒãããŒã¿ãšããŠãã³ãŒãããããã©ã³ã¶ã¯ã·ã§ã³ãååŸããã¯ãšãª SELECT * FROM uniswap_v3_ethereum.trades WHERE block_time >= timestamp '2023-10-20 00:00:00' AND tx_hash = 0x7900ef4293837b14cdf8814396e45b9380636cdfb7c55fe05a7343628b8b1ae0 LIMIT 100 å³7. ã³ãŒã5ã®åºåçµæäŸ Duneã§ã¯ãããã©ã«ãã§ãã³ãŒããããŠããªãããŒã¿ã§ãã£ãŠããå©çšè
ãã¹ããŒãã³ã³ãã©ã¯ãã®æ
å ±ãªã©ãç»é²ããŠãã³ãŒãã®ç³è«ãããããšãå¯èœãšãªã£ãŠããã®ã§ãèªèº«ã®äœæããã³ã³ãã©ã¯ãããæ¯èŒçæ°ããã³ã³ãã©ã¯ãã®ããŒã¿ãåæããå Žåã«æŽ»çšããŠãã ããã ããŒã¿åæã®ããã®SQL ååã§ã玹ä»ããTracesãLogsããŒã¿ã察象ãšããŠãããŒã¿åæã§ããçšããããSQLæ§æã®ãã¡ã䜿çšé »åºŠãé«ãCASEåŒãšWindow颿°ã«ã€ããŠã玹ä»ããŸãã CASEåŒãšéçŽé¢æ° CASEåŒã¯ãæ¡ä»¶åŒã«ãããã£ãŠå€ã®å Žååãããããªãããã®åŒã§ãããCASE WHEN ãæ¡ä»¶åŒãTHENãçã®å Žåã®å€ãELSEãåœã®å Žåã®å€ãENDããšããæ§æãçšããŸããã³ãŒã6. ã«ãLogsããŒãã«ã®topicã«ã©ã ã®å€ãååšããŠãããã©ããã§0ãŸãã¯1ãåºãåãããµã³ãã«ã¯ãšãªã瀺ããŸããSQLã«ãããŠãå€ãååšããŠããªããã©ã°ãšããŠãNULLããçšããNULLã§ãããã©ããã¯ãIS (NOT) NULLããçšããŸãã ã³ãŒã6 . CASEåŒã§å€ã®å Žååãããããªããµã³ãã«ã¯ãšãª SELECT topic0, topic3, CASE WHEN topic0 IS NOT NULL THEN 1 ELSE 0 END AS have_topic0, CASE WHEN topic3 IS NOT NULL THEN 1 ELSE 0 END AS have_topic3 FROM ethereum.logs WHERE block_time BETWEEN timestamp '2023-01-01 00:00:00' AND timestamp '2023-01-31 23:59:59' LIMIT 100 å³8. ã³ãŒã6. ã®åºåçµæäŸ ãã®CASEåŒãšéçŽé¢æ°ãçµã¿åãããŠããŒã¿åæãçšãããã¯ããã¯ãããã€ããããŸããäŸãã°ãLogsããŒãã«ã«ãããŠãtopic0ïœ3ã®å€ãã¬ã³ãŒãå
šäœã®ãã¡ã©ããããã®å²åã§ååšããŠããããéèšãããå ŽåãèããŸããçŽæçã«ã¯ããtopicã®å€ãååšããŠããã¬ã³ãŒãã®æ°ãããã¬ã³ãŒãå
šäœã®æ°ãã§å²ãããšã§å²åãèšç®ã§ããŸããããã¯ãCASEåŒãçšããŠãtopicã®å€ãååšããŠããå Žåã¯1ãååšããŠããªãå Žåã¯0ããšãã倿ããããªãããããAVG颿°ã§å¹³åããŠãããããšã§ãèšç®ã§ããŸããã³ãŒã7.ã«ãCASEåŒãšAVG颿°ãçšããŠå²åãèšç®ãããµã³ãã«ã¯ãšãªã瀺ããŸãã ã³ãŒã7 .CASEåŒãšAVG颿°ãçµã¿åãããŠå²åãèšç®ãããµã³ãã«ã¯ãšãª SELECT COUNT(1) AS cnt, AVG(CASE WHEN topic0 IS NOT NULL THEN 1 ELSE 0 END) AS have_topic0, AVG(CASE WHEN topic1 IS NOT NULL THEN 1 ELSE 0 END) AS have_topic1, AVG(CASE WHEN topic2 IS NOT NULL THEN 1 ELSE 0 END) AS have_topic2, AVG(CASE WHEN topic3 IS NOT NULL THEN 1 ELSE 0 END) AS have_topic3 FROM ethereum.logs WHERE block_time BETWEEN timestamp '2023-01-01 00:00:00' AND timestamp '2023-01-31 23:59:59' LIMIT 100 å³9. ã³ãŒã7. ã®åºåçµæäŸ ãŸããCASEåŒãšéçŽé¢æ°ãçµã¿åãããããšã§ãã¬ã³ãŒãããšã«ä¿æããŠããããŒã¿ãã«ã©ã ããšã«ä¿æãããã©ãŒãããã«å€æããããšãã§ããŸãã ã³ãŒã8ã¯ãuniswap_v3ã®tradesããŒãã«ãããUSDT-WETHãšUSDC-WETHãšããé貚ãã¢ã®ååŒã«çµã蟌ã¿ãååŒæ°ãååŒç·é¡ãéèšããã¯ãšãªã§ãã ã³ãŒã8 . é貚ãã¢ã®ååŒæ°ã»ååŒç·é¡ãéèšããã¯ãšãª SELECT token_pair, COUNT(1) AS cnt, SUM(amount_usd) AS total_amount_usd FROM uniswap_v3_ethereum.trades WHERE block_time BETWEEN timestamp '2023-01-01 00:00:00' AND timestamp '2023-01-31 23:59:59' AND token_pair IN ('USDT-WETH', 'USDC-WETH') GROUP BY token_pair LIMIT 100 å³10. ã³ãŒã8. ã®åºåçµæäŸ ã³ãŒã8ã®éèšçµæããæ¥æ¬¡ã®ååŒæ°ãååŒç·é¡ã«çްååããŠåæããããšãèããŸãããã®ãšããGROUP BYå¥ã«block_dateãå ããããšã§æ±ããçµæã¯èšç®ã§ããŸããããã¹ãŠã®èšç®çµæãå¥ã
ã®ã¬ã³ãŒããšããŠè¡šç€ºããããããç°ãªãé貚ãã¢ã®åãæ¥ä»ã§ã®ååŒã®æ¯èŒãªã©ãå°ãé£ãããªããŸããããã§ãCASEåŒãšSUM颿°ãçšããŠãã¬ã³ãŒãã¯æ¥ä»ããšã«éçŽããã«ã©ã ã§é貚ãã¢ã®å Žååãããããªãããšã§ãåãæ¥ä»ã®ååŒãæ¯èŒåæãããããã©ãŒãããã«å€æã§ããŸãã ã³ãŒã9 .CASEåŒãšSUM颿°ãçšããŠãç°ãªãåé¡ã®ããŒã¿ãã²ãšã€ã®ã¬ã³ãŒãã«éçŽããã¯ãšãª SELECT block_date, SUM(CASE WHEN token_pair = 'USDT-WETH' THEN 1 ELSE 0 END) AS usdt_weth_cnt, SUM(CASE WHEN token_pair = 'USDC-WETH' THEN 1 ELSE 0 END) AS usdc_weth_cnt, SUM(CASE WHEN token_pair = 'USDT-WETH' THEN amount_usd ELSE 0 END) AS usdt_total_amount_usd, SUM(CASE WHEN token_pair = 'USDC-WETH' THEN amount_usd ELSE 0 END) AS usdc_total_amount_usd FROM uniswap_v3_ethereum.trades WHERE block_time BETWEEN timestamp '2023-01-01 00:00:00' AND timestamp '2023-01-31 23:59:59' AND token_pair IN ('USDT-WETH', 'USDC-WETH') GROUP BY block_date ORDER BY block_date LIMIT 100 å³11. ã³ãŒã9. ã®åºåçµæäŸ Window颿° SQLã®ããŒã¹ãšãªã£ãŠããé¢ä¿ä»£æ°ãéåè«ã§ã¯ãããŒã¿ã®é åºãæ±ãããã«ç¹æ®ãªæé ãå¿
èŠã§ãããããããSQLãæç³»åããŒã¿ããã®ä»ã®é åºä»ãããŒã¿ã®åæçšéã«ãçšããããããã«ãªããããŒã¿åæã«ç¹åããæ§æã®éèŠãé«ãŸããŸãããããã§å°å
¥ãããã®ããWindow颿°ãšåŒã°ãã颿°çŸ€ã§ãã ã³ãŒã10ã¯ãã³ãŒã9ã§èšç®ããuniswap_v3ã®æ¥æ¬¡ååŒããŒã¿ã«å¯ŸããŠãWindow颿°ãçšãããµã³ãã«ã¯ãšãªã§ããWindow颿°ã®å€ãã¯ãéçŽé¢æ°ã«ç¶ããŠOVERå¥ãçšãã圢ã§èšè¿°ã§ããŸãã äŸãã°ãSUM() OVER()颿°ãçšãããšãGROUP BYã«ããã¬ã³ãŒãã®éçŽããããªãããšãªããåã¬ã³ãŒãã«å¯ŸããŠå
šäœã®ããŒã¿ã®åèšå€ãä»å ããããšãã§ããŸãããŸããOVERå¥ã®äžã«ORDER BYå¥ã§é åºãæå®ããããšã§ãå
é ãããã®ã¬ã³ãŒããŸã§ã®çޝèšå€ãèšç®ããŠåã¬ã³ãŒãã«ä»å ããããšãã§ããŸããLAGãLEAD颿°ã¯ãçŸåšã®ã¬ã³ãŒãã®ååŸã®ã¬ã³ãŒãã®å€ãåç
§ããããã«çšããããŸããäŸãã°ãïŒæïŒæ¥ã®ååŒæ°ãä¿æããŠããã¬ã³ãŒãã«å¯ŸããŠãïŒæïŒæ¥ãïŒæïŒæ¥ãªã©ãä»ã®æ¥ä»ã®ã¬ã³ãŒããåç
§ããããšãå¯èœã§ãã ã³ãŒã10 . Window颿°ã§ããŒã¿ã®çޝèšãç·èšãèšç®ãããµã³ãã«ã¯ãšãª WITH daily_trades AS ( SELECT block_date, SUM(CASE WHEN token_pair = 'USDT-WETH' THEN 1 ELSE 0 END) AS usdt_weth_cnt, SUM(CASE WHEN token_pair = 'USDC-WETH' THEN 1 ELSE 0 END) AS usdc_weth_cnt, SUM(CASE WHEN token_pair = 'USDT-WETH' THEN amount_usd ELSE 0 END) AS usdt_total_amount_usd, SUM(CASE WHEN token_pair = 'USDC-WETH' THEN amount_usd ELSE 0 END) AS usdc_total_amount_usd FROM uniswap_v3_ethereum.trades WHERE block_time BETWEEN timestamp '2023-01-01 00:00:00' AND timestamp '2023-01-31 23:59:59' AND token_pair IN ('USDT-WETH', 'USDC-WETH') GROUP BY block_date ) SELECT block_date, usdt_weth_cnt AS daily_cnt, SUM(usdt_weth_cnt) OVER(ORDER BY block_date) AS accum_cnt, SUM(usdt_weth_cnt) OVER() AS total_cnt, LAG(usdt_weth_cnt) OVER(ORDER BY block_date) AS prev_daily_count, LEAD(usdt_weth_cnt) OVER(ORDER BY block_date) AS next_daily_count FROM daily_trades ORDER BY block_date LIMIT 100 å³12. ã³ãŒã10. ã®åºåçµæäŸ Window颿°ã§ã¯ãOVERå¥ã®äžã«PARTITION BYå¥ãçšããŠãéçŽç¯å²ã®ã°ã«ãŒãã³ã°ããããªãããšãã§ããŸããã³ãŒã11ã§ã¯ãTracesããŒãã«ã®åã¬ã³ãŒãã«å¯ŸããŠãåããã©ã³ã¶ã¯ã·ã§ã³IDãæã€ã¬ã³ãŒãã®ç·æ°ããåããã©ã³ã¶ã¯ã·ã§ã³IDãæã€ã¬ã³ãŒãå
ã§trace_addressé ã«äžŠã¹æ¿ãããšãã®ã€ã³ããã¯ã¹çªå·ãä»äžããäŸã瀺ããŸãã ã³ãŒã11 . PARTITION BYå¥ã«ããWindow颿°ã®ã°ã«ãŒãã³ã°äŸ SELECT tx_hash, trace_address, COUNT(1) OVER(PARTITION BY tx_hash) AS trace_cnt, ROW_NUMBER() OVER(PARTITION BY tx_hash ORDER BY trace_address) AS trace_idx FROM ethereum.traces WHERE block_time BETWEEN timestamp '2023-01-01 00:00:00' AND timestamp '2023-01-01 23:59:59' ORDER BY tx_hash, trace_address LIMIT 100 å³13. ã³ãŒã11. ã®åºåçµæäŸ CASEåŒãWindow颿°ãçšããããšã§ãSQLãåãªãããŒã¿æœåºã ãã§ãªããé«åºŠãªããŒã¿åæã®ããŒã«ãšããŠæŽ»çšã§ããŸããSQLãçšããŠèšç®ããçµæã¯ãå¥ã®SQLã¯ãšãªã®å
¥åã«äœ¿ãããšãã§ãããããåæçµæã®å
±æãåå©çšæ§ãé«ããè€æ°äººã®ããŒã ããããžã§ã¯ãã«ããå€§èŠæš¡ãªããŒã¿åæã«ãæçšã§ãã æ¬¡åäºå ä»åã®èšäºã§ã¯ãTracesãLogsãšãã£ãEVMã®ããŒã¿æ§é ã®æ·±æããããã³ãCASEåŒãWindow颿°ãšãã£ãåæçšéã§é »åºããSQLæ§æã«ã€ããŠè§£èª¬ããŸãããæ¬¡åèšäºã§ã¯ãæ¬é£èŒã®æçµåãšããŠãããçºå±çãªãªã³ãã§ãŒã³ããŒã¿åæã®äºäŸã«ã€ããŠã玹ä»ããŸãã é£èŒäžèЧ ã第1åããããã¯ãã§ãŒã³ãšã¯ ã第2åããããã³ã€ã³ã®ä»çµã¿ ã第3åãã€ãŒãµãªã¢ã ã®ä»çµã¿ ã第4åãããã°ããŒã¿åæã®ããã®SQLåºç€ ã第5åãEthereumããŒã¿åææŒç¿1 ã第6åãEthereumããŒã¿åææŒç¿2 ã第7åãEthereumããŒã¿åææŒç¿3 The post ã第7åãEthereumããŒã¿åææŒç¿3 first appeared on Sqripts .
ã¯ãããŸããŠãQAãšã³ãžãã¢ã®ç°äžã§ããä»åã¯ã¢ãžã£ã€ã«éçºææ³ã®äžã€ã®BDDã«ã€ããŠã玹ä»ããããšæããŸãã BDDãšã¯äœãïŒ BDDïŒBehavior-Driven DevelopmentïŒã¯ãããã€ãã¢é§åéçºãæ¯ãèãé§åéçºãšãåŒã°ãããã¹ãé§åéçºããæŽŸçãããã®ã§ãããœãããŠã§ã¢ã®æ¯ãèããæ©èœãéèŠããŠãå質ãšèŠä»¶ã®åäžãããããŸããå
·äœçã«ã¯ããœãããŠã§ã¢ã®æ¯ãèããæç¢ºã«å®çŸ©ããããšã§ãããã°ã©ã éçºãšãã¹ããå¹çåããããšãã§ããŸãã ãŸãåãã«ãèªå販売æ©ã®äŸãéããŠãBDDã説æããŠãããŸããèªå販売æ©ã§ã¯ãã客ããããéãæå
¥ã飲ã¿ç©ã賌å
¥ã§ããŸããBDDã®èŠç¹ãããå
·äœçãªæ¯ãèãã®ã·ããªãªãèããŠã¿ãŸãããã ã·ããªãª1: ã客ããããéãæå
¥ããŠèªå販売æ©ã§é£²ã¿ç©ã賌å
¥ããããšãã ãããã客ãããèªå販売æ©ã«ãéãæå
¥ãã飲ã¿ç©ã®éžæãã¿ã³ãã¯ãªãã¯ããããéžæãã¿ã³ã«å¿ãã飲ã¿ç©ãåºãŠããã¹ãã§ãã ãããŠããã€ããå¿
èŠãªå Žåãèªå販売æ©ã¯ãå¿
èŠãªéé¡ããã€ããšããŠãã客ããã«åºãã¹ãã§ãã ã·ããªãª2: ã客ããããéãæå
¥ããªãã§èªå販売æ©ã§é£²ã¿ç©ã賌å
¥ããããšãã ãããã客ãããèªå販売æ©ã«ãéãæå
¥ããã«ã飲ã¿ç©ã®éžæãã¿ã³ãã¯ãªãã¯ãããã飲ã¿ç©ãåºãŠããã¹ãã§ã¯ãªãã§ãã ãã®ã·ããªãªã¯ãããžãã¹ã®èŠç¹ãããœãããŠã§ã¢ã®æ¯ãèããèšè¿°ãããã®ã§ãããBDDã¯ãã®ãããªã·ããªãªãéããŠãœãããŠã§ã¢ã®éçºãšãã¹ããå°ãææ³ã§ããéµãšãªããã€ã³ãã¯ãããžãã¹èŠä»¶ãšãœãããŠã§ã¢ã®æ¯ãèããçµã³ã€ããããã«åºã¥ããŠãã¹ããèšèšãããœãããŠã§ã¢ãéçºããããšã§ãã ãã®èªå販売æ©ã®äŸãããBDDãéçºããã»ã¹ãæç¢ºã«ããããŒã ã顧客ã®èŠä»¶ãæ£ç¢ºã«çè§£ããã®ã«åœ¹ç«ã€ããšãããããŸããããã«ãããé¡§å®¢ã®æåŸ
ã«å¿ããé«å質ãªãœãããŠã§ã¢ãè¿
éã«æäŸããããšãå¯èœã«ãªããŸãã BDDã«ã€ããŠæŽã«è©³ããç¥ãããæ¹ã¯ãæ¬ãµã€ãã§ã¹ã¯ãªãã¿ãŒã®ãããã³ãªãŒããã詳ããèšäºãæžããŠãããŸãã®ã§ããã¡ããåç
§é¡ããŸãã â ãé£èŒãTDDã®æŽŸç圢ïŒBDDãATDDãšã¯äœã? æŠå¿µããããã»ã¹ãŸã§åŸ¹åºè§£èª¬ïŒ ã¹ã¯ãªãã¿ãŒïŒé¢šéè£ä¹ïŒãããã³ãªãŒïŒ BDDã®ç¹åŸŽã»ã¡ãªãã BDDã®ç¹åŸŽãã¡ãªããã«ã¯ãäžèšã®ãããªãã®ããããŸãã æ¯ãèãã«çŠç¹ãåœãŠã éçºè
ããã¹ã¿ãŒãããžãã¹ã¹ããŒã¯ãã«ããŒãå
±éã®çè§£ãæã€ããã«ãæ¯ãèãã«å¯ŸããèŠä»¶ãæåŸ
å€ãæç¢ºã«å®çŸ©ããŸããééçºè
ãšéçºè
éã®èªèéœéœ¬ã®äœæžãæåŸ
ã§ãããããžã§ã¯ãã®å¹çãåäžãããŸãã èªç¶èšèªã§èšè¿° ãã¹ãã®ã·ããªãªïŒãã¹ãã±ãŒã¹ïŒã«ãããŠæ¯ãèããèŠä»¶ãèªç¶èšèªã§èšè¿°ããŸããã·ããªãªã¯æ§ã
ãªãã§ãŒãºã®ãã¹ãã§æè»ã«æŽ»çšã§ããéçºè
ãæžãèªåãã¹ãïŒãŠããããã¹ããã€ã³ãã°ã¬ãŒã·ã§ã³ãã¹ããªã©ïŒãªã©ã®éçºè
ãã¹ãã§ãé©çšå¯èœã§ããéæè¡è
ãçè§£ãããããã³ãã¥ãã±ãŒã·ã§ã³ã®è³ªãåäžãããŸããæ¥æ¬èªã§æžããããã¹ãã·ããªãªããã®ãŸãŸå®è¡ã§ããç°ãªããã©ã¡ãŒã¿ã®å
¥åãæ¥æ¬èªã§èšè¿°ãããã·ããªãªå
ã§è¡šçŸã§ããŸããäžè¬çãªææ³ã¯ãGiven-When-Thenãã§è¡šçŸãããåææ¡ä»¶ïŒGivenïŒãã¢ã¯ã·ã§ã³ïŒWhenïŒãçµæïŒThenïŒãèšè¿°ããŸããééçºè
ã«ããæ¯ãèããèŠä»¶ã®èšè¿°(ã·ããªãªäœæ)ãæåŸ
ã§ããŸããåŸã»ã©ãäŸãçšããŠèª¬æããŸãã ãã¹ãã±ãŒã¹ãšããŠã®BDD BDDã¯ãã¹ãã±ãŒã¹(ã·ããªãª)ãèªååããããã®æ¹æ³ãšããŠã䜿çšãããŸããBDDãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠèªåãã¹ãã±ãŒã¹ãèšè¿°ããå®è¡ããããšã§ãæ¯ãèãã«é¢ããåé¡ãç¹å®ããå€éšå質ã確ä¿ããŸãããŸãããªãã¡ã¯ã¿ãªã³ã°ãªã©ã®å
éšå®è£
倿Žã«å¯ŸããŠããã¹ãã±ãŒã¹ã圱é¿ãåããªãããããã¹ãã±ãŒã¹ã®ã¡ã³ããã³ã¹ãæžããŸãã ãã¹ããã¡ãŒã¹ãã»ã·ããã¬ãã BDDã¯ããã¹ããã¡ãŒã¹ãã»ã·ããã¬ããã®ååã«åºã¥ããŠããŸããã³ãŒããæžãåã«æ¯ãèããèŠä»¶ãæç¢ºã«ããããã«åºã¥ããŠã·ããªãªãèšè¿°ããŸãããã®åŸãããã«åæ Œãããããã¯ãã³ãŒããæžããŠãããŸããããã«ããããã¹ã¿ããªãã£ã®é«ãããã€ççµåãªã³ãŒããäœæãããããšã«ãããåéšåãç¬ç«ããŠãã¹ãã§ããç¹å®ã®å€æŽãä»ã®éšåã«åœ±é¿ãäžãã«ãããªããããã³ãŒãã®å質åäžãšãã°ã®æ©æçºèŠãå®çŸã§ããŸããæ©ãæ®µéã§åé¡ç¹ããã£ãŒãããã¯ããããšã§ã倧ããªææ»ããæªç¶ã«ãã°ãé²ãããšãå¯èœã§ãå
šäœã®ãã¹ãæéãççž®ããã³ã¹ãäœæžãæåŸ
ã§ããŸãã QAãšã³ãžãã¢ããã¿ãBDDã®ã¡ãªãã ã§ã¯ãQAãšã³ãžãã¢ããã¿ãBDDã®ã¡ãªããã«ã¯ãã©ã®ãããªãã®ãããã§ãããïŒBDDãå°å
¥ããããšã§ãQA(å質ä¿èšŒ)ã®èгç¹ããã¯ã次ã®ãããªã¡ãªããããããŸãã éçºè
ãšQAãšã³ãžãã¢ã®å
±éçè§£ã®ä¿é² éçºè
ãšQAãšã³ãžãã¢ã®é£æºã匷åãããŸããéçºè
ãšQAãšã³ãžãã¢ãå
±éã®BDDã®ä»æ§ãæ¯ãèãå®çŸ©ã«åºã¥ããŠäœæ¥ãè¡ããããã³ãã¥ãã±ãŒã·ã§ã³ãçè§£ã容æã«ãªããŸãã QAãšã³ãžãã¢ã«ãããã¹ãã®ã¬ãã¥ãŒã»äœæãå¯èœ QAãšã³ãžãã¢ã¯éçºè
ãã¹ã段éãããã¹ãã®ã¬ãã¥ãŒã»äœæãè¡ããããã«ãªããŸããBDDã®ä»æ§ã«åºã¥ããŠã·ããªãªãäœæãããã¹ãã®å質ãåäžãããããšãã§ããŸãã ã€ãŸããBDDãå°å
¥ããããšã§ãå質ä¿èšŒããã»ã¹ã«ãããŠéçºè
ãšQAãšã³ãžãã¢ã®é£æºã匷åããããã¹ãã®å質åäžãå®çŸããããšãã§ããŸãã BDDã®é²ãæ¹ ã§ã¯ãBDDã®é²ãæ¹ã«ã€ããŠã ãããã³ãªãŒããã®èšäº ã®äŸãåèã«ãèŠãŠã¿ãŸãããã TDDãšBDD/ATDD(5)ãBDDã®ããã»ã¹ãã®1ãçºèŠ(Discovery)ããšå®äŸãããã³ã° ãã ãŸããã#1 ãŠãŒã¶ãŒã¹ããŒãªãŒãéžã¶ãã§ã¯ãã·ã¹ãã ã«ãããŠå®è£
ãã¹ãæ©èœãåŒãåºããåªå
é äœãä»ããŠè¡ããŸãã æ¬¡ã«ã#2 èŠä»¶ã¯ãŒã¯ã·ã§ãããã§ã¯ãåªå
é äœãä»ããããæ©èœã«å¯ŸããŠãæ¯ãèãã®å®äŸãåºã«è©³çްãªèŠä»¶ãæ¢çŽ¢ããæç¢ºã«ãªã£ãŠããªãã£ãèŠä»¶ãçºèŠããŠãããŸãã TDDãšBDD/ATDD(5)ãBDDã®ããã»ã¹ãã®1ãçºèŠ(Discovery)ããšå®äŸãããã³ã° ãã æ¬¡ã«ãå®äŸãã·ããªãªã«å€æããã#3 å®åŒåããè¡ããŸããããã§ã¯ãæ¯ãèãå®çŸ©ã«åºã¥ããã·ããªãªãèªç¶èšèª(Gherkin â»1 èšæ³ãªã©)ã§èšèŒãããŠãããããéçºè
ã¯ãã¡ããQAãšã³ãžãã¢ã«ãã·ããªãªã®çè§£ãæ·±ãŸããéçºè
ãã¹ã段éãããã¹ãã®ã¬ãã¥ãŒã»äœæãè¡ãããšãå¯èœã§ããããã«ãããéçºã®æ©ã段éããQAãšã³ãžãã¢ãåç»ããŠãã¹ããè¡ãããšãã§ããããããã¹ãã®å質åäžã«ã€ãªãããŸãã Feature: èªåè²©å£²æ© Scenario: 飲ã¿ç©ãè²·ããšã飲ã¿ç©ä»£ãåŒããéé¡ã®ãé£ããåºã Given èªå販売æ©ããã When 550 åãå
¥ãã And 120 åã® "ã³ãŒã©" ãéžæãã Then "ã³ãŒã©" ãåºãŠãã And 430 åãåºãŠãã ã#4 ã¬ãã¥ãŒãã§ã¯ãä»ã®ããŒã ã¡ã³ããŒããã®èŠç¹ãåãå
¥ããããšã§ãæœåšçãªåé¡ãç¹å®ãã誀解ãäžè¶³ãè§£æ¶ãããœãããŠã§ã¢ã®å質ãé«ããŸããã#5 èªååãã§ã¯ãBDDã®ãã¬ãŒã ã¯ãŒã¯ãå°å
¥ã«ããèªåãã¹ãã®ã³ãŒããæžããŸããèªååã«ã€ããŠã®è©³çްã«ã€ããŠã¯ãäžèšãåèã«ããŠãã ããã åèïŒ TDDãšBDD/ATDD(7)ãBDDã®ããã»ã¹ãã®3ãèªåå(Automation)ã ã¹ã¯ãªãã¿ãŒïŒé¢šéè£ä¹ïŒãããã³ãªãŒïŒ TDDãšBDD/ATDD(7)ãBDDã®ããã»ã¹ãã®3ãèªåå(Automation)ã ãã æ¬¡ã«äžèšã®ïŒã€ã®ãµã€ã¯ã«ãåããã³ãŒããã#6 å®è£
ãããŠãããŸãã RedïŒããã°ã©ããŒããã¹ããæžã GreenïŒãã¹ããæåããã®ã«ååãªã³ãŒããæžã RefactorïŒã³ãŒããæŽçãã ãã¹ãã³ãŒããã·ããªãªã«åãããŠäœæããããããã¹ããã³ãŒããå®è£
ããã®ããã»ã¹ãç¹°ãè¿ããŸããã#7 è£è¶³çãªãã¹ããã§ã¯ãèªåãã¹ããè£ã圢ã§ãæ¢çŽ¢çãã¹ãã䟵å
¥ãã¹ããè² è·ãã¹ããè¡ãããœããã®å質ãé«ããŠãããŸããæåŸã«ãåºè·å¯èœãªã€ã³ã¯ãªã¡ã³ããçæã#8 ãªãªãŒã¹ãããŠã次ã®éçºã«ã€ãªããŸãã äºäŸ(PoCããã£ãŠã¿ã) BDDãå°å
¥ããããšã§ãQAããã»ã¹ã«ãããŠéçºè
ãšQAãšã³ãžãã¢ã®é£æºã匷åããããã¹ãã®å質åäžãå®çŸã§ããããšãæããã§ããããããçè«çãªã¡ãªãããæã€åãçµã¿ãå®éã®çŸå Žã§ã©ã®ããã«æ©èœãããã¯ãåžžã«çåãæ®ããŸãã ãã®ãããæ³å®ããŠããQAç®ç·ã§ã®ã¡ãªãããå®éã«äº«åã§ããããPoCã§ç¢ºèªããŠã¿ãããšã«ããŸããã PoCäºäŸè©³çް ãããžã§ã¯ãã®å質åäžãç®æãããã¹ãã«é¢ãã課é¡ã解決ããããã«ãBDDã®å°å
¥ã«ããå質åäžã®å
·äœçãªå¹æãå®èšŒãããã®å®çŸå¯èœæ§ãæ¢ã£ãŠã¿ãŸããã é£ããèŠä»¶ããããããžã§ã¯ãã§ãäžèšã®ãããªããã€ãã®èª²é¡ãæ±ããŠãããå質ãååã«æ
ä¿ã§ãããã«æžå¿µãæ±ããŠããŸããã éçºè
ã«ãããã¹ãã«ååãªæéã確ä¿ãããŠããªã éçºè
ã ãã§ãã¹ãã±ãŒã¹ãäœæããŠããããããã¹ãã±ãŒã¹ãéäžè¶³ãªãæŽãåºãããäžå® éçºè
ã«ããã¢ãµãŒã·ã§ã³ïŒãã¹ãã®æ¡ä»¶ãæåŸ
çµæïŒã®èšå®ãé£ãã ããã§ãBDDãåãå
¥ããŠãäžèšã®æ¹åãå³ãããšãç®æãPoCã宿œããŸãããå®éã«è¡ã£ãæé ã¯ãäžèšã®éãã§ããïŒä»åã®PoCã§ã¯ãBDDã®é²ãæ¹ã®ã#2 èŠä»¶ã¯ãŒã¯ã·ã§ãããããã#6 å®è£
ãã®ããã»ã¹ã宿œããŠããŸããïŒ å®äŸãåºã«ããèŠä»¶æŽçãšãã¹ãã±ãŒã¹äœæ éçºè
ãšQAãšã³ãžãã¢ã¯ãå®éã®å®äŸãåºã«è©³çްãªèŠä»¶ãæŽçããããžãã¹èŠä»¶ãæç¢ºã«ããŸããããã®åŸãQAãšã³ãžãã¢ã¯Gherkinèšæ³ãçšããŠããã¹ãã±ãŒã¹ãèšè¿°ããŸãããããã¯ãBDDã®é²ãæ¹ã®ã#2 èŠä»¶ã¯ãŒã¯ã·ã§ãããã#3 å®åŒåãã«è©²åœããŸãã ãã¹ãã±ãŒã¹ã®ååã¬ãã¥ãŒ éçºè
ãšQAãšã³ãžãã¢ã¯ãã¹ãã±ãŒã¹ã«ã€ããŠã#4 ã¬ãã¥ãŒããè¡ãããã¹ãã±ãŒã¹ãæç¢ºåããŸããã ãã¹ãã³ãŒãå®è£
éçºè
ã¯ããã¹ãã±ãŒã¹ãåºã«ãã¹ãã³ãŒããå®è£
ããŠãããŸããããã¯ãBDDã®é²ãæ¹ã®ã#5 èªååãã«è©²åœããŸãã ä»åã®ãã¹ãèªååç°å¢ã§ã¯ããã¹ãã®ãã¬ãŒã ã¯ãŒã¯ã§ã¯ãpytest-bddã䜿çšããŸãããããã¯ãéçºèšèªãšããŠã¯PythonãçšããããŠããããšãå
ã
ãŠããããã¹ããpytestã§æžãããŠãããŠããããã¹ãã®è³ç£æµçšãèæ
®ããããã§ããpytest-bddã¯ãpytest â»2 ã§æ¯ãèãé§åãå®çŸããããã«ãGherkinã§èšèŒãããã¹ãã±ãŒã¹ãšPythonã®ã³ãŒããçŽã¥ããŠããã圹å²ãæã£ãŠããŸãã ã³ãŒãã®å®è£
éçºè
ã¯ãpytest-bddã§èªååãã¹ããè¡ãããã¹ããã³ãŒããäœæãã·ã¹ãã ã«å®è£
ããŠãããŸããããã®ã¹ãããã¯ãBDDã®é²ãæ¹ã®ã#6 å®è£
ãã«è©²åœããŸãã PoCã§èŠããŠãã課é¡ãšã解決ã«åããåãçµã¿ æåã¯é 調ã«èŠããPoCã§ãããé²ããŠããäžã§æ¬¡ã®ãããªèª²é¡ãåºãŠããŸããã 倿°ã®ãã¹ãã±ãŒã¹ãšãã¹ãã³ãŒããäœæãããããã察å¿é¢ä¿ãçè§£ãã«ããã管çãç
©é æ°æ©èœã®å®è£
ã«å°å¿µãããããéçºè
ã«ãããã¹ãã³ãŒãã®äœæã®ããã®æéãäžè¶³ éçºäžã«ãå€ãã®ãã¹ãã±ãŒã¹ãééãããªããã³ãŒããå®è£
ããéããã¹ãã»å®è£
鲿ã®ç®¡çãé£ãã ããã§ã課é¡ã®è§£æ±ºã®ããã«ã次ã®ãããªå¯Ÿçãç«ãŠãŸããã ãã¹ãã±ãŒã¹ãšãã¹ãã³ãŒãã®é¢é£æ§ãæç¢ºã«ç®¡çããããã®ç®¡çããŒã«ãäœæãã é«å質ã®ãã¹ããéçºãšåæã«é²ãããããQAãšã³ãžãã¢ããã¹ãã±ãŒã¹ã ãã§ã¯ãªããã¹ãã³ãŒããäœæããã ã³ãŒãå®è£
ã®é²æç¶æ³ããã¹ãã®ãã¹æ°ã§å¯èŠåããããã®ã詊éšçµæã»ã³ãŒãå®è£
鲿ã®è¡šç€ºããŒã«ãäœæããã BDDã®éçºããã»ã¹ã«ãããŠãQAãšã³ãžãã¢ãéçºã®åææ®µéã§ã管çããŒã«ã詊éšçµæè¡šç€ºããŒã«ã®å¯Ÿå¿ããããŠãã¹ãã³ãŒãäœæããµããŒãããããšã«ãããéçºè
ã®å質åäžã«å¯Ÿããè² è·ã軜æžãããœãããŠãšã¢ã®å質ãåäžãããããšãã§ããŸããã ãŸãšã BDDã¯ããœãããŠã§ã¢éçºããã»ã¹ã®å質ãšå¹çæ§ãåäžããã匷åãªææ³ã§ããçŸä»£ã®ããžãã¹ç°å¢ã¯å€åãç¶ããŠããããœãããŠã§ã¢éçºã«ãããŠã¯æè»ã§è¿
éãªå¯Ÿå¿ãæ±ããããŸããBDDã¯èªç¶èšèªã§èŠä»¶ãèšè¿°ããã·ããªãªãäœæããè¿
éãªãã£ãŒãããã¯ãéããŠé¡§å®¢ã®èŠæ±ã«æè»ã«å¯Ÿå¿ããã®ã«éåžžã«å¹æçã§ããããã«ãéçºããŒã ãšãã¹ãããŒã ãååããBDDãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠèªåãã¹ãã宿œããããšã§ãçç£æ§ã®åäžãå質ã®åäžãããã³é¡§å®¢æºè¶³åºŠã®åäžãæåŸ
ã§ããŸãããã®èšäºãBDDãå°å
¥ã®ãã£ãããšãªã£ãããããŒã å
šäœã§å®è·µãéããŠãœãããŠã§ã¢éçºããã»ã¹ã®å質åäžãšå¹çåãå³ãåèã«ãªãã°å¹žãã§ãã APPENDIX:çšèªã®èª¬æ â»1 GherkinïŒ Cucumberãªã©ã®ãã¹ããã¬ãŒã ã¯ãŒã¯ããã¹ãã±ãŒã¹ãå®çŸ©ããããã«äœ¿çšããèšèªããã®èšèªã®ç®çã¯ãããžãã¹ã¢ããªã¹ãããããŒãžã£ãå«ãéçºããŒã å
šäœã«ããã£ãŠãBDDã®å®è·µãä¿é²ããããšã«ãããããã¯ãããžãã¹ãããžã¡ã³ãã«ããèŠä»¶å®çŸ©ã®åææ®µéããéçºã©ã€ããµã€ã¯ã«ã®ä»ã®æ®µéã«ãããŠã匷åºã§ææ§ãã®ãªãèŠä»¶ã匷å¶ããããšããŠãããèªåãã¹ãã®ããã®ã¹ã¯ãªãããæäŸããããšã«å ããŠãGherkinã®èªç¶èšèªæ§æã¯ããã¹ã察象ã®ã³ãŒãã®ç°¡åãªææžåãæäŸããããã«èšèšãããŠããã â»2 pytestïŒPyPyãããžã§ã¯ãããçãŸããPythonã®ãã¹ããã¬ãŒã ã¯ãŒã¯ããŠããããã¹ããçµ±åãã¹ãããšã³ãããŒãšã³ããã¹ããæ©èœãã¹ããªã©ãæ§ã
ãªçš®é¡ã®ãœãããŠã§ã¢ãã¹ããæžãããã«äœ¿ãããšãã§ããããã®æ©èœã«ã¯ããã©ã¡ããªãã¯ãã¹ãããã£ã¯ã¹ãã£ãã¢ãµãŒãæžãæããªã©ãããã The post BDDã«ã€ããŠ ïœ ãœãããŠã§ã¢ã®æ¯ãèãã«çŠç¹ãåœãŠãèŠä»¶ãæç¢ºã«ããã³ãã¥ãã±ãŒã·ã§ã³ãæ¹å ïœ first appeared on Sqripts .
ããã«ã¡ã¯ãããã¯ãšã³ããšã³ãžãã¢ã®ãŸãã§ãã æè¿ãéçºããã»ã¹ãå¹çåããããã®åãçµã¿ã®äžã€ãšããŠãGithub Copilotãå©çšããŠããŸãããã®èšäºã§ã¯ãGithub Copilotã䜿ã£ãŠã¿ãçµæãéçºå¹çãåçã«åäžããçµéšã«ã€ããŠå
±æããããšæããŸãã Github Copilotãšã¯ Github Copilotã¯ãAIïŒäººå·¥ç¥èœïŒãå©çšããŠã³ãŒãã£ã³ã°ã®è£å®ãææ¡ãè¡ãéçºããŒã«ã§ãããã®ããŒã«ã¯ãã³ãŒããæžãéã«ãèªåçã«ã³ãŒãã®æçã颿°ãææ¡ããŠãããŸãããŸããã³ãŒãã®æèã«åºã¥ããŠãé©åãªã³ãŒãã¹ãããããçæããããšãã§ããŸããGithub Copilotã¯ãããã°ã©ãã³ã°èšèªããã¬ãŒã ã¯ãŒã¯ã«é¢ä¿ãªã䜿çšããããšãã§ããŸãã ãŸãã¯è©ŠããŠã¿ãïœGitHub Copilotã®äœ¿ãæ¹ æ®æ®µã¯éçºçšã®IDEãšããŠVSCodeãå©çšããŠããŸããVSCodeã«ã¯ ãã¡ã ã®GitHub Copilotçšã®æ¡åŒµãã©ã°ã€ã³ããããŸãã®ã§ããã¡ããã€ã³ã¹ããŒã«ããŠäœ¿çšããŸãã ãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããåŸãæ°èŠã«ãã¡ã€ã«ãäœæããŠCopilotã詊ããŠã¿ãŸããä»åã¯Goèšèªã§è©ŠããŠã¿ãããã main.go ãšãããã¡ã€ã«ãäœæããŸãã 詊ãã«ã¯ãšãªãã©ã¡ãŒã¿ãåãåãããããã¬ã¹ãã³ã¹ãšããŠè¿åŽããHTTPãµãŒããŒãå®è£
ããŠã¿ãããšæããŸãã ãŸãã¯ã main.go ã«ä»¥äžã®ããã«ã³ã¡ã³ãã§èšè¿°ããŸãã // httpãµãŒããŒã§ãŠãŒã¶ãŒããã®ãªã¯ãšã¹ããqãã©ã¡ã¿ã§åãåãããããã¬ã¹ãã³ã¹ãšããŠè¿ãåŠçã®å®è£
ãããŠæ¹è¡ãããš ãã®ããã«copilotãç¶ããŠã³ã¡ã³ãåè£ãææ¡ããŠãããŸãã ä»åã¯ãã®ãŸãŸèšè¿°ãè¡ãããã®ã§ããã±ãŒãžæ package main ãèšè¿°ããããšæããŸãã ãã®ããäžæåç®ã®pãšããæåãæã¡èŸŒããš æã¡èŸŒãããšãã package main ãåè£ãšããŠææ¡ããŠãããŸããã ããã¯ãã®ãŸãŸå©çšãããããtabããŒãæŒäžããææ¡ãæ¿è«ŸããŸãã ç¶ããŠ2è¡æ¹è¡ãããšæ¬¡ã¯ importæã®ææ¡ãããŠãããŸãã以éã¯æ¹è¡âææ¡æ¿è«Ÿãšãã圢ã§ãã°ããé²ããŠã¿ãŸãã ãããšæçµçã«ã¯äžèšã®ãããªåäœããã³ãŒããçæããŠãããŸãã åäœã確èªããããã以äžã®ããã«ããŠãã®ããã°ã©ã ãå®è¡ããŸãã go run main.go ã³ãã³ããå®è¡ãããšãµãŒããŒåŠçãèµ·åãããªã¯ãšã¹ãåä»ç¶æ
ãšãªããŸãã å¥ã®ã¿ãŒããã«ããäžèšã®ããã«ã³ãã³ããå®è¡ããŠã¿ãŸãã curl localhost:8080?q=test ãhello testãã®ããã«åºåãããããšæããŸãã æåã®ã³ã¡ã³ãã«èšèŒãããšãããhttpãµãŒããŒã§ãŠãŒã¶ãŒããã®ãªã¯ãšã¹ããqãã©ã¡ã¿ã§åãåãããããã¬ã¹ãã³ã¹ãšããŠè¿ãåŠçã®å®è£
ããéæã§ããŸããïŒ ãã¹ãã§ã®æŽ»çš Github Copilotã¯ãã¹ãã³ãŒãã®äœæã«ã圹ç«ã¡ãŸãããã¹ãã±ãŒã¹ãã¢ãµãŒã·ã§ã³ã®çæãã¢ãã¯ãªããžã§ã¯ãã®äœæãªã©ããã¹ãã«é¢é£ããã³ãŒãã®èªåçæãè¡ãããŸããããã«ãããæäœæ¥ã§ã®ãã¹ãã³ãŒãã®äœææéããã¹ã®å¯èœæ§ãæžããããšãã§ããŸãã å®éã«äŸã以äžã«èšèŒããããšæããŸãã ãŸããã¹ã察象ã®ã³ãŒãã§ãã ãã¡ã€ã«ã¯ src/common/utils.go ãšããŠäœæããŠãããŸãã package common type ItemList struct { IdList []int ItemMap map[int]Item NameConcat string TotalPrice int } type Item struct { ID int Name string Price int } // Itemé
åãåãåããItemListãè¿ã颿° func NewItemList(items []Item) *ItemList { // ItemListãåæå itemList := &ItemList{ // IdListãåæå IdList: []int{}, // ItemMapãåæå ItemMap: map[int]Item{}, // TotalPriceãåæå TotalPrice: 0, } // itemsãåã for _, item := range items { // IdListã«item.IDã远å itemList.IdList = append(itemList.IdList, item.ID) // ItemMapã«item.IDãããŒãšããŠitemã远å itemList.ItemMap[item.ID] = item // NameConcatã«item.Nameã远å itemList.NameConcat += item.Name // TotalPriceã«item.Priceãå ç® itemList.TotalPrice += item.Price } // ItemListãè¿ã return itemList } ãã¡ãã¯ãItemãšããæ§é äœã®é
åããéèšãªã©ãè¡ããItemListæ§é äœãè¿åŽãã颿°ã§ãã å
·äœçã«ã¯ãItemé
åã®IDã®ãªã¹ããIdListã«ãIdãšå®äœãçŽã¥ãã飿³é
åãItemMapã«ãNameãé£çµãããã®ãNameConcatã«ããããŠéé¡ãåèšãããã®ãTotalPriceã«æ ŒçŽããItemListãçæããåŠçãšãªã£ãŠããŸãã ãã®é¢æ°ã®ãã¹ãã³ãŒããäœæããããããã¹ãçšã®ãœãŒã¹ src/common/utils_test.go ãæ°ãã«äœæãVSCodeã§éããŸãã ãŸãã¯åé ã§äžèšã®ããã«å
¥åããŸãã package common ãããšimportæã®ææ¡ãããŠãããŸãã®ã§äºæ¿ããŸãã package common import ( "testing" ) ç¶ããŠä»¥äžã®ããã«ãã¹ãã®çæã®çºã®ã³ã¡ã³ããææ¡ãããŸãã package common import ( "testing" ) // NewItemListã®ãã¹ã ãã®åŸã¯é¢æ°åãããã¹ãã®å®è£
ãŸã§å
šãŠææ¡ããŠãããŸããã package common import ( "testing" ) // NewItemListã®ãã¹ã func TestNewItemList(t *testing.T) { // Itemãè€æ°äœæ items := []Item{ {ID: 1, Name: "item1", Price: 100}, {ID: 2, Name: "item2", Price: 200}, {ID: 3, Name: "item3", Price: 300}, } // NewItemListã®å®è¡çµæãååŸ itemList := NewItemList(items) // NewItemListã®å®è¡çµæã®IdListã®é·ãã3ã§ãªãå Žå if len(itemList.IdList) != 3 { // ãã¹ã倱æ t.Errorf("len(itemList.IdList) = %v, want %v", len(itemList.IdList), 3) } // NewItemListã®å®è¡çµæã®IdListã®èŠçŽ ã1ã§ãªãå Žå if itemList.IdList[0] != 1 { // ãã¹ã倱æ t.Errorf("itemList.IdList[0] = %v, want %v", itemList.IdList[0], 1) } // NewItemListã®å®è¡çµæã®IdListã®èŠçŽ ã2ã§ãªãå Žå if itemList.IdList[1] != 2 { // ãã¹ã倱æ t.Errorf("itemList.IdList[1] = %v, want %v", itemList.IdList[1], 2) } // NewItemListã®å®è¡çµæã®IdListã®èŠçŽ ã3ã§ãªãå Žå if itemList.IdList[2] != 3 { // ãã¹ã倱æ t.Errorf("itemList.IdList[2] = %v, want %v", itemList.IdList[2], 3) } // NewItemListã®å®è¡çµæã®ItemMapã®é·ãã3ã§ãªãå Žå if len(itemList.ItemMap) != 3 { // ãã¹ã倱æ t.Errorf("len(itemList.ItemMap) = %v, want %v", len(itemList.ItemMap), 3) } // NewItemListã®å®è¡çµæã®ItemMapã®èŠçŽ ã1ã§ãªãå Žå if itemList.ItemMap[1] != items[0] { // ãã¹ã倱æ t.Errorf("itemList.ItemMap[1] = %v, want %v", itemList.ItemMap[1], items[0]) } // NewItemListã®å®è¡çµæã®ItemMapã®èŠçŽ ã2ã§ãªãå Žå if itemList.ItemMap[2] != items[1] { // ãã¹ã倱æ t.Errorf("itemList.ItemMap[2] = %v, want %v", itemList.ItemMap[2], items[1]) } // NewItemListã®å®è¡çµæã®ItemMapã®èŠçŽ ã3ã§ãªãå Žå if itemList.ItemMap[3] != items[2] { // ãã¹ã倱æ t.Errorf("itemList.ItemMap[3] = %v, want %v", itemList.ItemMap[3], items[2]) } // NewItemListã®å®è¡çµæã®NameConcatãitem1item2item3ã§ãªãå Žå if itemList.NameConcat != "item1item2item3" { // ãã¹ã倱æ t.Errorf("itemList.NameConcat = %v, want %v", itemList.NameConcat, "item1item2item3") } // NewItemListã®å®è¡çµæã®TotalPriceã600ã§ãªãå Žå if itemList.TotalPrice != 600 { // ãã¹ã倱æ t.Errorf("itemList.TotalPrice = %v, want %v", itemList.TotalPrice, 600) } } ãã®ãã¹ãã¯å®éã«ãã®ãŸãŸå©çšããŠé¢æ°ã®ãã¹ããè¡ãããšãå¯èœã§ãã go test -v ./ === RUN TestNewItemList --- PASS: TestNewItemList (0.00s) PASS ok github.com/agest-inc/example/src/common 0.003s ãã®ããã«ãå®è£
ã«å¯Ÿãããã¹ãã³ãŒãã®ææ¡ãããŠããããããšã§ãéçºã®è£å©ããŒã«ãšããŠéåžžã«æçšã§ãããå·¥æ°ã®åæžã«å€§ãã«åœ¹ç«ã£ãŠãããšèããŠããŸãããã ããææ¡ãããã³ãŒãã100%æ£ãããšããä¿èšŒã¯ãããŸããã®ã§ãå
容ã®ç¢ºèªã¯èªå·±è²¬ä»»ã§è¡ãå¿
èŠããããŸãã ããã§ãããã¹ãããŒã¿ã®ã³ãŒãã£ã³ã°ã®æéãçãããšãã䌌ããããªã³ãŒãã®ç¹°ãè¿ãã§äžéšå€æŽãè¡ãå¿
èŠãããå Žåã«ã¯ãäžå®ã®å¹æãããã®ã§ã¯ãªãããšæããŸãã éçºå¹çã®åäž Github Copilotã䜿ã£ãŠã¿ããšãéçºå¹çã以åã«æ¯ã¹ãŠå€§å¹
ã«åäžããŠãã宿ããããŸãã以åã¯ãã³ãŒãã®äžéšãæåã§å
¥åããå¿
èŠããããŸããããCopilotã䜿ããšãã³ãŒãã®ææ¡ãåããããšãã§ããŸããããã«ãããæéãç¯çŽã§ããã ãã§ãªããéçºã®ã¹ããŒãã倧å¹
ã«åäžããŸããã ãŸããCopilotã¯ç§ã®ã³ãŒãã£ã³ã°ã¹ã¿ã€ã«ã«åãããŠåŠç¿ããŠãããããææ¡ãããã³ãŒãã¯ç§ã®å¥œã¿ãç¿æ
£ã«åã£ããã®ãå€ããªããŸãããããã«ãããã³ãŒãã®æžãæ¹ã«äžè²«æ§ãçãŸããä¿å®æ§ãåäžããŸããã ããã«ãCopilotã¯ç§ã®ç¥èã®äžè¶³ãè£ã£ãŠãããé Œãããååšã§ããæ°ããã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ã«ææŠããéãCopilotãé©åãªã³ãŒãã®ææ¡ãããŠããããããåŠç¿ã®å©ãã«ãªããŸãããããã«ãããæ°ããæè¡ãžã®åãçµã¿ãã¹ã ãŒãºã«ãªããŸããã ãã®äžã§ãæããããããªæŽ»çšæ¹æ³ã¯ããã¹ãã³ãŒãã®å®è£
ã§ããå¹ççã«å®è£
ã§ããã ãã§ãªããæ³å®ããŠããªããã¹ããã¿ãŒã³ãªã©ãææ¡ããŠãããå¯èœæ§ããããšããç¹ãã¡ãªããã ãšæããŸãã äžã€æ°ãã€ããã¹ããªã®ã¯Github Copilotãã³ãŒããäœæããŠãããã®ã§ã¯ãªããè£å©ããŠããããšããæèã§å©çšããå¿
èŠããããšããéšåã§ãããããŸã§AIã«ããææ¡ã§ããã確å®ã«æå³ããŠãããããªå®è£
ãææ¡ããŠãããããã§ã¯ãªããããæçµçãªå®è£
ã¯èªèº«ã®ç®ã§ç¢ºèªããªããå©çšããŠãããšããããšãæèããŠããªããšèª€ã£ãå®è£
ããã®ãŸãŸé©çšããŠããŸããããŸããã ããããæèããŠããã°ãšãŠã䟿å©ã«å©çšããããšãã§ãããšæããŸãã çµè« Github Copilotã¯ãéçºå¹çãåçã«åäžãããããšãã§ããçŽ æŽãããããŒã«ã§ããã³ãŒãã£ã³ã°ã®è£å®ãææ¡ã«ãããæéã®ç¯çŽãäžè²«æ§ã®ç¢ºä¿ãç¥èã®è£å®ãšãã£ãæ©æµãåããããšãã§ããŸããç§ã®ããã«éçºããã»ã¹ãå¹çåãããæ¹ã«ã¯ããã²Github Copilotã詊ããŠã¿ãŠããã ãããã§ãã The post GitHub Copilotã䜿ã£ãŠã¿ããéçºå¹çãåçã«åäžãã話 first appeared on Sqripts .
ãã®é£èŒã¯ãç»å ŽããŠ20幎ãéããæçæãè¿ãã€ã€ãããã¢ãžã£ã€ã«éçºãã解説ããŸããã¢ãžã£ã€ã«éçºã«ã€ããŠã¯ãäžã®äžã«ããããã®æžç±ãæ
å ±ãããµããŠããŸãããã¢ãžã£ã€ã«ã³ãŒããšããŠ10幎以äžã®çŸå Žçµéšãããšã«ããããããŠåŠã³çŽãããæ
å ±ãäžå¿ã«ãŸãšããŠãããŸãã 第11åç®ã®ããŒãã¯ãããšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã°ïŒXPïŒãã§ããååã¯ååãšåºç€ãã©ã¯ãã£ã¹ã解説ãããã®ã§ãä»åã¯å¿çšãã©ã¯ãã£ã¹ã解説ããŸãã ãã®å
容ã¯Udemyã§å
¬éããŠãããªã³ã©ã€ã³ã³ãŒã¹ã çŸåœ¹ã¢ãžã£ã€ã«ã³ãŒããæããïŒåæ¥ã§çè§£ã§ããã¢ãžã£ã€ã«éçºãšã¹ã¯ã©ã å
¥éç·š ãã®å
容ãå
ã«ããŠããŸãã XPã®å¿çšãã©ã¯ãã£ã¹ïŒå®é¡§å®¢ã®åå ã²ãšã€ãã¯ãå®é¡§å®¢ã®åå ãã§ãã第1çã§ã¯ããªã³ãµã€ããŠãŒã¶ãŒãã§ããã ãŠãŒã¶ãŒ VS ããŒã ãšããæ§å³ããªããããã«ã¯ããŠãŒã¶ãŒãå·»ã蟌ãã éçºãå¿
èŠã§ããå¯èœã§ããã°ããŠãŒã¶ã«ãããŒã ã®äžå¡ãšããŠå
¥ã£ãŠãããã®ãæã§ãã 顧客ã®åå æ¹æ³ãããã€ãéžæè¢ãããã¯ãã§ããããšãã°ã宿çã«éçºçŸå Žã«æ¥ãŠããã ãããšãã§ããŸããã客å
ã«ã¹ããŒã¹ãäœã£ãŠããã£ãŠããã§äœæ¥ããããšãã§ããŸãã ã©ã¡ãã«ããã顧客ãšéçºãåãé¢ããŠã¯ãªããŸããã XPã®å¿çšãã©ã¯ãã£ã¹ïŒ ã€ã³ã¯ãªã¡ã³ã¿ã«é
眮 2ã€ç®ããã€ã³ã¯ãªã¡ã³ã¿ã«é
眮ãã§ãã é
眮ãšããã®ã¯ææç©ãç°å¢ã«é
眮ããããããã€ããæããŠããŸããåœæã¯ãããã€ãšããèšèãäžè¬çã§ã¯ãªãã£ãã®ã ãšæããŸããXPã§ã¯ã€ãã¬ãŒã·ã§ã³ããšã«ææç©ãã€ã³ã¯ãªã¡ã³ã¿ã«ã«ãããã€ãç¹°ãè¿ããŸãã æ£ç¢ºã«èš³ããªãç¶ç¶çãããã€ã¡ã³ãã§ãããä»é¢šãªèšãæ¹ã«ãããªãç¶ç¶çããªããªãŒïŒCDïŒ Continuous DeliveryïŒãè¿ãèšèã§ããããã€ãŸãããããã€ããªãªãŒã¹ã®èªååã§ãã XPã®å¿çšãã©ã¯ãã£ã¹ïŒ ããŒã ã®ç¶ç¶ 3ã€ç®ã¯ãããŒã ã®ç¶ç¶ãã§ãã XPãç¶ããããŒã ã¯ãæç床ãé«ãŸã£ãŠãããŸããããããªãªãŒã¹ããšã«è§£æ£ããã®ã¯ãã£ãããªã話ã§ããå¯èœãªéãããŒã ãåºå®ããç¶ç¶çã«ææ¬²çã«éçºã«åãçµãã§ããããäœå¶ãäœããŸãã åŸæ¥åã ãšãããžã§ã¯ããçµãããšããŒã ãè§£æ£ããŸãããã¢ãžã£ã€ã«éçºã¯ããŒã ãäžå¿ã«ã¡ã³ããŒãæ§æãããã¡ã³ããŒãã§ããã ãåºå®ããªããéçºãé²ããŠãããããŒã ã®æç床ãé«ããŠãããŸãã XPã®å¿çšãã©ã¯ãã£ã¹ïŒ ããŒã ã®çž®å° 4ã€ç®ã¯ãããŒã ã®çž®å°ãã§ãã ããã¯ããŒã ãã¹ã±ãŒã«ããããããšããšã¯ããšã¿çç£æ¹åŒã®ãã©ã¯ãã£ã¹ã ããã§ããããšãã°ããŸãã¢ãžã£ã€ã«ããŒã ãã²ãšã€ã€ãããçç£æ§ãå¹çæ§ãé«ããŠãããŸãããããŠããã®ãªãã®1åãããŒã ããã¯ãããæ°ããã¢ãžã£ã€ã«ããŒã ã®ç«ã¡äžãã§æŽ»èºããŠãããã»ã»ã»ããã®ãããªããããã§ãããŒã ãã¹ã±ãŒã«ãããŠãããŸãã ãã®æ¹æ³ã¯ãä»ã§ã¯ã¢ãžã£ã€ã«éçºã暪å±éãããšãã®çéã®æ¹æ³ã§ããããŸãã XPã®å¿çšãã©ã¯ãã£ã¹ïŒ æ ¹æ¬åå ã®åæ 5ã€ç®ã¯ãæ ¹æ¬åå ã®åæãã§ãã ããšã¿ããã£ãŠããããšã§æåãªããªããªã5åããšããæ¹æ³ããããŸãããªãã5åç¹°ãè¿ãããšã§ãæ ¹æ¬åå ã«èŸ¿ãçãããšããææ³ã§ãããªããªã5åãšåãããã«ãåé¡ã®åå ãæ·±å ãããŠãããŸããããããªããã°ãäžèŸºã ãã®è§£æ±ºæ¹æ³ã«ãªã£ãŠããŸããåé¡ããŸãåçºããŠããŸãããã§ãã ãã ãæ ¹æ¬åå ã«ãããšããããã®ãé£ããå ŽåããããŸããããããå Žåã¯ããŸãã¯çæçãªå¯ŸçãèããŠé²ãããããšåæã«é·æçãªå¯Ÿçãã»ããã§èããã®ãæã§ãã XPã®å¿çšãã©ã¯ãã£ã¹ïŒ ã³ãŒãã®å
±æ 6ã€ç®ã¯ãã³ãŒãã®å
±æãã§ãã第1çã ãšå
±åææãšãããã©ã¯ãã£ã¹ã§ããã çŸåšã¯ãGitHubãGitLabãªã©ã®ã³ãŒã管çãµãŒãã¹ãåºã䜿ãããŠããã®ã§ãã³ãŒãã®å
±æã¯ããããŸãã®ãã©ã¯ãã£ã¹ãšèšããŸããããããXPã®æžç±ãã§ãŠããåœæã¯ãå
±æãã¡ã€ã«ãµãŒãã«ã³ãŒãã眮ããªã©ã®éçšã§ã«ããŒããŠããŸããïŒæ¬åœã«èŸãã£ãïŒã ã³ãŒãã®æ±ãæ¹ã«ã€ããŠã¯ããã©ã³ãæŠç¥ãããã«ãªã¯ãšã¹ããã³ããããããã®ãããããã«PushããŠããã»ã»ã»ãªã©ãšãã£ããã©ã¯ãã£ã¹ãžãšåºãã£ãŠããŠããŸãã XPã®å¿çšãã©ã¯ãã£ã¹ïŒ ã³ãŒããšãã¹ã 7ã€ç®ã¯ãã³ãŒããšãã¹ããã§ããåœããåã®ããšã§ãããã³ãŒããšãã¹ãã¯ãã£ãšãéèŠãªææç©ã§ãã XPã§ã¯ããããã䜿ã£ãŠå¥ã«å¿
èŠãªããã¥ã¡ã³ããäœãããšãæšå¥šããŠããŸããJavaã®äžçã ãšããã«ãããŒã«ã§Javadocãªã©ããŸããŸãªããã¥ã¡ã³ããã¢ãŒãã£ãã¡ã¯ããšããŠèªåçæãããããŸãã XPã®å¿çšãã©ã¯ãã£ã¹ïŒ åäžã®ã³ãŒãããŒã¹ 8ã€ç®ã¯ãåäžã®ã³ãŒãããŒã¹ãã§ãã çŸåšã ãšãGit flowã®ããã«ãããŸããŸãªãã©ã³ãæŠç¥ã䜿ãããŠããŸãããXPã§ã¯ãã³ãŒãããŒã¹ãåäžã«ããã®ãæšå¥šããŠããŸãã Googleã§ãåäžã³ãŒãããŒã¹ã®ã»ããå¹çããããšãããŠããŸãã åäžã³ãŒãããŒã¹ã ãšç®¡çãã·ã³ãã«ã«ãªããããŒãžã³ã¹ããäžãããŸãããã ããåäžã®ã³ãŒãããŒã¹ã¯è€æ°ããŒã ã§ã®éçºã®ããã«ãéçºè
ã®äººæ°ãå¢ãããšéçšã倧å€ã«ããªã£ãŠããŸããããããã®çŸå Žã«ããããŠéžæãããšè¯ãã§ãããã XPã®å¿çšãã©ã¯ãã£ã¹ïŒ æ¥æ¬¡é
眮 9ã€ç®ã¯ãæ¥æ¬¡é
眮ãã§ãã第1çã§ã¯çæãªãªãŒã¹ãšåŒã°ããŠãããã®ã§ããæè¿ã ãšãããã€åæ°ãææšãšããŠèšæž¬ããããŒã ãå¢ããŠããŸãã æ¥æ¬¡é
眮ã¯ãããããæ¥æ¬¡ãããã€ã§ãããã ããããå®çŸããã«ã¯ãã³ãŒããšãã¹ããããã€ã³ã¯ãªã¡ã³ã¿ã«é
眮ããšãã£ããã©ã¯ãã£ã¹ãå¿
èŠã«ãªããŸãã ãã®ããã«ãXPã®ãã©ã¯ãã£ã¹ã¯ãããããããã飿ºããŠããã®ã§ãã©ããäžã€ãå°å
¥ããŠã¿ãŠãé¢ä¿ãããã©ã¯ãã£ã¹ã®å°å
¥ãé²ããŠãããšããã§ãããã XPã®å¿çšãã©ã¯ãã£ã¹ïŒ åè°ã«ããã¹ã³ãŒãå¥çŽ 10çªç®ã¯ãåè°ã«ããã¹ã³ãŒãå¥çŽãã§ãã éçºãè«ãè² ãå Žåãå¥çŽãéèŠã«ãªããŸãããã ãåŸæ¥åã®ããã«é·ããããžã§ã¯ããšãªããšãã¹ã³ãŒãã倧ãããªããå¥çŽãé·ããªããæè»æ§ãäœããªã£ãŠããŸããŸãã ãã£ãŠãå¥çŽãçãåºåããã¹ã³ãŒãã調æŽããŠãããŸããã¹ã³ãŒãã«ã¯ãã¹ã±ãžã¥ãŒã«ãè²»çšãå質ãå«ãŸããã®ã§ããããããè°è«ããŠã¹ã³ãŒããæ±ºå®ããŠãããŸãã XPã®å¿çšãã©ã¯ãã£ã¹ïŒ å©çšåæã 11çªç®ã¯ãå©çšåæããã§ãã ãŠãŒã¶ã¯å©çšããåã ãã·ã¹ãã å©çšæãæã圢ã®èª²éæ¹æ³ã§ããåŸæ¥åã ãšèŠç©ãããããŒã¹ã«çŽååŸäžæ¬æ¯æããå€ãã§ããããããããXPã§ã¯ãéãããããã£ãŒãããã¯ã®äžã€ãšããŠèããŠããããã§ã䜿ã£ãåãããã ãã»ã»ã»ãšãã圢ãæå±ããŠããŸãã ãã®æ¹æ³ã¯ãçŸåšã ãšSaaSåã®ãµãŒãã¹ã«äŒŒãŠããŸããSaaSåã®ãµãŒãã¹ã¯ããµãã¹ã¯åã®èª²éãå€ãã®ã§ãæ¯æãæ¯å¹Žã®åäœã§ãç¹å®ã®é¡ãæ¯æããŸããããèãããšã20幎è¿ãåã«ã§ãŠããXPããSaaSã®ãµãã¹ã¯åæ¯æãããã©ã¯ãã£ã¹ãšããŠãããªããŠãXPã®å
èŠæ§ã«ã³ã£ããããŠããŸããŸãã 以äžãå¿çšãã©ã¯ãã£ã¹ã§ãã ç¹ã«XPã®ãã©ã¯ãã£ã¹ã¯ãçŸåšã§ãå©çšã§ããç©ãå€ããããšã§èª¬æããã¹ã¯ã©ã ãšçµã¿åãããããšã§ãæå¹æ§ãé«ããããŸããããããããã®ã§ããŸãã¯æŠèŠã ãã§ãèŠããŠããã ããã¢ãžã£ã€ã«éçºãå®è·µãããšãã«ãæãåºããªããå°å
¥ããŠããã ããã°ãšæããŸãã é£èŒäžèЧ 第1åïŒã¢ãžã£ã€ã«éçºã®éå»ãçŸåšãæªæ¥ãç¥ããïŒ ç¬¬2åïŒå£°ã«åºããŠèªã¿ããã¢ãžã£ã€ã«ãããã§ã¹ã 第3åïŒåŸæ¥åéçºãšã¢ãžã£ã€ã«éçºã®éãããã®ïŒ 第4åïŒåŸæ¥åéçºãšã¢ãžã£ã€ã«éçºã®éãããã®ïŒ 第5åïŒã¢ãžã£ã€ã«éçºã®ãããã誀解ãè§£ããŠãããïŒ ç¬¬6åïŒäžçäžã§å€§äººæ°ã®ç§å¯ã«è¿«ãïŒã¹ã¯ã©ã ã䜿ã£ããœãããŠã§ã¢éçº ç¬¬7åïŒãããããã§ãããã«ããã¹ã¯ã©ã ããŒã ã®è²¬ä»» 第8åïŒã¹ã¯ã©ã ã€ãã³ãã®å®è·µæ¹æ³ 第9åïŒãšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã°ãšãã®äŸ¡å€ 第10åïŒãšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã°ã®ååãšåºç€ãã©ã¯ãã£ã¹ 第11åïŒãšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã°ã®å¿çšãã©ã¯ãã£ã¹ The post 第11å ãšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã°ã®å¿çšãã©ã¯ãã£ã¹ first appeared on Sqripts .
ããã«ã¡ã¯ãããŠã³ã§ãã ç§ãæ®æ®µå¯Ÿå¿ããŠãããã¹ãæ¥åã®äžã«Webãµã€ãã®ãã¹ãããããŸãããã¹ãã¯PC以å€ã«ã¹ããŒããã©ã³ïŒä»¥äžã¹ããïŒã䜿ã£ãŠè¡ãããšããããŸãã ä»åã¯ãã¹ããã§Webãµã€ãã®ãã¹ããè¡ãå Žåã«ãPCã®ãã©ãŠã¶ã®æšæºæ©èœã§ããããããããŒããŒã«ïŒéçºè
ããŒã«ïŒã䜿ã£ãŠãã¹ãããæ¹æ³ã玹ä»ããããšæããŸãã ã¹ããã®ã¿ã§ãWebãµã€ãã®ãã¹ãã宿œããããšã¯ã§ããã®ã§ãããããããããŒããŒã«ã䜿çšããŠãã¹ãããã¡ãªããããããŸãã ã¯ããã« ã¹ããã䜿ã£ãŠWebãµã€ãã®ãã¹ããè¡ãå Žåã¯ãäž»ã«è¡šç€ºããµã€ãå
ã®æ©èœïŒãã¿ã³ãªã©ïŒã®ãã¹ããè¡ãããšã«ãªããŸãããã®ä»ã«ãäŸãã°ãWebãµã€ãã®èŠçŽ ã«èšè¿°ãããŠããã¿ã°ããã©ãŠã¶äžã§åäœããŠéä¿¡ãè¡ãããŠãããïŒïŒãã®åäœã®ããšããã¿ã°ãçºç«ããããšèšããŸãïŒãã¹ããã®ãã©ãŠã¶ã§ããããããŒããŒã«ãéããŠç¢ºèªããããšãå¯èœãªã®ã§ããã確èªããã«ã¯ã¹ãã1å°ããšã«ã¢ããªã®ã€ã³ã¹ããŒã«ãå¿
èŠã§ãã¹ããã¯ããããç»é¢ãµã€ãºãå°ããããããããããŒããŒã«ãèŠèŸãæäœãã«ããã§ãã PCã§èšå®ãè¡ã£ãŠããã°ãã¹ãã1å°ããšã«ã¢ããªãã€ã³ã¹ããŒã«ããããšãªããã¹ããã®ãã©ãŠã¶ã®ããããããŒããŒã«ãPCäžã§ç¢ºèªã»æäœã§ããããã«ãªããŸãã ãªããPCã§ããããããŒããŒã«ã®ãšãã¥ã¬ãŒãæ©èœïŒUserAgentåœè£
ïŒã䜿ãã°ãPCã§ãã¹ããã䜿çšããŠãµã€ããé²èЧããŠããããšããç¶æ
ãç䌌çã«ã€ããåºããŠãã¹ããããããšãã§ããŸãããããããå
šéšPCã§ãšãã¥ã¬ãŒãæ©èœã䜿ã£ãŠãã¹ãããã°åé¡ãªãã®ã§ã¯ïŒããšãªããŸããããã®å Žåãã¹ããã§ãµã€ããé²èЧããæã ã衚瀺ã厩ãããçã®ãã¹ãã端æ«ã®ã¿ã§çºçããäžå
·åãçºèŠã§ããªãå¯èœæ§ããããŸãã ç§ãéå»ã«ééããäºäŸããããŸããïŒåŸã«ç޹ä»ããŸãïŒ ã¹ããã§èŠãŠãããµã€ãã«å¯ŸããŠPCã®ããããããŒããŒã«ã䜿çšããããšã§ãPCã§Webãµã€ãã®ãã¹ããè¡ã£ãŠããæãšåãæ
å ±ãã¹ããã§ç¢ºèªã§ããããšãããã¿ã°ã®çºç«ããªã¢ã«ã¿ã€ã ã§ç¢ºèªã§ããããHTML/CSSã®ç¢ºèªãJavaScriptãšã©ãŒã®æç¡çã䜵ããŠç¢ºèªã§ããæ§ã«ãªããŸãã ãªããããããããŒããŒã«ã䜿çšããã¿ã°ã®çºç«ãã¹ãã«ã€ããŠã¯ã以åã«äžèšã®èšäºãæçš¿ããŠããŸãã®ã§ãã¡ããåèã«ããŠããã ããã°ãšæããŸãã â GoogleAnalyticså©çšæã«çµã¿èŸŒãã¿ã°ã®ãã¹ãã«ã€ã㊠ã¹ããã§PCã®ããããããŒããŒã«ã䜿çšããæé ä»å玹ä»ããæ¹æ³ã¯ã䜿çšããã¹ãã端æ«ã«ãã£ãŠUIã®éãã¯ãããŸãããã©ã®ã¹ãã端æ«ã§ãå®è¡ã§ããå
容ãšãªã£ãŠããŸãã ãŸããAndroid & WindowsPCããæ¬¡ã«ãiPhone & MacPCãã䜿ãæé ã説æããŸãã Android & WindowsPCïŒChromeã䜿çšïŒ 以äžã®ç«¯æ«ã䜿çšããå Žåã§èª¬æããŸãã Android端æ«ïŒWindows10 Pro 1. PCã«Android Studioãã€ã³ã¹ããŒã«ãã 以äžã®URLã«ã¢ã¯ã»ã¹ããŠãAndroid StudioãããŠã³ããŒãâã€ã³ã¹ããŒã«ããŸãã Android Developers ã€ã³ã¹ããŒã«ã¯ã衚瀺ãããç»é¢ã«æ²¿ã£ãŠé²è¡ããã°å€§äžå€«ã§ããè¿·ãèŠçŽ ã¯ç¹ã«ç¡ããšæããŸãããå
¬åŒã®ãã«ãããããŸãã®ã§å¿
èŠã«å¿ããŠãåç
§ãã ããã Android Studio ãã€ã³ã¹ããŒã«ãã 2. Android SDKã®èšå®ãè¡ã ã¹ããã§PCã®ããããããŒããŒã«ã䜿çšããå Žåã«å¿
èŠãšãªããã©ã€ããé©çšãããããã«ããŸã 3. ãToolsãã¡ãã¥ãŒïŒãSDK Managerããéžæ 4. ãSDK Platformsãã¿ãã§ã䜿çšããAndroidã®OSã«ãã§ãã¯ãå
¥ãã 5. ãSDK Toolsãã¿ãã§ããAndroid SDK Platform-ToolsãããInstalledãã«ãªã£ãŠããããšã確èªïŒãNot Installedãã«ãªã£ãŠããããã§ãã¯ãå
¥ããïŒ 6. ãOKããŸãã¯ãApplyããæŒäžããŠã€ã³ã¹ããŒã«ãå®è¡ããïŒã€ã³ã¹ããŒã«ãäžèŠãªå Žåã¯ãCancelããã¿ã³ã§ãŠã£ã³ããŠãéããïŒ ããã§ãã¹ããã§PCã®ããããããŒããŒã«ã䜿çšããå Žåã«å¿
èŠãšãªããã©ã€ããé©çšãããŸãã 7. ADBã³ãã³ããæå¹ã«ãã ADBãšã¯ãAndroid Debugging Bridge ã®ããšã§ãã³ãã³ããæå¹ã«ãããšAndroid Studioã䜿ã£ãŠPCã§ã¹ããã®éçºãããããã³ãã³ãããã³ããããã¹ãããæäœããããšãã¹ããã®ã¿ã§ã¯è¡ããªãæäœãPCããè¡ãããšãå¯èœãšãªããŸãã ä»åã¯ã¹ããã§ããããããŒããŒã«ã䜿çšããéãã¹ããã®USBãããã°ãæ£åžžã«åäœããããã«èšå®ãè¡ããŸãã èšå®ããéããããããæé ã5ãã®ç»åäžéšãAndroid SDK Location:ãã«è¡šç€ºãããŠãããã©ã«ããã¹ãæ§ããŠãããšã¹ã ãŒãºã«èšå®ã§ããŸãã 8. WindowsPCã®ã¿ã¹ã¯ããŒã«ãããã¹ã¿ãŒãããã¿ã³ãå³ã¯ãªãã¯ïŒãã·ã¹ãã ããéžæ 9. ãã·ã¹ãã ã®è©³çްèšå®ããéžæ 10. ã詳现èšå®ãã¿ãïŒãç°å¢å€æ°ããéžæ 11. ã·ã¹ãã ç°å¢å€æ° ã®ãPathããéžæïŒãç·šéããã¿ã³ãéžæ 12. ãæ°èŠããã¿ã³ãéžæïŒAndroid Studioãã€ã³ã¹ããŒã«ããæã«äžç·ã«ã€ã³ã¹ããŒã«ãããããã©ã«ããplatform-toolsãã®ãã©ã«ããã¹ãå
¥å 13. éããŠããåãŠã£ã³ããŠããOKããã¿ã³ãæŒäžããŠéãã ãæ³šæãæé 13.ã§ããã£ã³ã»ã«ããã¿ã³ãæŒäžãããšããããŸã§ã®èšå®ãåæ ãããªããããå¿
ããOKããæŒäžããŠåãŠã£ã³ããŠãéããŠãã ããã 14. PCãåèµ·åãã 15. ADBã³ãã³ããæå¹ã«ãªã£ãŠããã確èªãã ãããŸã§ã®èšå®ãåæ ãããŠããã確èªãè¡ããWindowsPCã®ãã³ãã³ãããã³ããããèµ·åãã ïŒãã¹ã¿ãŒããã¢ã€ã³ã³ãã¯ãªãã¯ïŒã cmd ãã§æ€çŽ¢ïŒã³ãã³ãããã³ãããéžæããŸãã¯ãã¿ã¹ã¯ããŒã®æ€çŽ¢ã¢ã€ã³ã³ã»æ€çŽ¢ããã¯ã¹ããã cmd ãã§æ€çŽ¢ïŒã³ãã³ãããã³ãããéžæïŒ 16. ã adb ããšå
¥åããŠEnterããŒãæŒäžãã 17.ç»åã®æ§ã«ã³ãã³ãã®åŒæ°ïŒå
éšãããã°[internal debugging:]ãUSBã®æ¥ç¶[usb:] ãªã©ã®æ
å ±ïŒãäžèЧã«ãªã£ãŠåºãŠããã°ãADBã³ãã³ããæå¹ã«ãªã£ãŠãã â»ADBã³ãã³ããæå¹ã«ãªã£ãŠããªãå Žåãäžèšãšã©ãŒã¡ãã»ãŒãžã衚瀺ãããŸãããããŸã§ã®èšå®ãå
¥åããæååã«èª€ããç¡ãã確èªããŠã¿ãŠãã ããã 18. Androidã®ãéçºè
åããªãã·ã§ã³ãã衚瀺ãã Androidã®ãèšå®ãïŒãããã€ã¹æ
å ±ãïŒããã«ãçªå·ãã®éšåãé£ç¶ã§7åã¿ãããã â»Androidã«ãã£ãŠããã«ãçªå·ãã®è¡šç€ºç®æãç°ãªãå ŽåããããŸã 19. ãéçºè
åããªãã·ã§ã³ããæå¹ã«ãã ãèšå®ãïŒãã·ã¹ãã ãïŒãéçºè
åããªãã·ã§ã³ããéžæããŠãéçºè
åããªãã·ã§ã³ã®äœ¿çšãã®ãã°ã«ãã¿ã³ãæå¹ã«ãã 20. ãUSBãããã°ããæå¹ã«ãã ãUSBãããã°ãã®ãã°ã«ãã¿ã³ãæå¹ã«ããŠè¡šç€ºããããŠã£ã³ããŠã§ãOKããéžæãã 21. AndroidãšWinPCãæ¥ç¶ãã Android端æ«ã®USB端å圢ç¶ïŒType CïŒã«åã£ãã±ãŒãã«ã§AndroidãšPCãæ¥ç¶ããŠãAndroidã®ç»é¢ã«è¡šç€ºããããŠã£ã³ããŠã§ãèš±å¯ããéžæãã 22. Androidã®Chromeã§ãã¹ã察象ããŒãžãéã 23. WinPCã®Chromeãéããã¢ãã¬ã¹ããŒã«ã chrome://inspect/#devices ããšå
¥åããŠã¢ã¯ã»ã¹ãã 24. æ¥ç¶ããŠããAndroidã®ç«¯æ«åãšãã©ãŠã¶ããã¹ã察象ããŒãžã®URLãWinPCã®Chromeã«è¡šç€ºãããã®ã§ãURLã®äžã«ããã inspect ããéžæãã 25. ããããããŒããŒã«ãéã WinPCã®Chromeã®å·ŠåŽã«Android端æ«ã®ç»é¢ãå³åŽã«ããããããŒããŒã«ã衚瀺ããã 26. ããããããŒããŒã«å
ã®éä¿¡æ
å ±ãç¢ºèª ã¹ããã§ã¢ã¯ã»ã¹ããWebãµã€ããæäœããŠãããããããŒããŒã«ã§Webãµã€ãã®éä¿¡æ
å ±ã確èªãããç»åã¯ãNetworkãã¿ãã«æ
å ±ã衚瀺ãããŠããç¶æ
iPhone & MacPCïŒSafariã䜿çšïŒ 以äžã®ç«¯æ«ã䜿çšããå Žåã§èª¬æããŸãã iPhone端æ«ïŒiMac 1. iPhoneã§Webã€ã³ã¹ãã¯ã¿ãæå¹ã«ãã MacPCã§iPhoneã®ããããããŒããŒã«ïŒWebã€ã³ã¹ãã¯ã¿ïŒã衚瀺ãããã«ã¯ãiPhoneã®èšå®ãè¡ãå¿
èŠããããŸãã iPhoneã®ãèšå®ãïŒãSafariãïŒã詳现ãïŒãWebã€ã³ã¹ãã¯ã¿ãã®ãã°ã«ãã¿ã³ãæå¹ã«ãã 2. MacPCã®Safariã§éçºã¡ãã¥ãŒã衚瀺ãã MacPCã®Safariã¯ãããã©ã«ãã®èšå®ã§ã¯iPhoneã®Webã€ã³ã¹ãã¯ã¿ãéãããã®ã¡ãã¥ãŒã衚瀺ãããŠããªããããèšå®ãè¡ãå¿
èŠããããŸãã Safariãèµ·åïŒãSafariãã¡ãã¥ãŒïŒãç°å¢èšå®ãïŒã詳现ãã®ãã¡ãã¥ãŒããŒã«éçºã¡ãã¥ãŒã衚瀺ãã«ãã§ãã¯ãå
¥ãã 3. iPhoneãšMacPCãã©ã€ããã³ã°ã±ãŒãã«ã§æ¥ç¶ãã 4. iPhoneã®Safariã§ãã¹ã察象ããŒãžãéã 5. MacPCã§ãæ¥ç¶ããiPhoneãéžæãã Safariã®ãéçºãã¡ãã¥ãŒïŒæ¥ç¶ããiPhoneïŒãã¹ã察象ããŒãžã®URLãéžæãã 6. Webã€ã³ã¹ãã¯ã¿ãéã 7. Webã€ã³ã¹ãã¯ã¿å
ã®éä¿¡æ
å ±ãç¢ºèª iPhoneã§ã¢ã¯ã»ã¹ããWebãµã€ããæäœããŠãWebã€ã³ã¹ãã¯ã¿ã§Webãµã€ãã®éä¿¡æ
å ±ã確èªãããç»åã¯ããããã¯ãŒã¯ãã¿ãã«æ
å ±ã衚瀺ãããŠããç¶æ
éå»ã®äžå
·åäºäŸçŽ¹ä» ã¹ãããŸãã¯PCïŒUserAgentåœè£
ïŒããããã®ã¿ã®ãã¹ãã§ã¯çºèŠã§ããªãããŸãã¯çºèŠãé
ããäžå
·åã®äºäŸã«ã€ããŠãç§ãéå»ã«ééããããšããã2ã€ã®äŸã玹ä»ããŸãã äºäŸ1ãããã¹ãã®æ¹è¡äœçœ®ãäžèªç¶ PCã®ããããããŒããŒã«ã§UserAgentåœè£
ã䜿çšããŠç¢ºèªããå Žåã¯åé¡ãªãã£ãã®ã§ãããåãæç« ãã¹ããã§ç¢ºèªãããšãããããã¹ããäžèªç¶ã«æ¹è¡ãããç¶æ
ã§è¡šç€ºãããŠããŸããã ææ«ã®ãããããäžèªç¶ã«æ¹è¡ãããç¶æ
ã«ãªã£ãŠããŸãã ããã¯ãç»é¢ãµã€ãºã«ããæ¹è¡ãããäœçœ®ãå€ãã£ãŠããŸãããšããã©ã³ãã®æå®ãè¡ã£ãŠãããWebãµã€ããé²èЧãã端æ«ã®OSæ¯ã®ããã¹ãã®åŸ®åŠãªãµã€ãºéãã«ããã¹ããã§é²èЧããæãšPCã§é²èЧããæã§ãã¶ã€ã³ãç°ãªãããšãåå ã§ããã æåæ¬ ããããèš³ã§ã¯ç¡ãäžèŠãªæåã衚瀺ãããŠããèš³ã§ããããŸããããèŠãç®ãè¯ããªãããåŸã«ä¿®æ£å¯Ÿå¿ãããŸããã äºäŸ2ãã¹ããã®ã¿ã§çºç«ããã¿ã°ãçºç«ããªã ã¹ããã§èŠãŠãããµã€ãã«å¯ŸããŠããããããŒããŒã«ã䜿çšããŠã¿ã°ã®çºç«ã確èªãããšãããã¿ã°ãçºç«ããŠããŸããã§ããã ããããPCã®ããããããŒããŒã«ã§UserAgentåœè£
ã䜿çšããŠç¢ºèªããå Žåã¯ãã¿ã°ãçºç«ããŠããŸããã ã¹ããã§ã¿ã°ãçºç«ããŠããªãã®ã«PCã§ã¯çºç«ããŠããããšããããšã¯ãã¿ã°ãåããŠã¯ããããšã¯ééããªãã®ã§ã¿ã°èšå®å
容ã«åé¡ãããã®ã§ã¯ïŒâŠãšããæšæž¬ãã調æ»ãããšããããã®éãã§ã¿ã°èšå®ã«èª€ãããã£ãããšãåå ã§ããã ïŒå
·äœçã«ã¯ãã¿ã°ã®èšè¿°ã§UserAgentãæå®ããŠãããã¹ããã®UserAgentãæå®ãããŠããŸããã§ããïŒ ã¹ãããšPCãæ¥ç¶ããŠãã¹ããè¡ã£ãããšã§ãPCã§UserAgentåœè£
ã§ãã¹ããããŠããã ãã§ã¯æ€åºã§ããªãã£ããããããªãäžå
·åãæ€åºããããšãã§ããŸããã ãªããä»åã®ã±ãŒã¹ã§ã¯ãã¿ã°ã®çºç«ç¢ºèªãããã¹ã芳ç¹ãšããŠååšããããPCãšã¹ãããæ¥ç¶ããŠããããããŒããŒã«ãé©çšãããã¹ãã宿œããŸããããäŸãã°ããã¹ãã®èª€åè±åã®ç¢ºèªããã¿ã°ã®èšè¿°ã«UserAgentã®æå®ãç¡ãããšãæç¢ºãªå Žåãªã©ãUserAgentåœè£
ã䜿çšããæ¹ãå¹çãããã¹ããè¡ããã±ãŒã¹ã¯å°ãªããªããããåžžã«ã¹ãããšPCã§ããããããŒããŒã«ã䜿çšããããšãå¿
èŠãšããããšã§ã¯ãããŸããã ãã¹ãå
容ã«ãã£ãŠäœ¿ãåããããšã§ããã¹ããå¹çåã§ããã質ãåäžãããããšãåºæ¥ãŸãã ã¹ããã®ãµã€ãã§ããããããŒããŒã«ã䜿ãå Žåã®è¿œå ã¡ãªãã Androidã®å Žåãã¹ããã®Webãµã€ãã§PCã®ããããããŒããŒã«ã䜿ãå Žåã®è¿œå ã¡ãªãããšããŠãããããããŒããŒã«ã«ã¹ããã®ç»é¢ãåžžææ ãåºãããŠããŠãPCã§ã¹ããã®ç»é¢ãæäœã§ãããããããŠã¹ã»ããŒããŒãã䜿ã£ãŠã¹ãããµã€ãã®æäœãå¯èœã«ãªããŸããã¿ããæäœã ãã§ã¯ãªãã¹ã¯ã€ããæåå
¥åãå¯èœã§ãã ããã«ãããå
¥åãã©ãŒã ã®é
ç®ãå€ãããŒãžãã现ããéšåãã¿ããã»ã¹ã¯ã€ãããæã®æåã®ç¢ºèªãªã©ãã¹ããã§ã¯æéã ã£ããæäœãã«ããã£ããããéšåã確èªãããããªããŸãã ãªããiPhoneã®å Žåã¯ããããããŒããŒã«ã«ã¹ããã®ç»é¢ãæ ãåºãããªããããæ®å¿µãªããPCã§ã®ã¹ããã®ç»é¢æäœã¯äžå¯èœã§ãã ãããã« ä»åã¯PCã®ãã©ãŠã¶æ©èœã§ããããããããŒããŒã«ãã¹ããŒããã©ã³ã§äœ¿çšããæ¹æ³ã玹ä»ãããŠããã ããŸããã Webãµã€ãã®ãã¹ããè¡ãç°å¢ã®äŸãšããŠãPCã»ã¹ããã»ããããããŒããŒã«ã®ãšãã¥ã¬ãŒãæ©èœã»ã¹ããïŒããããããŒããŒã«ããããŸãããã©ã®ç°å¢ã§ãã¹ããè¡ãã¹ããã¯ãã¹ãã®å
容ã«ããç°ãªããŸãã ãã¹ããïŒããããããŒããŒã«ãã¯ä»ã®ç°å¢ãšéãã䜿çšããã«ã¯æºåã«æéãå¿
èŠã§ãã ãã äºåã«èšå®ãããŠãããšããã®åŸã¯PCãšæ¥ç¶ããã ãã§ãã€ã§ãããããããŒããŒã«ã䜿çšããããšãã§ããŸãã®ã§ãã¹ããïŒããããããŒããŒã«ã§ãã¹ããè¡ãå¿
èŠãããå Žåã¯ãã²äœ¿ã£ãŠã¿ãŠãã ããã The post Webãµã€ããã¹ãæã®äŸ¿å©æã»PCãã©ãŠã¶ã®ããããããŒããŒã«ãã¹ããã§äœ¿ãã first appeared on Sqripts .
ãã¹ããšã³ãžãã¢ã身ã«ã€ããŠããããã¹ãã«ã®äžã€ã«ãè«çã¹ãã«ãããããŸãã ãã®é£èŒã§ã¯ããããã°ã©ã ã®ã¬ãã«ããæãæç« ã®ã¬ãã«ãã«åããŠãè«çã¹ãã«ã®åºæ¬ã§ãããè«çã®èšèãã培åºè§£èª¬ããŸãã 第1åã®ä»åã¯ãè«çã¹ãã«ãéèŠã§ããçç±ã身ã«ã€ããŠããã¹ãçç±ã解説ããŸãã è«ç(ããžãã¯)ã®è©±ãããçç± âè«ççâãšã¯ ããžãã¹ã®å Žã§ãã°ãã°éèŠãšãããããšã®ã²ãšã€ã«ãâè«ççã§ããããšâããããŸãã ãè«ççã«èãã/話ãããè«ççãªæç« ããªã©ãè³ã«(ç®ã«)ããããšãå€ããšæããŸãã ããã§ããâè«ççâãšã¯ããççŸãäžæŽåãé£èºãæ¬ èœãèŠãããªãããéŠå°Ÿäžè²«ããŠããïŒçéãç«ã£ãŠããïŒãâŠâŠãšãã£ãç¹åŸŽãæããŠãããšèšããã§ãããã ãœãããŠã§ã¢ã¯è«çã®å¡ ãœãããŠã§ã¢ã¯ãã®æ®ã©ã®å·¥çš/äœæ¥ãéããŠâè«ççâã«æ§ç¯ãããŸãããšãããã以äžã®ãããªâŠâŠ AãšBã§ââãèšç®ããããã®çµæãCãªãããã®çµæãçšããŠDãèšç®ãããããã§ãªãã£ãããEãçšããŠFãèšç®ãã αã®ç¶æ³ã§ãå©çšè
ãβãšããæäœãããããç»é¢ãγã«åãæ¿ããŠÎŽãšããåäœããã åŠçãã§ããªãç¶æ³ã«ãªã£ãããåŠçãç¶è¡ããã«åæ¢ãã etc. ã©ããªå Žåã«äœãããã®ã(ããŠã¯ãããªãã®ã)ãšãã£ãâæ¡ä»¶/å Žåâã«å¿ããåŠç/åäœã¯ ççŸãæ¬ èœããªãããã« ããªããã°ãªããŸããã ãŸããã©ã®å·¥çšã®ææç©(ææžé¡)ã§ãããã®èšè¿°å
容㫠é£ãéããäžæçãªç®æããããš ãæ§ç¯ãããœãããŠã§ã¢ãé©åãªåäœãããªãã£ãããæŽèµ°ãããªãŒãºã«è³ãããšããããŸããããããæå³ã§ãè«ç(ããžãã¯)ã¯ãœãããŠã§ã¢éçºã®âçåœç·âãšã§ãèšããã§ãããã ãã¹ãã«ãšã£ãŠãè«çã¯å€§å ãã¹ããããç«å Žã«ãšã£ãŠãè«ç(ããžãã¯)ã¯éèŠã§ãã ãã¹ãå¯Ÿè±¡ã®æ¯èãããèªåã®è§£éãå ãããæ³åã§è£ã£ããããã«ããã¹ãããŒã¹ã®èšè¿°ã® çéã蟿ã£ãŠ çè§£ãã ïŒãã¹ã察象ãæäœããªããçè§£ããããšããããŸããããã®å Žåã¯ãã©ããªå Žåã«ã©ããªãã®ãããªã©ãèªåã®é ã®äžã§æŽç¶ãšçµã¿ç«ãŠãŠããããšã«ãªããŸãïŒ ãã¹ããã¹ãããšã åœãŠãã£ãœããæãã€ãã§ã¯ãªã æ ¹æ ãæã£ãŠã çéãç«ãŠãŠ èãã æ¬èšäºã§ã¯ãâè«ççâã«èããããã®ãåºæ¬çãªéå
·ãã§ããã è«ç(ããžãã¯)ã®èšè ããããã€ãèŠãŠãããŸãã 以äžã®ãããªäººã«èªãã§ãããããšãæ³å®ããŠããŸãã ãã¹ããšã³ãžãã¢ãšããŠãèªè§£åãèšèšåã匷åããããšèããŠãã人 è«çæŒç®ãªã©ã埩ç¿ããã人 ïŒãããããã¹ããšã³ãžãã¢ãç®æã人ã«ããå§ãã§ãïŒïŒ ïŒãã ãããã¹ã察象ãçè§£ããããã¹ããã¹ãããšãèãããããã®ã«ããè«çã®èšèããã²ããåãã ãã§ååãšããããã§ã¯ãããŸãããé ã®äžã§èããã ãã§ãªãã èããããšãå³ã«è¡šããªã©èŠèŠå ããŠã¿ãŠçè§£ã確ãããããã§ãã¯ãããããããšã倧åã§ãïŒ ãçéã蟿ã/çéãç«ãŠãŠèããããšã¯ ãçéã蟿ã£ãŠçè§£ããããçéãç«ãŠãŠèãããã£ãŠã©ããªæãã®ããšãªã®ïŒããšæã人ããããšæããŸãããããããªâäŸé¡âã§äœæããŠã¿ãŠãã ããã âè«çããºã«â ãã®åœã®ã©ããã«ãæ£çŽè
ãšåã€ããäœãæããããŸãã æ£çŽè
ã¯åžžã«æ£ããããšãèšããåã€ãã¯åžžã«æ£ãããªãããšãèšããŸããæã«ã¯ãã®2çš®é¡ã®äººéããããŸããã ãã®æãæ©ããŠããããäºäººã®äœäººAãšBã«åºé¢ããŸãããAã¯èšããŸããããç§ãã¡ã¯äºäººãšãåã€ãã ã ïŒãåºå
žããèšå·è«çåŠãäžè¬åãšèšå·åã(ã¹ããªã€ã³ / äžžååºçãåé¡1.3) A, Bã¯ãããããæ£çŽè
ã§ãããããåã€ãã§ããããã ïŒã±ã£ãšè§£çã«èŸ¿ãçããªããŠãæ°ã«ããããšã¯ãããŸããããœãããŠã§ã¢æ¥ç人ãªã誰ã§ãããããâè«çããºã«âãããããè§£ããããšããããã§ã¯ãããŸããïŒçè
ãè«çããºã«ãèŠæã§ã(ÂŽã»Ïã»ïœ)ïŒïŒ â»ãã®è«çããºã«ã®èãæ¹ãææ«ã«æ²èŒããŠããŸãã ã©ãèããïŒâ ããéåå°ã®ããã¢ãã©ã¯ã·ã§ã³ã«ã次ã®ãããªæ³šææžããæ²ããããŠããŸããã æ¬ã¢ãã©ã¯ã·ã§ã³ã¯ä»¥äžã®æ¹ã®ã¿å©çšã§ããŸãã ã»èº«é·130ã»ã³ã以äž190ã»ã³ãä»¥äž ã»äœé90ããã°ã©ã ä»¥äž ã»å¹Žéœ¢æº15æ³ä»¥äž ãã®ã¢ãã©ã¯ã·ã§ã³ãå©çšã§ãã人/ã§ããªã人ã¯ã©ããªäººã§ããããã ã©ãèããïŒâ¡ ãšããã·ã¹ãã ã®ãŠãŒã¶ãŒã¢ã«ãŠã³ãåã®ä»æ§ã§ããç»é²ã§ãããŠãŒã¶ãŒã¢ã«ãŠã³ãåã«ã¯ä»¥äžã®æ¡ä»¶ããããŸãã (a) ã¢ã«ãŠã³ãåã«äœ¿ããæåã¯ä»¥äžã®ããããã«éãããš åè§è±å€§æå(AïœZ), åè§è±å°æå(aïœz), åè§æ°å(0ïœ9) (b) ã¢ã«ãŠã³ãåã¯16æå以äžã§ããããš (c) æ¢ã«ç»é²æžã¿ã®ã¢ã«ãŠã³ãåã¯ç»é²ã§ããªã æ°èŠãŠãŒã¶ãŒãšããŠç»é²ã§ããªãã¢ã«ãŠã³ãåæååã¯ã©ã®ãããªãã®ã§ããããã è«ççã«èããããšã¯ãâã¹ãã«â 誰ã§ã身ã«ã€ããããšãã§ããã¹ãã« âè«ççâã«èããããšã¯ãæã£ãŠçãŸããäœãç¹æ®ãªæèœãã»ã³ã¹ã«ãããã®ã§ã¯ãªãããè«çã®èšèãã®æå³ãåãã®çè§£ã»ç¿åŸãéããŠèº«ã«ã€ããã¹ãã«ã§ãã èšèãšèšèãæãšæã®ã€ãªãããææ¡ããæ¡ä»¶ãå Žåãšãã®çµæãšã®ã€ãªãããäžå¯§ã«çµã³ã€ããŠãæç« ã®çéãææ¡ãã äž»åŒµãšæ ¹æ ã®ã€ãªãããæç¢ºã«ãã æèœ/ã»ã³ã¹ãšããããšã§ããã°ã 誰ããç©å¿ã€ããæããè«çã®æèœ/ã»ã³ã¹ãè²ãã§ãã ãšèšããŸãã誰ãããæ¥ã
ã®ç掻ãå匷ãä»äºãªã©ãéããŠïŒç¡æèçã«ã§ãïŒãè«ççã«èããããšããããšãããããã¯åŠãã§ããããã§ãïŒ100%培é 培尟éè«ççã«èããçãã人éã¯ããã¶ãäžäººãããŸããïŒã æèãåããã°ããã®å(æ©ã)äžéãã ããšããããã§ãã 誰ãã身ã«ã€ããŠããããã¹ãã« ãœãããŠã§ã¢ããœãããŠã§ã¢ãã¹ããé¢ããŠã¿ãŠããè«çã®ã¹ãã«ã¯èº«ã«ã€ããŠããããã¹ãã«ã§ãã âè«ççâã«èããããšã¯ãæç« ãèªãã ã話ãèãããããäžã§ã倧åã§ããããå ±åã»é£çµ¡ã»çžè«ããã¯ãããšããã³ãã¥ãã±ãŒã·ã§ã³å
šè¬ã®è³ªãå·Šå³ããã®ã¯ã ã話ãäžè²«ããŠããããæŽåãåããŠãããããèšãã¹ãããšãèšãããããšãé©åã«è¡šããŠãããã ãšããããšã ããã§ãã âè£ã¥ãâãç¥ã£ãŠããã ãããŸã§èªãã§ã次ã®ããã«æãã人ãçžåœæ°ãããšæããŸãã ãäœãåœããåã®ããšãèšã£ãŠãããã ïŒã ãç¹ã«å匷ãããæ¶ãã¯ãªããã©ãå
šç¶å°ã£ãŠãªããïŒïŒã ããæãã人ã¯ãèªä¿¡ãæã£ãŠãããšæããŸããæèããã«è«çã®ã¹ãã«ã身ã«ã€ããŠããã®ã¯çŽ æŽãããããšã§ãã ãããã人ãããåœããåã®ããã«ã§ããŠããããšãã«ãåºç€ãè£ã¥ãããããšç¥ã£ãŠããã®ã¯æªãããšã§ã¯ãããŸãããåºç€ãè£ã¥ãã¯ããªãããèããã®ããã説æããå©ãã«ãªã£ãŠãããããã§ãã ããã³ ããããäœåãã«åããŠãè«ç(ããžãã¯)ã®èšèããããã€ãåãäžãããã®æå³ãåããæ³šæç¹ãªã©ã玹ä»ããŠãããŸãã ããã°ã©ã ã¬ãã«ã®ããžãã¯âŠâŠåºæ¬ã®è«çæŒç® æã¬ãã«ã®ããžãã¯ãâŠâŠæãæç« ã®çéãææ¡ããããã®è«çã®èšè ïŒããã ãã§ãã¹ãŠããšããããã§ã¯ãªãã®ã§ãã¿ã€ãã«ã«ãå
¥éããšã€ããŠããŸãïŒ ãªããæ¬èšäºã¯ ãããžã«ã«ã»ã·ã³ãã³ã°ãã解説ãããã®ã§ã¯ãããŸãã ãããžã«ã«ã»ã·ã³ãã³ã°ã¯äž»ã«ããžãã¹ã³ãã¥ãã±ãŒã·ã§ã³ã«ãããäœç³»çãªæèã»çºæ³ã®æè¡ã§ãïŒæ¬èšäºã§åãäžããâè«çã®ã¹ãã«âã¯ããã®äžã®äžéšãšããŠé¢ä¿ã¯ããŸãããã€ã³ãŒã«ã§ã¯ãããŸããïŒã âè«çããºã«âã®èãæ¹ Aãæ£çŽè
ã ãšãããšããç§ãã¡ã¯äºäººãšãåã€ãã ãã¯Aèªèº«ãåã€ããšèšã£ãŠããããšã«ãªã£ãŠããŸããççŸããŸãã åŸã£ãŠ Aã¯åã€ã ã§ããäºäººãšãã«åã€ãã ãã¯æ£ãããããŸããããšããããšã¯ãäºäººã®ãã¡ã©ã¡ãããæ£çŽè
ãšããããšã«ãªããŸãã ïŒãäºäººãšãæ£çŽè
ããšããå¯èœæ§ããããŸããã2ã§Aã¯åã€ããšå€æããŠããã®ã§ãããã¯ããåŸãŸããïŒ Aãåã€ããªã®ã§ã Bã¯æ£çŽè
ã§ãã â»ãªãã§ãããªãã®ïŒïŒããšæã£ã人ã¯ãã [第3å] ããã°ã©ã ã¬ãã«ã®ããžã㯠(2)解説線ã»åºæ¬ã®è«çæŒç®ããã芧ãã ããïŒ åèæç® ãå
¥éïŒè«çåŠã(éç¢èæš¹ / äžå€®å
¬è«æ°ç€Ÿ) ãæ°çãè«çãã¬ãŒãã³ã°ã(éç¢èæš¹ / ç£æ¥å³æž) ãèšå·è«çåŠãäžè¬åãšèšå·åã(ã¹ããªã€ã³ / äžžååºç) The post [第1å] ãªãããã¹ããšã³ãžãã¢ã«(ã)è«çã®ã¹ãã«ã¯éèŠãªã®ã first appeared on Sqripts .
ããã«ã¡ã¯ãQAãšã³ãžãã¢ã® ãªã㪠ã§ãã ãåç¥ã®æ¹ãå€ããšã¯æããŸãããQAæ¥åã§ã¯ãã°ãã°ããã¹ãèšèšæã«ããã仿§ãªã©ã®è³ªåããQA管ç衚ãããŸãã¯ãã¹ã宿œæã«ãããäžå
·åããäžå
·å管ç衚ããšããŠãã¹ãã¬ããã·ãŒããExcelãªã©ã«äžèЧåããŠéçšããå Žé¢ããããŸãããã®ãšããäžèŠ§è¡šã«å¯ŸããŠãã¹ããªãŒããŒçã®ç®¡çè
ã®ã¿ãéçšãããšããäžèšã®ãããªåé¡ãçããå¯èœæ§ããããŸãã æ
å ±ã®ååšïŒ èšèŒè
åã³ç®¡çè
ã«ã®ã¿æ
å ±ãååšãããããä»ã®ã¹ããŒã¯ãã«ããŒã«ãŸã§å
±æããããQAæ¥åã«åœ±é¿ãåãŒãå ŽåãããããŸããéè€èµ·ç¥šãªã©ã®å¯äœçšã䜵çºããŠããŸãå¯èœæ§ãããã ãã¹ãããã»ã¹ã®é
å»¶ïŒ ç®¡çè
ã®èšèŒå
容ã®èŠèœãšããšãã£ããã¥ãŒãã³ãšã©ãŒãçºçããå ŽåããããäŸãã°ãäžèŠ§è¡šã®äžå
·åãBTSã«è»¢èšãããããªéçšã§ããã°ãèŠèœãšããåã ãäžå
·åã®ä¿®æ£æéãé
å»¶ããŠããŸãããŸããäžå
·åã®åœ±é¿åºŠãä¿®æ£ã³ã¹ãã«ãã£ãŠã¯ããããžã§ã¯ãèŠæš¡ã§åœ±é¿ãåãŒãå¯èœæ§ãããã æ¬èšäºã§ã¯ãã¹ãã¬ããã·ãŒãã«èšèŒãããå
容ãGoogleAppsScriptsïŒä»¥äžãGASïŒã䜿çšããŠãã£ããããŒã«ïŒãã¹ãé¢ä¿è
ã®ãã£ããã°ã«ãŒãïŒã«éç¥ããããšã§ãäžèšã®ãããªåé¡ã解決ãã詊ã¿ãã玹ä»ããããšæããŸããæ¥åã®æé©åãå¹çåãªã©ã«å°ãã§ããæŽ»çšããã ãããšå¹žãã§ãïŒ â» </Sqripts> ã§ã¯ã以äžã®ããã«GASã«é¢ããèšäºãããã€ãããã®ã§ããèå³ã®ããæ¹ã¯æ¯éã芧ãã ããïŒ æ¥åæ¹åã«ã¯ã³ã¬ïŒïŒŒGoogle Apps ScriptïŒ Google Apps Scriptã䜿ã£ãŠGoogleã¹ãã¬ããã·ãŒããšCloud SQLã飿º GoogleAppsScriptã䜿ã£ãŠãã¹ãé
ç®æžã®äœè£ãäžçºã§æŽãã äºåæºå 1. ã¹ãã¬ããã·ãŒããçšæãã ããã§ã¯æ©é解説ããŠãããŸãããŸãã¯ããã«ãåææ¡ä»¶ãšããŠãã£ããããŒã«ãžã®é£æºå
ãå¿
èŠãšãªããããã¹ãã¬ããã·ãŒãã«ãŠäžå³ã®ãããªè¡šãäœæããŸããããã¡ãã«èšèŒãããæ
å ±ãããã¯ã¢ããããŠéç¥ãããŠãããããšæããŸãã 2. ãã£ããããŒã«ã«ã¢ããªã远å ãã æ¬¡ã«ã¹ãã¬ããã·ãŒãã®é£æºå
ãšãªããã£ããããŒã«ã«ã¢ããªã远å ããŸããããä»åã¯SlackãäŸã«ãä»å±ã¢ããªã§ãããIncoming Webhookããã玹ä»ããããšæããŸãã â»GoogleChatã§ãåæ§ã«ããWebhookããšããã¢ããªã远å ããããšã§é£æºå¯èœã§ãã Incoming Webhookã®è¿œå æ¹æ³ 1.ã察象ã®ã°ã«ãŒãã®ãã£ã³ãã«è©³çްèšå®ã®ãã€ã³ãã°ã¬ãŒã·ã§ã³ãã¿ãããã¢ããªã远å ããŸãã 2. ãIncoming Webhookãã远å ããã€ã³ãã°ã¬ãŒã·ã§ã³ã®èšå®ãè¡ããŸããèšå®ããå
容ã¯ä¿åããŠãããŸãããã åèšå®ã®æŠèŠã¯ã以äžã®éãã§ãã ãã£ã³ãã«ãžã®æçš¿ ïŒéç¥å
察象ã®ãã£ã³ãã«ãæå®ããŸããïŒäžå³ã§ã¯ãéç¥å
ã®ãã£ã³ãã«ããšããã°ã«ãŒããæå®ããŠããŸããïŒ Webhook URL ïŒã¢ããªã®ãŠããŒã¯ãªURLã§ããGASã§é£æºããéã¯å®å
ãšããŠãã®URLãæå®ããŸãã 説æã©ãã« ïŒçšéãªã©ãèªç±ã«èšèŒããããšãã§ããŸãã ååãã«ã¹ã¿ãã€ãº ïŒæçš¿æã®ååãèšå®ããããšãã§ããŸãã ã¢ã€ã³ã³ãã«ã¹ã¿ãã€ãºãã ïŒæçš¿æã®ã¢ã€ã³ã³ç»åãèšå®ããããšãã§ããŸããïŒä»åã¯ã</Sqripts>ãã®ã¢ã€ã³ã³ãèšå®ããŠã¿ãŸãããïŒ ä»¥äžã§äºåæºåã¯çµããã§ãã ã³ãŒãã£ã³ã°ïŒåºæ¬ç·šïŒ ç¶ããŠãã¹ãã¬ããã·ãŒãããGASãèµ·åããã³ãŒãã£ã³ã°äœæ¥ã«å
¥ããŸããããGASã¯ãã¹ãã¬ããã·ãŒãã®æ¡åŒµæ©èœã¿ã ïŒ Apps Script ããèµ·åããããšãã§ããŸãã 1. 察象ã®ã¹ãã¬ããã·ãŒãã»ã·ãŒããååŸãã ã¯ããã«ãå®è¡å¯Ÿè±¡ãšãªãã¹ãã¬ããã·ãŒããååŸããŸãããã颿°åã¯ãchatNoticeããšããŠããŸãã function chatNotice() { //察象ã®ã¹ãã¬ããã·ãŒãã®ååŸ const activeSheet = SpreadsheetApp.getActiveSpreadsheet(); const activeSheetName = SpreadsheetApp.getActiveSheet().getName(); const sheet = activeSheet.getSheetByName(activeSheetName); ãgetActiveSpreadsheetãã¡ãœãããšãgetActiveSheetãã¡ãœãããæŽ»çšããã¢ã¯ãã£ãç¶æ
ã®ã·ãŒãïŒã¹ãã¬ããã·ãŒãäžã§çŸåšéãããŠããã·ãŒãïŒãå®è¡å¯Ÿè±¡ãšãªãããã«ã³ãŒãã£ã³ã°ããŠããã®ã§ãã·ãŒãåã«äŸåããã«å®è¡ããããšãã§ããŸãïŒéæ¥åç
§ïŒãèšãæããã°ãå®è¡å¯Ÿè±¡ä»¥å€ã®ã·ãŒããã¢ã¯ãã£ãã ã£ãå Žåã«ãåŠçãèµ°ãã®ã§ãå°ã泚æãå¿
èŠã§ãã 2. èšèŒãããå
容ãååŸãã æ¬¡ã«ãäºåæºåã§çšæããã¹ãã¬ããã·ãŒãã®No.2ïŒè¥å· éŸä¹ä»ïŒã®æ
å ±ãçŽå€ã§ååŸããŠã¿ãŸãããã //èšèŒå
容ã®ååŸ const info = sheet.getRange(4, 3, 1, 3).getValues().flat(); ãinfoããšããäžæ¬¡å
ã®é
å倿°ãå®çŸ©ããèšèŒå
å®¹ãæ ŒçŽãããŸããïŒã¹ãã¬ããã·ãŒãã«å¯Ÿããã4ãè¡ç®ã®ã3ãåç®ããã1ãè¡åäœã§ã3ãã»ã«åååŸãããâãinfo[0] = 1915, info[1] = è¥å· éŸä¹ä», info[2] = çŸ
çéããšãªãã€ã¡ãŒãžã§ããïŒ 3. éä¿¡å
容ãèšå®ãã ç¶ããŠã2ã§ååŸããæ
å ±ãæŽ»çšããéä¿¡ããå
容ãèšå®ããŸãã //éä¿¡å
容ã®èšå® const msg = ( "ã¹ãã¬ããã·ãŒãã«èšèŒãããå
容ãéä¿¡ããŠã¿ããïŒ" + "\\n" + "\\n" + "âŒèšèŒæ
å ±" + "\\n" + "ã»çºè¡šå¹Žã ïŒ " + info[0] + "\\n" + "ã»èè
ãã ïŒ " + info[1] + "\\n" + "ã»ã¿ã€ãã« ïŒ " + info[2]); ãã®ãããã¯ã奜ã¿ã§å å·¥ããããšãã§ããŸããä»åã¯äžèšã®ãããªå
容ã«ãªãããã«èšå®ããŠã¿ãŸããã 4. èšå®ããéç¥å
容ãéä¿¡ãã æåŸã«ãèšå®ããéç¥å
容ãPOSTããã¡ãœãããUrlFetchAppãšåŒã°ããã¯ã©ã¹ãçšããŠèšè¿°ããŠãããŸãã //ååŸããæ
å ±ã®éä¿¡ const message = { 'text': msg } const options = { "method": "POST", "contentType" : "application/json", "payload": JSON.stringify(message) }; const result = UrlFetchApp.fetch('äºåæºåã®ã€ã³ãã°ã¬ãŒã·ã§ã³èšå®ã§çæããURL' , options); } 以äžã§ã³ãŒãã£ã³ã°ã¯å®äºã§ãã å®è¡çµæ GASã®å®è¡çµæããã¡ãã§ãã ç¡äºã«éä¿¡ãããŸããïŒã€ã³ãã°ã¬ãŒã·ã§ã³ã®åèšå®ãèšèŒæ
å ±ãæ³å®éãã«ãªã£ãŠããŸãâ 以äžãåºæ¬çãªé£æºæ¹æ³ãšãªããŸãã ã³ãŒãã£ã³ã°ïŒå¿çšç·šïŒ æåŸã«ãQAæ¥åã§ã®æŽ»çšäºäŸãã玹ä»ããŸããQAæ¥åã§ã¯ãã°ãã°ããã¹ãèšèšæã«ããã仿§ãªã©ã®è³ªåããQA管ç衚ãããŸãã¯ãã¹ã宿œæã«ãããäžå
·åããäžå
·å管ç衚ããšããŠãã¹ãã¬ããã·ãŒãã«äžèЧåããŠèšèŒããå ŽåããããŸãã å¿çšç·šã§ã¯ãããã£ãå Žé¢ãæ³å®ããäžå
·å管ç衚ãäŸã«ãäžå
·åæ
å ±ãæç²ããŠéç¥ããæ¹æ³ãã玹ä»ããããšæããŸãã 察象ã®äžå
·å管ç衚 察象ã®äžå
·å管ç衚ãšããŠãäžå³ã®ãããªå
容ãçšæããŸããã ä»åã¯æŠèŠã¬ãã«ã§éç¥ããçšéãæ³å®ããŠããã®ã§ãã起祚æ¥ãã起祚è
ããã¿ã€ãã«ãã®3ç¹ãããã¯ã¢ãããããã£ããã°ã«ãŒãã«éä¿¡ããããšæããŸããïŒãã¹ããŒã¿ã¹ããã詳现ãã¯ãéç¥å
容ãšããŠã¯åé·ã«ãªããããªãã®ã§çç¥ããŠããŸããïŒ éä¿¡ãšãªã¢ äžèšãå®çŸãããããã«ãB2ïœC3ã»ã«ã«ã éä¿¡ãšãªã¢ ããèšããŸããã B2ãB3ã»ã«ã®ã No. ãã«ãã¹ãã¬ããã·ãŒãã®ãããŒã¿ã®å
¥åèŠåãã䜿ã£ãŠãäžèŠ§è¡šã§è©²åœããNo.ã ãã«ããŠã³ãªã¹ã圢åŒã§åºåããåŠçãå
¥ããŠããŸãã ãŸããAåã®No.ã«ã¯ã=IF(ã¹ããŒã¿ã¹=””,””,ROW()-ROW($A$5))ããšãã£ã颿°ãèšè¿°ããŠãããããæªèšèŒã®äžå
·åãšãã£ãäžèŠãªNo.ãåºåããªãããã«å¶åŸ¡ããŠããŸãã C2ãC3ã»ã«ã®ã éä¿¡ãã¿ã³ ãã§ã¯ãã¿ã³ã®å³åœ¢ãæç»ããããã«GASãå²ãåœãŠãŠããŸãã ãããã£ãŠãäžå
·åãèšèŒããããšããäžå
·åã®èµ·ç¥šè
ãèªãèšèŒããäžå
·åã®No.ãB2ã»ã«ã®ãNo.ãã§éžæããC2ã»ã«ã®ãéä¿¡ããã¿ã³ã§é¢ä¿è
ã®ãã£ã³ãã«ã«æçš¿ãããããªéçšãæ³å®ããå
容ãšãªã£ãŠããŸãã ã³ãŒãã£ã³ã°å
容 åºæ¬çã«ã¯ãã³ãŒãã£ã³ã°ãç« ã§ç޹ä»ããã³ãŒããšããŸãå€ãããŸããããå¿çšç·šãšããŠå°ãã ãæãå ããŠããŸãã詳现ã¯äžèšã§è§£èª¬ããŸãã /** - æ°èŠã«èšèŒããäžå
·åãSlackã«éä¿¡ããã - éä¿¡ããæ
å ±ã¯ä»¥äž3ç¹ã - ã»èµ·ç¥šæ¥[data] - ã»èµ·ç¥šè
[tester] - ã»ã¿ã€ãã«[title] - / function bugNotice() { //察象ã®ã¹ãã¬ããã·ãŒãã®ååŸ const activeSheet = SpreadsheetApp.getActiveSpreadsheet(); const activeSheetName = SpreadsheetApp.getActiveSheet().getName(); const sheet = activeSheet.getSheetByName(activeSheetName); //äžå
·åæ
å ±ã®ååŸ const bugNo = sheet.getRange(3, 2).getValue(); const bugInfo = sheet.getRange(bugNo + 5, 4, 1, 3).getValues().flat(); //éç¥å
容ã®å®çŸ© const data = Utilities.formatDate(bugInfo[0], 'JST', 'yyyy/MM/dd'); const tester = bugInfo[1]; const title = bugInfo[2]; //éç¥å
容ã®èšå® const msg = ( "äžå
·åã起祚ãããŸããã" + "\\n" + "\\n" + "âŒèšèŒæ
å ±" + "\\n" + "ã»èµ·ç¥šæ¥ã ïŒ " + data + "\\n" + "ã»èµ·ç¥šè
ã ïŒ " + tester + "\\n" + "ã»ã¿ã€ãã« ïŒ " + title); //確èªãã€ã¢ãã°ã®è¡šç€º const confirmdlg = Browser. msgBox("é信確èª", "Slackã«ä»¥äžã®å
容ãéä¿¡ããŸããïŒ" + "\\\\n" + "\\\\n" + "âŒèšèŒæ
å ±" + "\\\\n" + "ã»èµ·ç¥šæ¥ã ïŒ " + data + "\\\\n" + "ã»èµ·ç¥šè
ã ïŒ " + tester + "\\\\n" + "ã»ã¿ã€ãã« ïŒ " + title, Browser.Buttons.YES_NO); if (confirmdlg == "yes") { ; } else { return false; }; //ååŸããæ
å ±ã®éä¿¡ const message = { 'text': msg } const options = { "method": "POST", "contentType": "application/json", "payload": JSON.stringify(message) }; const result = UrlFetchApp.fetch('äºåæºåã®ã€ã³ãã°ã¬ãŒã·ã§ã³èšå®ã§çæããURL', options); } äžå
·åæ
å ±ã®ååŸ //äžå
·åæ
å ±ã®ååŸ const bugNo = sheet.getRange(3, 2).getValue(); const bugInfo = sheet.getRange(bugNo + 5, 4, 1, 3).getValues().flat(); å¯Ÿè±¡ã®æ
å ±ãååŸããããã«ãã¯ããã«ãbugNoããšãã倿°ãå®çŸ©ããgetRangeã¡ãœããã䜿ã£ãŠ3è¡ç®ãã€2åç®ã§ãããéä¿¡ãšãªã¢ãã®ãNo.ãã®å€ãååŸããŠããŸãã ç¶ããŠããbugInfoããšããäžæ¬¡å
ã®é
å倿°ãå®çŸ©ããèšèŒå
å®¹ãæ ŒçŽãããŸããïŒã¹ãã¬ããã·ãŒãã«å¯Ÿããããã«ããŠã³ãªã¹ãã§éžæããå€ïŒ5ãè¡ç®ã®ã4ãåç®ããã1ãè¡åäœã§ã3ãã»ã«åååŸãããâããéä¿¡ãšãªã¢ãã®ãNo.ãã§ã1ããéžæãããŠããå Žåã¯ãbugInfo[0] = 2023/10/01, bugInfo[1] = ãã¹ã 倪é, info[3] = ââç»é¢ã§â³â³ãããšãââã«ãªãããšãªããããªã€ã¡ãŒãžã§ããïŒ éç¥å
容ã®å®çŸ© //éç¥å
容ã®å®çŸ© const data = Utilities.formatDate(bugInfo[0], 'JST', 'yyyy/MM/dd'); const tester = bugInfo[1]; const title = bugInfo[2]; ãbugInfoãã®å
容ãåãããããããããã«ãé
åã®å€ãããããå¥ã®å€æ°ã«çœ®æããŠå®çŸ©ããŸããããŸããååŸããå€ãå¹Žææ¥ã®å Žåã¯ãGASã®ç¹æ§äžãæååã«å€æããå¿
èŠãããããããUtilitiesãã¡ãœããã§æ¥ä»åœ¢åŒïŒyyyy/MM/ddïŒã«å€æããŠããŸãã 確èªãã€ã¢ãã°ã®è¡šç€º //確èªãã€ã¢ãã°ã®è¡šç€º const confirmdlg = Browser. msgBox("é信確èª", "Slackã«ä»¥äžã®å
容ãéä¿¡ããŸããïŒ" + "\\\\n" + "\\\\n" + "âŒèšèŒæ
å ±" + "\\\\n" + "ã»èµ·ç¥šæ¥ã ïŒ " + data + "\\\\n" + "ã»èµ·ç¥šè
ã ïŒ " + tester + "\\\\n" + "ã»ã¿ã€ãã« ïŒ " + title, Browser.Buttons.YES_NO); if (confirmdlg == "yes") { ; } else { return false; }; éä¿¡æã®èª€çãé²ãããã«ã確èªãã€ã¢ãã°ãå®è£
ããŠã¿ãŸããããã€ã¢ãã°ã§ãã¯ãããéžæãããšéä¿¡ãããããããããŸãã¯ãâããã¿ã³ãéžæãããšéä¿¡ãããªãåŠçãèšè¿°ããŠããŸãã ã€ã³ãã°ã¬ãŒã·ã§ã³ã®èšå® ã€ã³ãã°ã¬ãŒã·ã§ã³ã®èšå®ã䜵ããŠå°ãã ãå€ããŸããã å®è¡çµæ å®éã«ãäžå
·å No.3ãã察象ã«ããŠéä¿¡ããŠã¿ãŸãããïŒ ãéä¿¡ãšãªã¢ãã®ãNo.ãã®ãã«ããŠã³ãªã¹ãããã3ããéžæãã ãéä¿¡ããã¿ã³ãæŒäžãããšããã ã¹ãã¬ããã·ãŒãäžã«ç¢ºèªãã€ã¢ãã°ã衚瀺ãããŸããïŒ ç¢ºèªãã€ã¢ãã°ã§ãã¯ãããæŒããšããã ç¡äºãSlackã«äžå
·åå
容ãæçš¿ãããŸããïŒã¹ã¿ã³ãçãæŽ»çšãããšãã广çã«æŽ»çšã§ãããã§ãã 以äžãããå®è·µçã«QAæ¥åãæèããäœ¿ãæ¹ã®ã玹ä»ã§ããïŒ ãããã« ãã³ãŒãã£ã³ã°ïŒå¿çšç·šïŒãã§ã玹ä»ããæ¹æ³ã§ããã°ããã£ããã°ã«ãŒãå
ã«æå±ããŠãããããžã§ã¯ããªãŒããŒããã¹ãèšèšè
ããã¹ã宿œè
ããããã¯éçºè
ãªã©ã®åãããžã§ã¯ãé¢ä¿è
ã«å¯ŸããŠãäžåŸã§ä»æ§è³ªåãäžå
·åãªã©ãæŠèŠã¬ãã«ã§éç¥ããããšãã§ããããããã¯ããã«ãã§ã玹ä»ããäŸã®ãããªæ
å ±ã®ååšãå±äººåãªã©ãè§£æ¶ã§ããããã¹ããŒãæãæã£ãŠèª²é¡ãè§£æ¶ã§ãããããå ŽåããããŸãããã®åé¢ã質åãäžå
·åãé »åºãããããžã§ã¯ãã§ã¯ãéç¥ãç
©ãããæããããšãããã®ã§ã䜿çšããå Žåã¯é©åãªå Žé¢ã䜿ãéãèŠæ¥µããããšãå¿æããŸãããã â»ãã¡ããã䜿çšåã«ã¯ã¹ããŒã¯ãã«ããŒã«äºåã«ç¢ºèªãåããªã©ãããžã§ã¯ãé¢ä¿è
ãžã®èš±å¯ãé
æ
®ãå¿
èŠã§ãïŒ ãŸããããããã¹ãã¬ããã·ãŒã à GAS ãªã©ã®æ©èœãäžæãçµã¿åãããŠãæ¥åã®æé©åãå¹çåãå³ããããããQAæ¥åãå®çŸãããŠãããŸãããïŒ The post ã¹ãã¬ããã·ãŒããšãã£ããã飿ºããŠQAæ¥åãå¹çåããã first appeared on Sqripts .
ç§ã¯ä»äºæãæè¬çäžãããžã§ã¯ãã®ç«æ¶ãããåä»»PMãèæœ°çã§é¢è±ããŠâŠãšãã£ããä¿®çŸ
å Žãããªããšãå¶åŸ¡ããŠã¯ããŒãºãŸã§æã£ãŠãããšãã£ã圹å²ãæ
ãããšãå€ããããŸãã ããã§è³ªåã§ãããããžã§ã¯ããæåãããã«ã¯ çäžãããžã§ã¯ããé®ç«ããæè¡ ãããžã§ã¯ããçäžãããªãããã«ããæè¡ ã©ã¡ãã倧åã ãšæããŸããïŒ ïŒã¯ç«æ¶ãã®æè¡ãæ±ããããçããŠããäºã人ãå©ããŠãã©ãã«ãããã«ããããžã§ã¯ããçºãããããã¯ããã¯ã察ããŠïŒã¯ãããããããžã§ã¯ããçäžããªãããã«å
æãæã£ãŠã³ã³ãããŒã«ãããã¯ããã¯ã§ãã çäžæ¡ä»¶ã«ã¯ç€Ÿå
ã®é¢å¿ãéãŸããç«ãŠçŽãããã©ãŒã«ã¹ããããšãŒã¹çŽãã«ããæå
¥ãããŸãé®ç«ããããªãçãäžããããããç®ç«ã€ããããžã§ã¯ãã§ãã仿¹ãæ¯èŒçã¹ã ãŒãºã«é²ããããžã§ã¯ãã¯ç®ç«ããªãååšã§ããèŠæ±äºé
ãæŽçããQCDãå®ã£ãŠäºç®éãã«çŽåããŠããã¯ããOKããšãªã£ãŠã倧ããªäºè±¡ãçºçãããªãã£ãããšããå瞟ã¯ã¯ããŒãºã¢ãããããŸãããã§ããã æ¬åœã«çŸå Žã«æ±ãããããããžã§ã¯ããæåãããšèšããã®ã¯ïŒ ã§ãã ç«æ¶ãã¯æŽŸæã§ç®ç«ã¡ãŸãããé«é£åºŠã§éèŠãªãã¯ããã¯ã§ããåãããã«ã ç«ãèµ·ãããªãããã«èŠå®ã£ãŠã¯ç«çš®ãæ¶ããŠãŽãŒã«ããããšã¯ãåŸã
ã«ããŠç®ç«ããçãã«ãããã¡ã§ããããã®å®è·µã«ã¯å€æ§ãªãã¯ããã¯ãšçè«ã»å·¥å€«ãæ£ãã°ããã ãŠããŸãã æ¬é£èŒã§ã¯ãããžã§ã¯ããããžã¡ã³ãã®å
šäœåãšãããžã§ã¯ããæåãããäžã§æäœéæããã¹ãç¥èãšæè¡ã¯ãã¡ããããããžã§ã¯ããçäžãããªãããã®æè¡ãã³ãããäŒãããããšæã£ãŠããŸããã¿ãªããã®ãããžã§ã¯ããä»ä»¥äžã«å
å®ããç¬é¡ã§ãããžã§ã¯ãçµçµãè¿ããããããäžç·ã«åŠãã§ãããŸãããã ïŒåèãšæºæ ïŒ æ¬é£èŒã¯ãããžã§ã¯ããããžã¡ã³ãã®åœéèŠæ Œã§ããISO21500:2012åã³ãããžã§ã¯ããããžã¡ã³ãã®æ¥çæšæºè³æ Œã§ããPMP ® ïŒProject Management ProfessionalïŒã«æºæ ããªãããçè
ã®æŽçãå ããå
容ã§èšèŒããŠããŸããå ããŠããããžã§ã¯ããããžã¡ã³ãè¬åž«ãšããŠã®çµéšãããããžã§ã¯ãçŸå Žã§å®è¡æ¯æŽãè¡ãäžã§åŸããããå®è·µçããªããŠããŠãçã蟌ãã§ãããããšèããŠããŸãã ãããžã§ã¯ããšã¯ããããžã§ã¯ããããžã¡ã³ããšã¯ ãããžã§ã¯ãã®èªæº ããããžã§ã¯ããã®èªæºã¯ã©ãã³èªã§ãPROïŒåæ¹ã«ïŒæªæ¥ïŒãJECTïŒæãããæãããšããæå³ããããŸããä»äºã§ããã°ããŸãã«åã«ããæªæ¥ã®ç®æšã«åãã£ãŠã¢ã¯ã·ã§ã³ãæããŠããå§¿ãã®ãã®ãPROJECTãšããåèªã®ããããã«ãªããŸãã ãããžã§ã¯ããšã¯ ãããžã§ã¯ãã¯ãç¬èªã®ãããã¯ãããµãŒãã¹ãæç£ãåµé ããããã«å®æœãããæææ§ã®ããæ¥åããšå®çŸ©ãããç¹ã« æææ§ã»ç¬èªæ§ ãšããç¹ããããžã§ã¯ãã®ç¹åŸŽãšèšããŸãã ç¬èªæ§ãšã¯ãæ°ããèŠçŽ ïŒéå»ã«çµéšããããšããªãèŠçŽ ïŒãå«ãŸããç®çãç®æšããæããŸããããªã«ããŸã£ããåããŠïŒãšãã倧局ãªãã®ã§ããå¿
èŠã¯ãããŸãããæææ§ãšã¯ãéå§æ¥ãšçµäºæ¥ãæç¢ºã«ãªã£ãŠããããšãã§ããããã®æéã«ãããŠææç©ãçã¿åºã掻åãè¡ããŸãããã®ïŒã€ã®èŠçŽ ãå
¥ã£ãŠããã°ãããšããXXãããžã§ã¯ãããšéæãããŠããªããŠããããžã§ã¯ãã®æ§è³ªãæã¡ãåœç¶ãããžã§ã¯ããããžã¡ã³ãã®ç¥èãæè¡ãé©çšãããããšãã§ããŸãããããžã§ã¯ããšèããšå€§èŠæš¡ã€ã³ãã©äºæ¥ãITæ¥çãæ³åããããšãå€ãã§ãããæ¥ã
ã®æ¥åæãã¯ãã©ã€ããŒãã®æŽ»åã®äžã«ããããžã§ã¯ãã¯ååšããŠããŸããäŸãã°æ
è¡ã®èšç»ãåŒè¶ããå°±è·æŽ»åãªã©ãç¬èªã®ç®çãšæéãæã€ãããžã§ã¯ããšèšããã§ãããããŸãè¿å¹ŽãäŒæ¥ãçµç¹ã¯ãã®å³ããç°å¢å€åããçµ¶ããç¬èªæ§ãæ±ããããããã«ãªã£ãŠããã èŠæš¡ãæ¥çã«é¢ãããæ§ã
ãªæ¥åããããžã§ã¯ãåããŠã ãŸãã ãããžã§ã¯ããããžã¡ã³ããšã¯ ã ãããæ¥åžžçã«ãããžã§ã¯ãã®åå è
ã§ãããªãã°ãæ¹ããŠãããžã§ã¯ããããžã¡ã³ããç¥ãå¿
èŠãªããŠããã®ãïŒãããªããšãªãã§ããããïŒã§ãããã ããïŒå€§äžå€«ããšãããšããã§ã¯ãããŸããããããžã§ã¯ããããããžã¡ã³ããããããšã¯ããããžã§ã¯ãã ããã®æè¡ãçµéšãé©çšããªãããé©åã«ã€ãªã¯ãªïŒãããžã¡ã³ãïŒã ããå¿
èŠãããããã§ãã ãããžã§ã¯ããããžã¡ã³ããšã¯ããããžã§ã¯ãã®èŠæ±äºé
ãæºè¶³ãããããã«æ¹æ³ãç¥èãã¹ãã«ãããŒã«ãšææ³ããããžã§ã¯ã掻åãžé©çšããããšããšå®çŸ©ãããŸããã€ãŸãããããžã§ã¯ããã©ã®ããã«éè¡ãããèšç»ãç«ãŠããããžã§ã¯ãã®ç®çãéæã§ããããã«ã³ã³ãããŒã«ããŠããããšã§ãããŸããããžã§ã¯ãç®æšã¯æªæ¥ã«ãããããåžžã« ãäžç¢ºå®æ§ã ãååšããŸãããã®äžç¢ºå®æ§ã®äžã§ããã«ãç®çã»ç®æšã®éæè§åºŠãé«ããããããã®æºåãããŠãããŸããããäœã®ãããžã¡ã³ããããªããã°ããããžã§ã¯ãã¯100ïŒ
倱æããŸãã ãŸããããžã§ã¯ãå®è¡æã«é©åãªææ³ãæ¹æ³ãçšããå®çŸå¯èœæ§ã®äœãç®æšèšå®ãè¡ããé©åãªèšç»ãã§ããªããšããããšãèµ·ããããã§ãããã é©åãªãããžã§ã¯ãå®è¡ã«é¢ããæè¡ãææ³ã¯ããããžã§ã¯ãã®åæ»ãªæŽ»åã®å¿
é èŠçŽ ã§ãã ãããžã§ã¯ãããããžã¡ã³ãã®å®åçµéšãããæ¹ã§ããããã«ãã®æŽ»å粟床ãé«ããããã«ãåŒãç¶ãæèããŠãã®ãããžã§ã¯ããããžã¡ã³ãã¹ãã«ãé«ããŠãã£ãŠããã ããããšé¡ã£ãŠããŸãã ãããžã§ã¯ããããžã¡ã³ããšå®åžžæ¥åãããžã¡ã³ã ãããžã§ã¯ãã¯ãæéããæã€ææçãªæŽ»åã§ãããã®å¯Ÿã®é¢ä¿ã«ããã®ã¯å®åžžçãªæ¥åãã€ãŸãç¡æçãªæŽ»åã§ãã äŒæ¥ã¯ãã®ææçãªæŽ»åãšç¡æçãªæŽ»åãïŒã€ã®æŽ»åã®çµã¿åããã«ãã䟡å€ãçã¿åºããªããäºæ¥éå¶ãè¡ãªã£ãŠããŸãã ãããžã§ã¯ãå®äºåŸã¯ãã®æŽ»åããçã¿åºãããã®ããå®åžžæ¥ååãã€ãŸãå®å®çã«éçšã§ããããã«åãæž¡ããŸããããããžã§ã¯ããçµäºããããã©ãããããã¿ã¹ã¯ãæ®ã£ãŠããããå®åžžæ¥ååããã¯ããããŸãåããªãããšãããšãããè³ã«ããŸããããããã®åãæž¡ãããäžæããã£ãŠããªãã±ãŒã¹ã§ãã ãããžã§ã¯ãâå®åžžæ¥åãšããæµããšå®çåãæè ããŠå掻åãé²ããŸãããã ãããžã§ã¯ãã«ãããå¶çŽãšäžç¢ºå®æ§ ãããžã§ã¯ãã¯ç¬èªã§ãããæ
ã«æ
å ±ãçµéšãååã§ãªãã«ãé¢ããããæéãŸã§ã«çŽæããææç©çã宿ãããªããã°ãªããŸããããããžã§ã¯ããåãåããæµããšãèšããã®ã¯ãã®äžç¢ºå®æ§ã§ããããããžã§ã¯ããããžã¡ã³ãã®æ¬è³ªã¯ãäžç¢ºå®æ§ã®äžã§æŽ»åãã€ãªã¯ãªããããšããšèšããŸãã ãããžã§ã¯ãã«ã¯å€ãã®å¶çŽæ¡ä»¶ããããŸãããäžã§ãQCDãäžå€§å¶çŽæ¡ä»¶ãšèšããŸãããã®å¶çŽæ¡ä»¶ããããžã¡ã³ãããããšããããžã§ã¯ãæåã®éµã§ãããŸãäžç¢ºå®æ§ã確çè«çãªäžç¢ºå®æ§ãææ§ãã«ããäžç¢ºå®æ§ãè€éãã«ãããã®ãªã©æ§ã
ã§ããæ®å¿µãªããšã«ãã®äžç¢ºå®æ§ã®æ€èšïŒæŽãåºãïŒã察åŠãåŸåãããè¡ãããªãããšãå°ãªããããŸãããäžç¢ºå®æ§ã®æ€èšã¯å®¹æãªäœæ¥ã§ã¯ãããŸãããããã以äžã«ããããããªããšãèµ·ããã倧å€ã ããšæ³ååãåãã ãæ£ãããã€ãã¹æèã ãåãå
¥ããäœå¶ãå¿
èŠã§ãã ãããžã§ã¯ãã§ã¯å¶çŽãäžç¢ºå®æ§ã«å¯Ÿå¿ãããå®å
šãªæ£è§£ãããã¥ã¢ã«ãã¯æã£ãŠããŸããããããžã§ã¯ãã®éå§åããå¶çŽæ¡ä»¶ã«åªå
床ãä»ãããæºåããããšããæã«ã¯ãå®çŸäžå¯èœãªãããžã§ã¯ããéå§ããªãããšãã倿ãå¿
èŠã«ãªãããšãèŠããŠãããŠãã ããããŸããäžç¢ºå®æ§ãžã®å¯ŸåŠã¯ããªã¹ã¯ãããžã¡ã³ããã®åã§è§ŠããŠãããŸãã ãããžã§ã¯ããããžã¡ã³ãã®ã©ã€ããµã€ã¯ã« ãããžã§ã¯ããããžã¡ã³ãã®ææ³ãšããŠä»£è¡šçãªã®ãã®ãäºæž¬åã©ã€ããµã€ã¯ã«ãšåŒã°ãããŠã©ãŒã¿ãŒãã©ãŒã«åïŒWFïŒé©å¿åã©ã€ããµã€ã¯ã«ãšåŒã°ããã¢ãžã£ã€ã«åã®ïŒã€ã§ãããã®ã»ãã«å埩åã»æ¬æ°åã»ãã€ããªããåãªã©ããããŸãã ãŠã©ãŒã¿ãŒãã©ãŒã«åã¯ãããã»ã¹ãã¿ã¹ã¯ãåæã«èšç»ããé çªã§å®äºãããææç©ãçã¿åºãææ³ã§ããæ¯èŒçé·æã®ãããžã§ã¯ããæç¢ºãªææç©ãããå Žåã«äœ¿ãããŸãã ã¢ãžã£ã€ã«åã¯ãåªå
çãªæ©èœãææç©ãéžæããªããïŒ-ïŒé±éã®çãæéã§å®æããã®ç¹°ãè¿ãã§ææç©ãçã¿åºãææ³ã§ããæ¥æ¬å
šäœã§ã¯ãŸã ãŠã©ãŒã¿ãŒãã©ãŒã«åéçºãããžã§ãªãã£ãšããŠäœ¿ãããŠããããããããããããžã§ã¯ããããžã¡ã³ããåŠã¶ãšããæ¹ã¯ããããŠã©ãŒã¿ãŒãã©ãŒã«åããç¿åŸãããšããã§ãããã ãããžã§ã¯ãã®ç°å¢ïŒçµç¹ã®ãããžã§ã¯ããããžã¡ã³ãïŒ è€æ°ã®ãããžã§ã¯ããéå¶ããŠæ§ã
ãªçµå¶èª²é¡ã®å¯ŸåŠãæŠç¥å®çŸãç®æãéã«ãããããå¹ççã«ãããžã¡ã³ãããäœå¶ãšããŠãããã°ã©ã ãããããŒããã©ãªãªãããããŸãã åºå
žïŒOPM3ãåºã«çè
ãäœæ ããã°ã©ã ãšã¯è€æ°ã®é¢é£ãããããžã§ã¯ããæŽ»åã®ã°ã«ãŒãã§ããããŒããã©ãªãªãšã¯äžè¬çã«è€æ°ã®ããã°ã©ã ããããžã§ã¯ããæŽ»åã®ã°ã«ãŒããæããŸãããããã®ã°ã«ãŒãã«ããããããžã¡ã³ãããããããããã°ã©ã ãããžã¡ã³ãããããŒããã©ãªãªãããžã¡ã³ãããšåŒã³ãŸããããããã®å¹ççãªãããžã¡ã³ããšãªãããã«ããããžã§ã¯ããããã°ã©ã ããã®ä»ã®æŽ»åã¯çµç¹æŠç¥ãšæŽåãåããŠãããããããžã§ã¯ãããããžã§ã¯ãã®ææã¯æŠç¥ç®æšéæã«è²¢ç®ããŠããããäœæ¥ç¶æ
ã®ç¢ºèªãéããããªãœãŒã¹ã®ç¶æ³äžã§ãããžã§ã¯ãã®åªå
é äœãæç¢ºã«ããæŽåã®ãšãããªãœãŒã¹é
åãªã©ãè¡ããŸãã ããã°ã©ã ã®æ§è³ª ãããžã§ã¯ããããžã¡ã³ããæ®åããäžã§ãããã«è€éãªæŠå¿µã§ããããã°ã©ã ãæ³šç®ãããŠããŸããããã°ã©ã ãšã¯è€æ°ã®é¢é£ãããããžã§ã¯ããæŽ»åã®ã°ã«ãŒããšãäŒãããããã«ããããžã§ã¯ããšããã°ã©ã ã¯å
±éç¹ããããŸããç°ãªãç¹åŸŽãæã£ãŠããŸããäŸãã° å埩åã®æŽ»åãå«ãŸããå Žåãããå®åžžæ¥åã«è¿ãæ§è³ªãæã€ ãããžã§ã¯ãã¯ç®çã®ææç©ãçã¿åºããããã®äœ¿åœãçµãè§£æ£ããã®ãååã ããããã°ã©ã ã¯ããªããããããã§ã¯ãªã ãªã©ã§ããããã°ã©ã ãè§£æ£ããã®ã¯ãã€ããšããããšãæã£ãŠããæŠç¥çãªéšåãç®æšèªäœãæ°ããç®æšã«äžæžããããŠããã°ã©ã èªäœã®äœ¿åœãçµããå Žåããç®æšãéæããä»çµã¿ãå®å
šã«ç€ŸäŒãåžå Žãã·ã¹ãã ã«å®çããŠããã以äžã®ç£èŠãå¿
èŠãªããªã£ããããªå Žåã§ãããã®ããã« ææã®å®çŸã ãã§ãªãããã®ç¶æã»ç®¡çã«ã䜿åœãè² ããšããã®ãããã°ã©ã ã®ç¹åŸŽ ã®äžã€ãšãããŸãããŸãããããããã°ã©ã ã«ã¯æææ§ãæªãããã®ããããŸããããã°ã©ã ã§ãéåžžã¯ç®æšéæææãæ±ºããããŠããŸããããããžã§ã¯ããšæ¯èŒãããšå€§å€ç·©ããã§ãæéããšåŒã¹ãã»ã©åŒ·ãå¶çŽäºé
ã§ã¯ãªãã±ãŒã¹ãæ®ã©ã§ãã æ
åœãããããžã§ã¯ãã®ç°å¢ã確èªããæãã©ã®ããã°ã©ã ãããŒããã©ãªãªã«å±ããŠãããããããã¯å±ããŠããªãããå±ããŠããå Žåã¯ããã°ã©ã ãããŒãžã£ãŒãããŒããã©ãªãªãããŒãžã£ãŒãšã®é£æºãå³ããªãããããžã§ã¯ã掻åãæšé²ããããšãå¿
èŠã§ãã ãããã« ä»åŸã¯ãªã¢ãŒãç°å¢ã§ã®ãããžã§ã¯ããã¹ã¿ã³ããŒããšãªãã°ããŒãã«ãããžã§ã¯ãã®å²åãå¢ããŠããäžã§ããããžã§ã¯ããããžã¡ã³ããšãããå
±éèšèªãšããŠã®ãã¬ãŒã ã¯ãŒã¯ãæ¹æ³è«ãã®éèŠæ§ã¯ããé«ãŸããŸããåœç¶åžå Žãç€ŸäŒæ
å¢ã®å€åã®æ¿ããã«åãããŠããããžã§ã¯ããããžã¡ã³ãã®æ¹æ³è«ãã¢ããããŒããç¶ããŠããã§ãããããŸãã¯åºæ¬ãæŒãããŠãæ¥ã
ã®ãããžã§ã¯ãããããžã§ã¯ããããžã¡ã³ã掻åãžé©çšããŸãããã ä»åã¯ååãšããŠããããžã§ã¯ããããžã¡ã³ããšã¯äœãïŒãšãã倧æ ãã¿ãªãããšå
±æããŸããã æ¬¡åã¯ããPMã®åœ¹å²ãå¿
èŠãªæºåãã«ã€ããŠã話ãããŸãã The post ã第1åããããžã§ã¯ããããžã¡ã³ããšã¯äœãïŒ first appeared on Sqripts .
ã¯ãããŸããŠãQAã³ã³ãµã«ã¿ã³ãã®ããã§ãã ã·ã¹ãã ã®ã¹ããŒã¯ãã«ããŒããããã¯ããªãŒããŒãããå質ã£ãŠã©ããªã®ïŒãã£ãŠèããããšããããå®éçãªããŒã¿ã瀺ãã説æãããã®ãè¯ãã§ãããããå®éçããšã¯ããèããŸãããæ¹ããŠãœãããŠã§ã¢ã®å質ã説æããããã®å®éçãªææšãããããããæå³ã§ãè²ã
ãªãšããã§äœ¿ãããŠãããœãããŠã§ã¢åè³ªã®ææšãäžéšã§ã¯ãããŸãããã玹ä»ããŸãïŒ å質ã衚ãããã«äœ¿ãããå®éçææšãã¡ ãœãããŠã§ã¢éçºã®èŠç©ãªã©ã§å¿
èŠãªææšãªã© ã³ã¹ã ããã¯æ§ã
ãªæŽ»åã«å¯Ÿããå¿
èŠãªééãæéãªã©ã®äºã§ãããã¡ãã¯å質èªèº«ãè¡šãææšãšããŠäœ¿ãäºã¯ãªãã§ãããã³ã¹ãå¯Ÿå¹æãªã©æ§ã
ãªåœ¢ã§ç»å ŽããŸããç¹ã«ã·ã¹ãã éçºã³ã¹ãã¯å質ãäœãããã§ãå¿
èŠã«ãªããŸãã®ã§ãã£ãããšææ¡ã»ç¢ºèªããŠããããšã¯å¿
èŠã§ããã³ã¹ãã«è©²åœãããã®ã¯ééãæé以å€ã«å¿çã³ã¹ããèªç¥ã³ã¹ããèäœã³ã¹ãããããŸãããå®éææšãšããŠã¯äœ¿çšããããšã¯é£ãããšæããŸãã å·¥æ ãã¡ãã¯æé(æé)ã§ããããããå質èªèº«ã衚ããææšãšããŠäœ¿ãäºã¯äœããªãããšæããŸããããããããžã§ã¯ãã®æéã¯å質ã«åœ±é¿ãäžããéåžžã«éèŠãªèŠçŽ ã§ãã®ã§æç¢ºã«ããŠããããã§ãã ç¹ã«å·¥æã®é
ãããå»¶é·ããããªã©ã®å Žåãå質ã«ã圱é¿ãäžããŠããå¯èœæ§ãé«ãããããã®çç±ã確èªãã·ã¹ãã ãžã®åœ±é¿ãææ¡ããŠããããšã¯ãåŸã®æ¯ãè¿ããªã©ã§å¿
èŠã«ãªããŸãã å·¥æ° äººæã人æ¥ã人æ: å®éã«äœæã«é¢ãã£ãæéã®ããšã§ãããæéããªãœãŒã¹ãªã©ã®èŠçŽ ãããåãããŠç®åºããŸãã1人ã1æé皌åããã°ïŒ1人æã§ãããåŸã¯æãç®ã§ãã å¿è«ãããã ãã§å質ã®è¯ãæªããåããèš³ã§ã¯ãããŸããããåœåèšç»æã®å·¥æ°ã倧ããè¶
ãããããªå Žåã¯ãå質ã«äœãããã®èª²é¡ãæ±ããŠãããšèããããŸãã èŠæš¡ LOC (Line of Code): ã銎æã¿ã®ã³ãŒãã®è¡æ°ã§ããKLOC(ãã:1000è¡)ãMLOC(ã¡ã¬:100äžè¡)ããããŸããããããã¯æž¬å®æ¹æ³ã䜿çšèšèªãäœæè
ã®æžãæ¹ã§ããªãè¡æ°ãç°ãªãã®ã§ä¿¡é Œæ§ã«æ¬ ããäºããããŸãã®ã§ãç¶ç¶çã«æž¬å®ãåè³ªææšãšããŠäœ¿ãå Žåã³ãŒãã£ã³ã°èŠçŽã枬å®ããŒã«ãæŽåããŠãã®ææšã®æ°å€ã®ä¿¡é ŒåºŠãåäžãããå¿
èŠããããŸãã LOCååŸç°å¢ãæŽåãããŠããã°æã䜿ããããææšã ãšæããŸããæ¯éãšã掻çšããããšãæ€èšããŠã¿ãŠãã ããã FP (Function Point): å®è£
ããæ©èœã«åºã¥ããŠã·ã¹ãã èŠæš¡ãæ°å€åãããèšãããšç¥ããFPæ³ã«ããèŠæš¡ã®æž¬å®ã§ããISO/IEC 20926:2009ã§èŠæ ŒåãããŠããŸããFPèšæž¬ææ³ãšããŠãIFPUGæ³ãCOSMICæ³ããã«ãã¡ã³ã¯ã·ã§ã³ãã€ã³ãæ³ããã£ãŒãã£ãŒãã€ã³ãæ³ãMarkâ
¡æ³ãNESMAæŠç®æ³ãSPRæ³ãªã©ããããŸãã äžçªäœ¿ãããŠããIFPUBæ³ã«ããFPèšæž¬ã®ç²ŸåºŠãåäžãããã«ã¯ãèšèšä»æ§æžãæç¢ºã§ããå¿
èŠããããŸãããŸãæŽã«FPèšæž¬ãè¡ãã«ã¯å·¥æ°ããããããªã©ãããå©çšã¯ç°¡åã§ã¯ãããŸããããããããã°ã©ã ã«å®è£
ãããæ©èœãäžå®ã®æ¹æ³ã§æ°å€åããäºã¯ãåè³ªãæž¬ãäžã§ã¯ããªãæçšãªææšãšãªããŸãã åèãŸã§ã«IFPUGæ³ã䜿ã£ãFPã®èšç®æé ã¯ä»¥äžã®éãã§ã æ±ãããŒã¿ãå€éšå
¥å(EIïŒãå€éšåºå(EO)ãå€éšç
§äŒ(EQ)ãå
éšè«çãã¡ã€ã«(ILF)ãå€éšã€ã³ã¿ãã§ãŒã¹ãã¡ã€ã«(EIF)ã®ïŒã€ã®ã¿ã€ãã«åé¡ãã æ±ãããŒã¿ããšã«ããããŒã¿é
ç®æ°ããšãã®ããŒã¿ã«é¢é£ãããã¬ã³ãŒãçš®é¡æ°ããæ±ããããã«åŸã£ãŠãã®ããŒã¿ã®ãã¡ã³ã¯ã·ã§ã³ã®è€éããïŒæ®µé(äœãäžãé«)ã«åãã åããŒã¿ã«ããã¡ã³ã¯ã·ã§ã³ã®è€éãã«å¿ããéã¿ä¿æ°ãæããŠåèšããã·ã¹ãã å
šäœã®æªèª¿æŽFPãæ±ãã ãããŸã§ã®èšç®ãšã¯å¥ã«ã察象ãšããã·ã¹ãã ã®ç¹æ§ã14ã®èгç¹ããïŒïœïŒã®ïŒæ®µéè©äŸ¡ããåèšãã(ãã®åèšå€ãXãšãã) ã·ã¹ãã ç¹æ§ä¿æ°ïŒ 0.65 ïŒX à 0.01 ãèšç®ãã FP ïŒã·ã¹ãã ç¹æ§ä¿æ°Ãæªèª¿æŽFP UCP (Use Case Point): å®è£
ãããŠãŒã¹ã±ãŒã¹ããæ±ãããã€ã³ãã§ã·ã¹ãã èŠæš¡ãèšæž¬ããæ¹æ³ã§ãUML(Unified Modeling Language)ã§è¡šãããã·ã¹ãã ã®æ©èœçèŠæ±ãå©çšããŸãã æ¢ã«UMLã§éçºãããããžã§ã¯ãã§ã¯å°å
¥ã¯æ¯èŒç容æã ãšæããŸããéå»ã®å®çžŸæ
å ±ãªã©ãæã£ãŠããå Žåã«UCPãšä»ã®ææšãšæ¯èŒãããªã©ã§è²ã
ãªè§åºŠãã衚ãããšãã§ãããšé¢çœãã§ããã äœæ¥ã®äž»äœãšãªãã¢ã¯ã¿ãŒãšãŠãŒã¹ã±ãŒã¹ãæŽãåºããã¢ã¯ã¿ãŒãå©çšããŠãŠãŒã¹ã±ãŒã¹ãšã¢ã¯ã¿ãŒã®ã€ã³ã¿ãŒãã§ãŒã¹ã®è€é床ãïŒæ®µé(åçŽãæ®éãè€é)ã§è©äŸ¡ããŸã ã€ã³ã¿ãŒãã§ãŒã¹ãšãŠãŒã¹ã±ãŒã¹ã®ãã€ã³ããåèšããŠãUUCP (Unadjusted Use Case Point): æªè£æ£ãŠãŒã¹ã±ãŒã¹ã»ãã€ã³ãããšããŸã ã·ã¹ãã ã®æè¡çèŠå ä¿æ°è€é床ãšïŒãããžã§ã¯ããåãå·»ãç°å¢èŠå ã«é¢ããè€é床(ç°å¢çãªè€é床)ãè©äŸ¡ãããããUUCPã«åæ ãUCPãæ±ºå®ãã ç»é¢æ°ã垳祚æ°ããã¡ã€ã«æ°ããããæ° ãã®ãŸãŸç»é¢ã®ææ°ãªã©ã®æ°å€ã§ãããç»é¢ã垳祚ã«å«ãŸãã仿§ã®è€é床ã¯è¡šããŠããŸãããïŒããã«FPæ³ãªã©ã®å©çšãå¿
èŠãšãªããïŒåãªã衚瀺ã ãã®ç»é¢ãšãä»ç»é¢/æ©èœãšé£æºããããå
¥åé
ç®ã®å€ãç»é¢ããããŒã¿ãã§ãã¯ãå¿
èŠãªé
ç®ã®ä»ã«ãã¶ã€ã³äžã®è€éããªã©ã¯ãç»é¢æ°ã ãã§ã¯è¡šçŸã§ããŠããŸãããææšã®äžã€ã®åèã«ã¯äœ¿çšã§ãããããããŸããããå質ã説æããããã®ææšãšããŠã®äœ¿çšã¯é£ãããšæããŸãããããå®éã®èŠç©ã®æ®µéãªã©ã§ãç»é¢æ°ã垳祚æ°ããå
šäœå·¥æ°ãFPã®æŠç®è©Šç®ãã§ãããããŸã[JUASã¬ããŒã â»1 ]ãå®çžŸå€ãšã®å·®ç°ãªã©ã®æ¯èŒå¯Ÿè±¡ãèŠç©åèã®å©çšãªã©äœ¿ããã·ãŒã³ãå€ãã®ã§åéããäºããå§ãããŸãã å
šäœå·¥æ°ïŒäººæïŒïŒ 112.97 ïŒ 0.81 à ç»é¢æ° + 0.42 Ã åž³ç¥šæ° FP ïŒ 91.54 ïŒ 13.41 à ç»é¢æ° ïŒ 40.33 Ã åž³ç¥šæ° JFS (JUAS Function Scale): ã·ã¹ãã ã®èŠæš¡ãæšå®ããããã« JUAS ãç¬èªã«äœæããææšããç»é¢æ°ïŒåž³ç¥šæ°Ã2/3ãã§ç®åºãããæ¢åã®èŠç©ããæ¹æ³ã«æ¯ã¹ç°¡æã«èŠæš¡ãæšèšããããšãã§ããŸãã éå»ãç§ã¯ãã®ææšã䜿ã£ãçµéšã¯ãããŸãããææšãšãªããã®ãäœããªãå Žåã«ã¯åèãšããŠã¿ãŠãè¯ãããšæããŸãã ã¹ããŒãªãŒãã€ã³ã: æžç±ãã¢ãžã£ã€ã«ãªèŠç©ããšèšç»ã¥ãã ㌠䟡å€ãããœãããŠã§ã¢ãè²ãŠãæŠå¿µãšææ³ã â»2 ã§ã¯ããã¹ããŒãªãŒãã€ã³ããšã¯ããŠãŒã¶ãŒã¹ããŒãªãŒããã£ãŒãã£ãŒããã®ä»ã®äœæ¥ã®å€§ãããããããåäœã§ããã ã¹ããŒãªãŒãã€ã³ãã䜿ã£ãèŠç©ãã§ã¯ãã®ãããªãã²ãšãŸãšãŸãã®äœæ¥ã«å¯ŸããŠãã€ã³ããä»ããããã€ã³ãã®æ°å€ãã®ãã®ã¯ããŸãéèŠã§ã¯ãªããéèŠãªã®ã¯ãä»ã®äœæ¥ãšã®çžå¯Ÿå€ã ã2ãã€ã³ããä»ããããã¹ããŒãªãŒã¯ã1ãã€ã³ãã®ã¹ããŒãªãŒã®2åã®å€§ããã§ããã3ãã€ã³ãã®ã¹ããŒãªãŒã®3åã®2ã®å€§ãããšãªãã ã¹ããŒãªãŒãã€ã³ãã®æ°å€ã¯ãã¹ããŒãªãŒå
šäœã®èŠæš¡ããããããã¹ããŒãªãŒã®èŠæš¡ãå®çŸ©ããããã®æ°åŒã¯ååšããªãã ã¹ããŒãªãŒãã€ã³ãã«ããèŠç©ãã瀺ãå€ã¯ããã£ãŒãã£ãŒãå®è£
ããã®ã«å¿
èŠãªäœæ¥ãéçºå
容ã®è€éããéçºã«å
åšãããªã¹ã¯ãªã©ã枟ç¶äžäœãšãªã£ããã®ã§ããããšå®çŸ©ãããŠããŸãã ã¢ãžã£ã€ã«éçºã«ãŠããã¯ãã°ã«ã¹ããŒãªãŒãã€ã³ããèšå®ããã¹ããªã³ãã®äžã§äœæã§ããã¹ããŒãªãŒãã€ã³ãã®åèšãããã·ãã£ãšããŠå©çšãããŠãããããŒã ã®ã¹ããªã³ãå·¥æ°ïŒããã·ãã£ãšçè§£ããããšãã§ããŸãã ãœãããŠã§ã¢éçºã®äœæ¥ã«é¢ããææšãªã© ã¬ãã¥ãŒã«é¢ããææš ã¬ãã¥ãŒã¯ãã©ã®å·¥çšã§äœãã¬ãã¥ãŒããã®ãããŸãäœããã£ãŠã¬ãã¥ãŒãå®äºãšããã®ããæ±ºããŠå®æœããå¿
èŠããããŸãããã å·¥çšã«çµã¿èŸŒãŸããŠãããããšãã£ãŠåœ¢åŒã ã宿œããŠãæå³ã¯ãªãã§ããããã¬ãã¥ãŒã«ãã£ãŠåŸãããæ
å ±ã説æããŸãã ã¬ãã¥ãŒåæ°ãæé: ã¬ãã¥ãŒã®å®æœåæ°ãã®ã¹æéã§ãããŠã©ãŒã¯ã¹ã«ãŒã¬ãã¥ãŒãªã©ã¯åå è
ã®æ°ã ãã¬ãã¥ãŒæé(=å·¥æ°)ã¯å¢å ããŸããäŸãã°3人ã§3æéãããŠã¬ãã¥ãŒããããšã9人æã®ã³ã¹ããæ¶è²»ããŸãããã¬ãã¥ãŒææã®ãšã©ãŒä¿®æ£ã³ã¹ãããšãããã¹ãã§ãã°ãšããŠä¿®æ£ãããã³ã¹ãããæ¯èŒå¯Ÿè±¡ãšãªããã9人æããã倧ããªã³ã¹ããåæžãããŠããã°è¯ãèš³ã§ããã¬ãã¥ãŒã«æéããããããè¯ããšããäºã§ã¯ãªãããæ©æã«åé¡ãçºèŠããããšã§ã³ã¹ãåæžã«å¯äžãããããšãç®çãšãªããŸãã ã¬ãã¥ãŒå¯Ÿè±¡èŠæš¡: ã¬ãã¥ãŒå¯Ÿè±¡ãšãªãããã¥ã¡ã³ããããŒãžæ°ã§è¡šãããšãå€ãã£ãã§ãããããæè¿ã¯ã¬ãã¥ãŒã®å¯Ÿè±¡ãšãªãããã¥ã¡ã³ããwikiã ã£ãããNotionãMiroãªã©ã®SaaSã§äœæãããããšãå¢ããŠããããŒãžæ°ã§è¡šããªãäºãå€ããªããŸãããã¢ãžã£ã€ã«éçºã§ã¯ãæ©èœåäœã§ã¹ããŒãªãŒãã€ã³ãã䜿ãããšããããŸãã ãèšèšæžããšããããã¥ã¡ã³ãã«åããããã¬ãã¥ãŒã®å¯Ÿè±¡ç©ã®èŠæš¡ãé©åã«ææšãšããŠå©çšã§ããã°ãããšæããŸããææšãååŸããããšãç®çã§ã¯ãªãã®ã§ãã ã¬ãã¥ãŒå質ã¡ããªã¯ã¹: ã¬ãã¥ãŒå®æœã«ãŠæ€åºããææä»¶æ°ãå©çšããŠç²ŸåºŠãæž¬ãææšã§ãã ã¬ãã¥ãŒå·¥æ°å¯åºŠ = ã¬ãã¥ãŒæé ÷ ã¬ãã¥ãŒå¯Ÿè±¡èŠæš¡ (ãŸãã¯èŠæš¡) ã§ç®åºããŸãã çããšã¬ãã¥ãŒã®äžè¶³ãé·ããšã¬ãã¥ãŒå®æœæ¹æ³ã«èª²é¡ããããšæšæž¬ãããŸãã ã¬ãã¥ãŒææå¯åºŠ = ã¬ãã¥ãŒæææ° ÷ ã¬ãã¥ãŒå¯Ÿè±¡èŠæš¡ (ãŸãã¯èŠæš¡) ã§ç®åºããŸãã äŸãã°ãèŠæš¡ã倧ããã®ã«ã¬ãã¥ãŒæææ°ãå°ãªãå Žåã«ãããã¥ã¡ã³ãã®å質ãé«ããããªã®ããã¬ãã¥ãŒå®æœã§ææãã§ããŠããªãã®ãã確èªããããšã§ãåã¬ãã¥ãŒå€æãåŸå·¥çšã§ã®åè³ªäºæž¬ã«å©çšããããšãã§ããŸãã ã¬ãã¥ãŒææå¹ç ïŒ ã¬ãã¥ãŒææä»¶æ° ÷ ã¬ãã¥ãŒæé ã§ç®åºããŸãã ã¬ãã¥ãŒå·¥æ°ã«å¯ŸããŠã©ãã ãã®æææ°ã®å²åãããã®ãã瀺ããŠããŸããã¬ãã¥ãŒææå¯åºŠãšåãããŠå€æããããšã§ãããã¥ã¡ã³ãå質ãã¬ãã¥ãŒå®æœæ¹æ³ã®å€å®ãããããšãã§ããŸãã ãã¹ãã«é¢ããææš ãã¹ãã«ããæ€åºããäžå
·åæ°ã¯åè³ªãæž¬ãäžã§QAãšã³ãžãã¢ã«ãšã£ãŠéåžžã«éèŠãªèŠçŽ ã»ææšãšãªããŸãããã ããããããã°æ
å ±ã ãã§ã¯ãªãããã«å±æ§ãæ€åºå·¥çšãªã©ãäžå¯ãããäºã§æ·±ãåæããããšãå¯èœã«ãªããŸãã®ã§ãããã§ãããããŠèª¬æãããŸãã ãã¹ãã±ãŒã¹æ°: ä»¶æ°ã§è¡šããŸããã±ãŒã¹æ°ã¯å
容ã®ç²åºŠã«ãã£ãŠä»¶æ°ã®ãã¬ãçããèŠå ãšãªããŸããã±ãŒã¹ã«èšèŒãããã¹ã芳ç¹(確èªå
容)ã®ç²åºŠã§åãããããšã§ãã¬ã¯ãªããªãã§ãããã éçºããã»ã¹ã§å·¥çšãæç¢ºã«åããããŠããå Žåããã¹ãå·¥çšããšã«å®è¡ãããã¹ãã±ãŒã¹ãåãããŠãããšæããŸãã®ã§ãå·¥çšããšã«ãã¹ãã±ãŒã¹æ°ã枬å®ããŸãããããããã察象ãšãªãéçºå·¥çšã§ã®å質ã確èªããããšã«ã€ãªãããå·¥çšããšã«çްãã察çãæ€èšã§ããããã«ãªããŸãã äžå
·åæ°ãäžå
·å起祚æ°: ãããããã°æ°ã§ãããã¹ã宿œäžã«æ€åºãããã°ã®æ°ã¯ãããžã§ã¯ãå
ã§ç®¡çãããŠããŸãããã管çãããŠããªããªããã°èµ·ç¥šã®ç»é²é
ç®ãå«ããããã»ã¹ãäœããã£ã³ã¹ã§ããåŸã
ã®åæãèæ
®ããŠäœããŸãããã ãã¡ãããã¹ãã±ãŒã¹æ°ãšåæ§ã«å·¥çšããšã«æ€åºããããã°æ°ãèšæž¬ããŸããããããã§ããããã®å·¥çšã®åæã¯ããå®å
šãªãã®ã«è¿ã¥ãã§ãããããŸã起祚æ°ïŒãã°æ°ã§ã¯ãããŸããããŸããã¹ãã±ãŒã¹å€ã§æ€åºããããã®ããããŸãããããã®çç±ã«å質æ¹åã®çš®ãåãŸã£ãŠããŸãããããäžæã«äœ¿ãæ¹åã«å©çšããŸãããã å¯åºŠ ãã¹ãã±ãŒã¹å¯åºŠ = ãã¹ãã±ãŒã¹æ° ÷ èŠæš¡ ã§ç®åºããŸãã äžå
·åå¯åºŠ = äžå
·åæ° Ã· èŠæš¡ ã§ç®åºããŸãã äžèšã®2ã€ã®ææšã«ãããéçºã·ã¹ãã ã®å質ãšãã¹ãèªäœã®å質ã衚ãããšãã§ããŸãããã¹ãå¯åºŠãäœããäžå
·åå¯åºŠãé«ãå Žåã«æ³å®ãããã®ã¯éçºã·ã¹ãã ã®å質ã«ç矩ãããç¶æ
ã«ãªããŸãããã®éã¯ãã¹ãå¯åºŠãé«ããäžå
·åå¯åºŠãé«ãå Žåã¯ãã¹ãèªäœã®æ¹æ³ã«åé¡ããªããã確èªããå¿
èŠããããšæããŸãã ãŸãšã ãããžã§ã¯ãã«é¢ãã£ãQAãšã³ãžãã¢ããããã¯ããªãŒããŒããããžã§ã¯ããããŒãžã£ãŒã¯ãããã®å®éçææšãäžæã䜿ã£ãŠå質ã説æã§ããæ§ã«ãã©ãã䜿ãã®ããæç¢ºã«ããŠãææšã®éèšãåéãå¯èœã«ããªããã°ãããŸããããå質ãè¯ããªãããªã©æŒ ç¶ãšãã説æã§ã¯ã©ããã©ã®æ§ã«è¯ããªãã®ãåãããŸãããäœãæ¹åããã¹ããåãããªãã§ãããå®éçææšãç¥ããã©ã䜿ãã®ããèããŠã¿ãŠã¯ãããã§ããããããããããããã¯ãéçºã®ããã®äžå©ãšãªãã°ãšæããŸãã APPENDIX:åèè³æ â»1ãäžè¬ç€Ÿå£æ³äºº æ¥æ¬æ
å ±ã·ã¹ãã ã»ãŠãŒã¶ãŒåäŒ ãœãããŠã§ã¢ã¡ããªãã¯ã¹ â»2 æžç±ãã¢ãžã£ã€ã«ãªèŠç©ããšèšç»ã¥ãã ãŒäŸ¡å€ãããœãããŠã§ã¢ãè²ãŠãæŠå¿µãšææ³ãïŒMike Cohn èãå®äºåãè§è°·ä¿¡å€ªé èš³ããã€ããåºçã2009/1/29ïŒ The post å質ã説æããã«ã¯(å®éçææšç·š) first appeared on Sqripts .