ããã«ã¡ã¯ãããŠã³ã§ãã ç§ãæ®æ®µå¯Ÿå¿ããŠãããã¹ãæ¥åã®äžã«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 .
âã1人ç®QAããšããã¯ãŒããã2020幎ããããããèãããã«ãªããŸããã âãã¡ãããã以åãããçµç¹ã®äžã§1人ç®ã®QAãšããŠæŽ»åããããŠããæ¹ã¯ããããããŸããã ããããQAãšã³ãžãã¢ãšããè·çš®ã®èªç¥ãåºãŸã£ãããšã§ãããŸãŸã§QAå°éã®äººã¯å±
ãªãã£ããã©ããŠãã«ãèŠãããããšæãã¯ãããäŒç€Ÿãå€ããªããæ¡çšåéãå®éã«1人ç®QAãšããŠãä»äºãããæ¹ãå¢ããããã«æããŸããâ ç§èªèº«ããçŸåšã¯1人ç®ã®QAãšããŠè©Šè¡é¯èª€ãããŠãã身ã§ãã âããã§ãæ¬èšäºããã¯â1人ç®QAãšããŠã®ç«ã¡åãâã·ãªãŒãºãšããŠã1人ç®ã®QAã«æ±ããããŠããããšãå®éã«ãã£ãŠã¿ãŠå€§äºã ãšæã£ãããšãªã©ããäŒãããŠãããŸããâ ãªããæ¬èšäºã§ã¯ãQAãšã³ãžãã¢ããæããŠãQAããšè¡šçŸããŸãã 1人ç®QAããšã¯ãªã«ã âãŸãã¯ã¿ã€ãã«ã«ãããã1人ç®QAããããããäœãªã®ããããèããŠã¿ãŸãããã âäŒç€Ÿã®1人ç®ãªã®ããéšçœ²ã®1人ç®ãªã®ãããªã©ã¯çµç¹ã«ãã£ãŠãã©ãã©ã§ãããå
±éããã®ã¯ãåä»»è
ãååã®QAãå±
ãªãç¶æ
ãã«æ°ãã«å
¥ã£ãŠããQAãšã³ãžãã¢ãšããç¹ã§ãã åä»»è
ãååãå±
ãªããšããããšã¯ã ãã¹ããå質ä¿èšŒãéçºè
ã詊è¡é¯èª€ããªããè¡ã£ãŠããããã¹ããå質ä¿èšŒã®äœå¶ãæŽã£ãŠããªã QAã®å
·äœçãªåœ¹å²ãããŒã«èšå®ããªã ãšããããšã§ããã€ãŸãã1人ç®QAã¯ãããã¯ãã®ãã¹ããå質ä¿èšŒæ¥åãšäžŠè¡ããŠãããããæ±ºããã»ã€ããããšãæ
ãååšããšãããŸãã éèŠãå¢ããŠãã1人ç®QA âåé ã«ãè§Šããããã«ã2020幎ããããXïŒæ§TwitterïŒäžã§ã1人ç®QAã«é¢ããèšåãå¢ããŠããŠãããæ±äººãµã€ãã§ããQAç«ã¡äžãã¡ã³ããŒããã1人ç®QAããªã©ãåéããäŒæ¥ãç®ã«ããããã«ãªããŸããã âèŠå ã¯ããŸããŸèããããŸãããããããã®ãQAãšã³ãžãã¢ããšããããŒã«ã®èªç¥ã»å¿
èŠæ§ã®çè§£ãé²ãã§ããŠãããããåéããäŒæ¥ãå¢ããããšèããããŸããããã«äŒŽã£ãŠããä»ã¯QAãšã³ãžãã¢ãQAå°ä»»ã®çµç¹ã¯ãªãããã©ããæ°ãã«ç«ã¡äžãããããããšããäŒæ¥ãå¢ããŠããŸããã âQAããŒã ãã€ããããã§ã1人ç®ã®QAã¯ãšãŠãéèŠã§ãã âãã®ããŒã ãçµç¹ã®ã«ã«ãã£ãŒãåµãååšã§ããããŸãããçµç¹ã«ãããQAãå質ãžã®æåŸ
ãææ¡ãã€ã€ãŽãŒã«ãšã¿ã¹ã¯ãå
·äœåããªããé²ããŠããããšããé«é£åºŠã®ä»äºãæ
ãããšã«ãªããŸãã éçºçµç¹ãžã®ã¢ãããŒãã®ä»æ¹ âãããªé£åºŠã®é«ãä»äºãæ
ã1人ç®QAã«ã€ããŠãæ¬èšäºãšä»åŸã®é£èŒãéããŠããã€ãã®åãå£ã§åé¡ã詊ã¿ãŸãã âä»åã¯ã1人ç®QAã«ãããéçºçµç¹ãžã®ã¢ãããŒãã®ä»æ¹ã«ã€ããŠèããŸãã â1人ç®QAãæ°ãã«JoinããŠéçºçµç¹ãšäžç·ã«æ¥åãè¡ãå Žåãèãããããã¿ãŒã³ã¯å€§ãã2ã€ãããŸãã âãã¿ãŒã³1:ç¹å®ã®ããŒã ã«å
¥ã蟌ã ââã²ãšã€ã¯ãç¹å®ã®ããŒã ã«å
¥ã蟌ãã§ããã®ããŒã ã®å°ä»»QAãšããŠå®åãè¡ããã¿ãŒã³ã§ãã âéçºããŠãããããã¯ããäžã€ã ãã®ãšããã«1人ç®ã®QAãšããŠå
¥ãå Žåããå°ä»»QAãå±
ãªãç¶æ
ã§è€æ°ãããã¯ããéçºããŠãããã¡ã®1ãããã¯ãã«å°ä»»QAãšããŠå
¥ãå Žåãªã©ããããŸãã âç¹å®ã®ããŒã ã«1人ç®ã®QAãšããŠå
¥ãå ŽåããããŸã§ã®ãã¹ãã®ããæ¹ãå質ã«å¯Ÿããèãæ¹ãªã©ãææ¡ãã€ã€ããã®ããŒã ã»ãããã¯ãã«ãšã£ãŠæé©ãªå質åäžã®ããã»ã¹ãä»çµã¿ã¥ãããæ
ã£ãŠãããŸãã åæã«ããã®ãããã¯ãã®ãªãªãŒã¹ã«åããæ®æ®µã®ãã¹ããæ¹åæŽ»åãªã©ãè¡ããŸãã âããŒã ãçµç¹ã«ãã£ãŠæ±ããããããšã¯ããŸããŸã§ãããäŸãšã㊠âãã¹ãèšç»ã»åæã»èšèšã»å®è£
ã»å®è¡ã»å ±åãŸã§ã®ããã¹ãããã»ã¹ã«æ²¿ã£ããã¹ã掻åå
šè¬ ãã¹ãããã»ã¹ã®æŽå æ¢çŽ¢çãã¹ãã«ãã âãã°åºãâ ããŒã å
ã®äžå
·å管çãåæ èŠä»¶ãèšèšãåäœãã¹ãçã®ã¬ãã¥ãŒ éçºè
ã«å¯Ÿãããã¹ãææ³ãå質ã«ã€ããŠã®èãæ¹ã®ã¬ã¯ãã£ãŒ ãã¹ãèªåå âãªã©ããããŸãã âå®éã«1人ç®QAãšããŠJoinããæ¹ã«ãšã£ãŠã®ãã¿ãŒã³1ã®ã¡ãªããã¯ãéçºããŒã ãšå¯ã«é£æºã§ããããããã¯ãã®ä»æ§ãéå»ã®çµç·¯ãªã©ããã£ããã¢ããããç¯å²ãçããšããç¹ãæããããã§ãããã âç¯å²ã察象ãããçšåºŠçµãã€ã€ã1人ç®QAãšããŠã®åãçµã¿ãã¿ã¹ã¯ã¬ãã«ã«åè§£ã»åãçµã¿ãããããäžæ¹ã§ãããçšåºŠçæçãªææãæ±ããããããšããããŸãã ãã¿ãŒã³2:è€æ°ããŒã ã«åºãæµ
ãé¢ãã ããã²ãšã€ã¯ãè€æ°ã®ããŒã ããããã¯ãã«æšªæçã«é¢ãããå
Œåã®ãããªåœ¢ã§å€ããå質åäžã®æå©ãããããã¿ãŒã³ã§ãã âå°ä»»QAãå±
ãªãã£ãäŒç€Ÿã«ãããŠãçµç¹å
šäœãšããŠå質åäžã®åãçµã¿ãå§ããããã«1人ç®QAãšããŠå
¥ãå Žåãã瀟å
ã®QAæ¥åãå€éšã®äŒç€Ÿã«äŸé ŒããŠãããšããã«1人ç®ã®æ£ç€Ÿå¡QAãšããŠå
¥ãå Žåãªã©ããããŸãã âãã¡ãã¯ãã¿ãŒã³1ãšã¯ç°ãªããããçµç¹ã«ãã©ãŒã«ã¹ããåããæ±ããããåŸåã«ãããŸãã âããšãã° âçµç¹å
šäœã§ã®ãã¹ãã»QA掻åç¶æ³ã®ææ¡ ãQAãšã³ãžãã¢ãšã¯ãã®èªç¥åäž 2人ç®3人ç®ã®QAãšã³ãžãã¢ã®æ¡çšé¢é£æ¥å ãåè³ªåºæºããããã¹ãæšæºããªã©ãçµç¹å
šäœã«é¢é£ããã«ãŒã«ãåºæºã®å¶å®ããã³æ®å ããŒã ããŸããã ãã¹ãããã»ã¹ãäžå
·åã®ç®¡çã»åææ¹æ³ã®èšå® âãªã©ããããŸãã âãã¡ãã®ãã¿ãŒã³2ã®1人ç®QAãšããŠJoinããã¡ãªããã¯ããã¿ãŒã³1ãšæ¯ã¹ãŠããåºãç¯å²ã«æºãããããšãäžé·æçãªèŠç¹ã§å質åäžæœçãããŒã ããŸããã åå°ã¥ããã«çæã§ããããšãªã©ããããŸãã âäžæ¹ã暪æçã«é¢ããQAåŽãç©æ¥µçã«éçºããŒã ã«å¯ŸããŠåããããããŠãããªããšãå質åäžæœçããªããªãé²ãŸãªããªã©ãææãåºã¥ãããªã£ãŠããŸãé¢ãããã§ãããã â2ã€ã®ãã¿ãŒã³ãè¡ãæ¥ããå Žåã âå®éã«ç§èªèº«ãã1人ç®QAããšããŠä»äºãããŠããããã¿ãŒã³2ã«è¿ã圢ã§åããŠããŸãã â䟿å®äžãã¿ãŒã³1ãš2ããšããåºå¥ãããŸãããããããã¯å®å
šã«å¥ç©ã§ãã£ãããäžæ¹ãéžæãããããäžæ¹ã¯éžã¹ãªãããšãããã®ã§ããããŸãããç¶æ³ã«ãã£ãŠã¯ããããããåãæ¿ããããããçšåºŠäž¡ç«ãããããšããããšãèããããŸãã âããšãã°ç§ãæå±ããéšéã§ã¯ãè€æ°ã®éçºéšãååšããŠãããç§ãå
¥ç€ŸãããŸã§å°ä»»ã®QAã¯å±
ãŸããã§ããã ããã«1人ç®ã®QAãšããŠJoinããããã§ãããæåã«èããã®ããç¹å®ã®ããŒã ã«å
¥ã蟌ãã§åãïŒãã¿ãŒã³1ïŒã®ãšãåºãæµ
ãå
šäœãã¿ãïŒãã¿ãŒã³2ïŒã®ãšãã©ã¡ããããã ããïŒããšããç¹ã§ãã âæåã¯ãã¿ãŒã³2ãéžæããŠãåéçºããŒã ã«å¯ŸããŠå°ããã€é¢ãã£ãŠããŸããããããããã°ããè¡ã£ãŠã¿ããšãããªããªãå質åäžæŽ»åãåã«é²ãã§ããªã宿ããããããã¯ç¹å®ã®ããŒã ã§æåäºäŸãäœããªããšé£ãããã ãšèãããã¿ãŒã³1ã«è¿ã圢ã«å€æŽãããŸããã âãã®åŸãã²ãšã€ã®ããŒã ã«å
¥ã蟌ãã§æŽ»åããã€ã€ãããã§è¡ã£ãå
容ãä»ã®ããŒã ã«ãå
±æããããšã§ããããªããŠããããšå£°ããããŠããããããã«ãªããŸãããçµæãšããŠãå床ãã¿ãŒã³2ã®åœ¢ã«è¿ã¥ããŠããŸãã âããã¯ãããŸã§ãç§ã®äŸã§ããããããæ£è§£ãšããããšã¯ãããŸãããçµç¹èŠæš¡ãéçºããŒã ã®æåãªã©ã«å¿ããŠãã€ã©èããŠããããšã倧åã§ãã ã1人ç®QAããæŽ»èºããããã«ã2ã€ã®ãã¿ãŒã³ãããšã«èããŸããã âä»åã¯ã1人ç®QAã«ã€ããŠã®æŠèŠãšã1人ç®ãšããŠJoinããQAãéçºããŒã ã«é¢ãã£ãп޻åããŠããéã®2ãã¿ãŒã³ã«ã€ããŠã説æããŸããã âç¹å®ã®éçºããŒã ã«å
¥ã蟌ãå Žåãšãè€æ°ã®éçºããŒã ã«å¯ŸããŠå€ããé¢ããå Žåãçµç¹ã®ç¶æ³ãåéæã®èŠä»¶ãªã©ã«ãã£ãŠã©ã¡ããã®ãã¿ãŒã³ã«å®ãŸãããšãããã°ãã©ã¡ãããéžæãããè¡ãæ¥ããªããQA掻åãé²ããããšããããŸãã âããéžæã§ããå Žåã«ã¯ãéçºçµç¹ã®ãããŒãžã£ãŒãªã©ãšãã©ã¡ãã®ãã¿ãŒã³ã§ãããããäžç·ã«èããåæããããšã倧åã§ãã1人ç®QAãšããŠJoinããå Žåããããã¯1人ç®QAãè¿ãå
¥ããå Žåã¯ããããã®ãã¿ãŒã³ãé©åããèããŠã¿ãŠãã ããã The post 1人ç®QAã®äœçœ®ã¥ããšãéçºçµç¹ãžã®ã¢ãããŒãã®ä»æ¹ first appeared on Sqripts .
ã¯ãããŸããŠïŒ ãããã·ã¥ã§ãã çŸåšã®æ¥åã¯ã¢ãžã£ã€ã«QAãšããŠãã客æ§å
ã«åžžé§ããŠæ¥åãè¡ãªã£ãŠããŸãã 9/22ã« JaSST’23 Niigata ãéå¬ãããŸãããä»åããQAçµç¹ã«ä»²éãå¢ãããŠãããšãã«å€§äºãªããšããQAã¹ãã«ã¢ã»ã¹ã¡ã³ããšãªã³ããŒãã£ã³ã°ã§ä¹ãè¶ããå£ãšããããä¹ãè¶ããå£ãçãèªèº«ã®åžžé§å
ã«æ°èŠã¡ã³ããŒãé
å±ãããæã«OJTãšããŠåœ¹ç«ã€ããšãããã®ã§ã¯ãªãããšæãããªã³ã©ã€ã³ã§åå ããŠããŸããã ãã®äžã§ãèªèº«ã®çŸå Žã§åœ¹ç«ã€ãšæããã ãäºäŸçºè¡šã ãããã¯ã¢ãããããŠããã ããåŠã³ã®éšåãå
±æãããŠããã ããããšæããŸãã äºäŸçºè¡š äºäŸçºè¡šã¯ã ãQAã¹ãã«ã¢ã»ã¹ã¡ã³ããšãªã³ããŒãã£ã³ã°ã§ä¹ãè¶ãã å£ãšããããä¹ãè¶ããå£ããšé¡ããŠããããããšå·æº ååãã ïŒfreeeïŒãškenseiããš æ¬å€ 顿ãã ïŒfreeeïŒãç»å£ãããŸãããè¬æŒå
容ããåŸããïŒã€ã®åŠã³ãã以äžã«ãŸãšããŸãã åŠã³ ãã®ïŒïŒOP(ãªã³ããŒãã£ã³ã°ããŒãããŒ)ãšäžç·ã«èª²é¡ãšç®æšãæã£ãŠåãçµãã§ãã è¬æŒã¯ãä»å¹Žã®4æã«äžéå
¥ç€Ÿãããå·æºãããäœéšããfreee ã®ã¹ãã«ã¢ã»ã¹ã¡ã³ããšãªã³ããŒãã£ã³ã°ã«ã€ããŠã®è©±ããå§ãŸããŸããã ãªã³ããŒãã£ã³ã°ãšã¯ ãªã³ããŒãã£ã³ã°ãšã¯ãæ°å
¥ç€Ÿå¡ãã¯ãããäžéæ¡çšç€Ÿå¡ãªã©æ°ããçµç¹ã«å ãã£ã瀟å¡ã®æ©æé¢è·ãé²ããªãããäŒæ¥ã«ãšã£ãŠæçšãªäººæã«è²æããæœçã®ããšã§ãã ãªã³ããŒãã£ã³ã°ãšã¯ïŒäºäŸ5éžïœå®æœã®ãã€ã³ããã¡ãªããã解説 éå»ã«å·æºãããèªåãäœéšããŠããããšãšã®æ¯èŒãäžå¿ã«ä»¥äžã®3ç¹ã«ã€ããŠã話ããã ããŸããã ãããŸã§ã®çŸå Žãšæ¯èŒããŠããã£ãæ ãªã³ããŒãã£ã³ã°ã«å¯ŸããŠã®QAçµç¹ã®é°å²æ° ãªã³ããŒãã£ã³ã°ãåããäžã§å°ã£ãæ ãªã³ããŒãã£ã³ã°ã®é°å²æ°ã話ãããããŠè¯ãã£ããšã®ã話ããããŠããŸãããã°ã«ãŒããã£ãããæŽ»çšããŠåè¬è
仲éãå
茩瀟å¡ãžã®è³ªåããæãç°å¢ãçšæãããŠããã®ãè¯ãã£ãããã§ãã ãŸããå°ã£ããšãã«ãããããã£ãããšãšããŠãOP(ãªã³ããŒãã£ã³ã°ããŒãããŒ)ã®ååšããããšã®ããšã§ãããOPãšã¯ããªã³ããŒãã£ã³ã°ã宿œããåŽãåè¬è
ã²ãšãã²ãšãã®æ
åœã«ãªãå¶åºŠã§ããå·æºãããåè¬è
ãšããŠãäœããæãä»ãããããããæ©ãã§ãããšãã«ãOPã«èª²é¡ãç®æšãçžè«ã»å
±æã§ããç°å¢ããã£ãããšãè¯ãã£ããšã®ããšã§ããã ç§ã®çŸå Žã§ã¯å°ä»»ã®OJTã®æ
åœãèšããŠãããã詳ãã人ã«èããšãã£ãããšã«ãªããã¡ã«ãªã£ãŠããŸããOPã®ãããªååšãçŸå Žã§èšå®ããããšã§ã以äžã®æ¹åãå³ãããšèããŠããã®ã§ãä»åŸåãçµãã§è¡ããã°ãšæããŸãã çªå£ãäžå
åãããã®ã§æ°èŠã¡ã³ããŒã質åãããããªããå¿ççå®å
šæ§ãæ
ä¿ãããç¶æ
ã§æè²ãåããããšãã§ããããš å°ä»»æ
åœè
ã«ãšã£ãŠãåŸèŒ©ãæå°ããçµéšã®å Žãäžããããããš æããåŽãšæããåŽã§ãã£ããã³ãã¥ãã±ãŒã·ã§ã³ãåããªããäžæç¹ãå¿é
äºãä¹ãè¶ããŠããäºãã«æé·ããªããåŠãã§ãããç°å¢ãäœããããšæããŸãã åŠã³ ãã®ïŒïŒãªã³ããŒãã£ã³ã°ãå
šãŠåããããäžäººåãšããããã§ã¯ãªãã è¬æŒã®åŸåã¯å·æºããã®OPã§ãããæ¬å€ããã®æ
åœãšãªãããèªèº«ãå
¥ç€Ÿãããªã³ããŒãã£ã³ã°ã®äœå¶ãæŽã£ãŠããªãã£ããããšçŸåšãšã®æ¯èŒããããšãªã³ããŒãã£ã³ã°ã宿œããåŽã®èŠç¹ã«ã€ããŠä»¥äžã®3ç¹ãäžå¿ã«ã話ãããŠããã ããŸããã ã¹ãã«ã¢ã»ã¹ã¡ã³ãã»ãªã³ããŒãã£ã³ã°å°å
¥ä»¥åã®QAçµç¹ ãªã³ããŒãã£ã³ã°ã®èª²é¡ ã¹ãã«ã¢ã»ã¹ã¡ã³ãã®èª²é¡ ä»åã¯è©³ããè§ŠããŸãããã ã»ãªã³ããŒãã£ã³ã°å°å
¥ä»¥åã®çµç¹ã¯éçºããŒã ã«QAãâŒã£ãŠå¯ã«ã³ãã¥ãã±ãŒã·ã§ã³ãåããªãããã¹ããã§ããã¡ãªããããã£ããã®ã®ãåããŒã ã§ã®ãã¹ãã®ããæ¹ããã©ãã©ã ãšãã課é¡ããã£ãããã§ãã ã»ã¹ãã«ã¢ã»ã¹ã¡ã³ãã§ã¯ãèªå·±è©äŸ¡ã§å人æ¯ã®ãã¬ãçºçããŠããŸããªã©ã®èª²é¡ããã£ãããã§ãã å·æºããã®3ã€ã®ã話ã®äžã§äžçªå€§äºã ãšæããããšã¯ããªã³ããŒãã£ã³ã°åè¬è
ã®èª²é¡ãšããŠããããããããªã³ããŒãã£ã³ã°ãå
šãŠåããããäžäººåãšããããã§ã¯ãªããããšããéšåã§ããããã¯ãåŠãã ããšããã³ãºãªã³ã§å®æœããªããã°ãªããªãã¹ãã«ãšããŠèº«ã«ä»ããªããšããããšã§ãã ç§ã®çŸå Žã§ã¯OJTæé以éã¯å°ä»»ã®æ
åœè
ãä»ããããšããããŸããã§ãããããOJTæéåŸãåŒãç¶ãæ°èŠã¡ã³ããŒã®æ¥åã«ãµãæ
åœãä»ãããªã©ã®ãã©ããŒãç¶ç¶ããããšã§ãææãšæè²ãå¹çããå®è·µã§ããããã«ãªãã®ã§ã¯ãšèããŠããŸãã ãã¡ãããäžçªå€§äºãªããšã¯æ¬äººã®åŠç¿ææ¬²ãšç©æ¥µæ§ã«ãªããšæããŸãã ãŸãšã 以äžãäºäŸçºè¡šããåŸãåŠã³ãã玹ä»ãããŠããã ããŸããã ä»åãªã³ããŒãã£ã³ã°ã®è©±ãäžå¿ã«åãäžããããŠããã ããŸããããã¹ãã«ã¢ã»ã¹ã¡ã³ãã«ã€ããŠã æ¹¯æ¬ åããïŒfreee/ytte LabïŒã®åºèª¿è¬æŒã§åãäžããããŠããŸãã ãQAçµç¹ã«ä»²éãå¢ãããŠãããšãã«å€§äºãªããšããšé¡ããŠãQAçµç¹ã®æ¡å€§ãå³ãäžã§äººå¡å¢å ã«é©ããçµç¹äœãã®èšèšã«ã€ããŠã話ããã ããŠããŸãã 詳ããã¯ä»¥äžããåç
§ãã ããã JaSST’23 Niigata ã¬ããŒã åºèª¿è¬æŒ ã»ãã·ã§ã³ 1 ãQAçµç¹ã«ä»²éãå¢ãããŠãããšãã«å€§äºãªããšã ãªã³ããŒãã£ã³ã°ã«ã€ããŠã¯è²ã
ãªäŒç€Ÿã詊è¡é¯èª€ããŠåãçµãã§ãããšæããŸããåŒç€Ÿã§ãåãçµã¿ãè¡ãªã£ãŠãããŸãããæ°èŠã¡ã³ããŒã«ããè¯ãææãåºããŠãããããã«ããé
å±åŸã®ãµããŒãããã£ãããšè¡ãªã£ãŠãããããšæ¹ããŠæããŸããã ç¶ç¶çãªãµããŒããæåãè¡ãã«ã¯ãµããŒãåŽã®ã³ã¹ãé¢ãæèããªããã°ãªããŸããããæ°èŠã¡ã³ããŒãšããè¯ãææãåºãããã«åªåããŠãããããšæããŸãïŒ æåŸãŸã§èªãã§ããã ãããããšãããããŸããã The post ãªã³ããŒãã£ã³ã°ã®çŸå ޿޻çšã®ãã³ãèŠã€ããïŒïœJaSSTâ23 Niigata åå ã¬ããŒãïœ first appeared on Sqripts .
ããã«ã¡ã¯ïŒããã³ããšã³ããšã³ãžãã¢ã®ã€ããã§ãã ä»åã¯ãç§ãReactéçºã§æ®æ®µå©çšããŠããã¢ã¯ã»ã·ããªãã£ã®ãã§ãã¯ããŒã«ã«ã€ããŠã玹ä»ããããšæããŸãã ã¢ã¯ã»ã·ããªãã£ãšã¯ ã¢ã¯ã»ã·ããªãã£ãšã¯ãæ
å ±ãžã®ã¢ã¯ã»ã¹ãå
šãŠã®äººãå¹³çã«è¡ãããšãã§ããç¶æ
ãæå³ããŸãããŠã§ãã¢ã¯ã»ã·ããªãã£ã¯å
·äœçã«ã¯ãèŠèŠã»èŽèŠãªã©ã®é害ãæã€äººã
ããé«éœ¢è
ãªã©ããŠã§ããµã€ããã¢ããªã±ãŒã·ã§ã³ãå©çšããéã«ééããå¯èœæ§ã®ããå°é£ãè§£æ¶ããããšãç®æããŸãã Reactéçºã«ãããŠããã¢ã¯ã»ã·ããªãã£ã®ç¢ºä¿ã¯éèŠãªèгç¹ãšãªããŸãããã®èšäºã§ã¯ããã®å®çŸããµããŒãããäžéšã®ããŒã«ã玹ä»ããŸãã ã¢ã¯ã»ã·ããªãã£ã®ãã§ãã¯ããŒã« esl int-plugin-jsx-a11y Reactéçºã«ãããŠã¯ãã³ãŒãã£ã³ã°ã®åææ®µéããã¢ã¯ã»ã·ããªãã£ã®åé¡ãç¹å®ããããšãéèŠã§ãããã®äžå©ãšãªãã®ãESLintã®ãã©ã°ã€ã³ã§ãã eslint-plugin-jsx-a11y ã§ãã ãã®ãã©ã°ã€ã³ã¯ãReactã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãããJSXã«ãããã¢ã¯ã»ã·ããªãã£ã«ãŒã«ãæ€èšŒããŸããReactã³ã³ããŒãã³ãå
ã®JSXèŠçŽ ã«é¢é£ããã¢ã¯ã»ã·ããªãã£ã«ãŒã«ããã§ãã¯ããéçºè
ã«æœåšçãªã¢ã¯ã»ã·ããªãã£ã®åé¡ãèŠåãŸãã¯ãšã©ãŒãšããŠè¡šç€ºããŸãã äŸãã°ãimgèŠçŽ ã«alt屿§ãååšããªãå Žåãããã©ãŒã èŠçŽ ãã©ãã«ä»ããããŠããªãå Žåãªã©ãã¢ã¯ã»ã·ããªãã£ã«é¢ããåé¡ãæ€åºããŠãããŸãããã®ããŒã«ã䜿çšããããšã§ãã³ãŒãã®å質ãåäžããã€ã€ã¢ã¯ã»ã·ããªãã£ã®åé¡ãæ©æã«çºèŠã§ããŸãã axe-core axe-core ã¯ãDeque SystemsãéçºãããªãŒãã³ãœãŒã¹ã®ã¢ã¯ã»ã·ããªãã£ã®åé¡ã蚺æããããã®ã©ã€ãã©ãªã§ãããã©ãŠã¶ã®ããããããŒããŒã«ã®ã³ã³ãœãŒã«ã«ã¢ã¯ã»ã·ããªãã£éåã®èŠåã衚瀺ããããšã§ãéçºäžã«ãªã¢ã«ã¿ã€ã ã®ãã£ãŒãããã¯ãåŸãããŸãã å°å
¥æ¹æ³ã¯éåžžã«ã·ã³ãã«ã§ãã¢ããªã±ãŒã·ã§ã³ã®ã¡ã€ã³ã®ãšã³ããªãŒãã¡ã€ã«ã«ä»¥äžã®ããã«ã³ãŒãã远å ããã ãã§ãã Next.jsã®_app.jsã®äŸïŒ import React from 'react'; if (typeof window !== 'undefined' && process.env.NODE_ENV !== 'production') { const ReactDOM = require('react-dom'); const axe = require('@axe-core/react'); axe(React, ReactDOM, 1000); } function MyApp({ Component, pageProps }) { return <Component {...pageProps} />; } export default MyApp; éçºç°å¢ã§ã®ã¿axe-coreãæå¹åããŸãããã®ãããæ¬çªç°å¢ã§ã¯ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããŸããã axe Accessibility Linter axe Accessibility Linter ã¯ãã¢ã¯ã»ã·ããªãã£ããã§ãã¯ããããã®VSCodeæ¡åŒµæ©èœã§ãããã®æ¡åŒµæ©èœã¯ãäžèšã§ç޹ä»ããaxe-coreãããŒã¹ã«ããŠããŸããeslint-plugin-jsx-a11yãšåæ§ãã¢ã¯ã»ã·ããªãã£ã®åé¡ãèªåçã«æ€åºãããšãã£ã¿å
ã§çŽæ¥ãã£ãŒãããã¯ãæäŸããããšãã§ããŸãã Accessibility Insights for Web Accessibility Insights for Web ã¯ãMicrosoftãæäŸããŠããChromeãšEdgeã®æ¡åŒµæ©èœã§ãããã®ããŒã«ã¯ãã¢ã¯ã»ã·ããªãã£ã®åé¡ãèªåçã«æ€åºããä¿®æ£ãã€ã³ããã¬ã€ãã³ã¹ãªã©è±å¯ãªã¬ããŒãæ©èœãéããŠãéçºè
ãã¢ã¯ã»ã·ããªãã£ã®åäžã«åãçµãããšãã§ããŸãã çµãã㫠以äžãç§ãæ¥ã
ã®Reactéçºã«ãããŠæŽ»çšããŠããã¢ã¯ã»ã·ããªãã£ãã§ãã¯ã®ããŒã«ãããã€ã玹ä»ããŸããããããã®ããŒã«ãå©çšããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®ã¢ã¯ã»ã·ããªãã£åé¡ãæ©æã«æ€åºããå¯èœãªéãå€ãã®ãŠãŒã¶ãŒã«ãšã£ãŠäœ¿ããããã¢ããªã±ãŒã·ã§ã³ãéçºããããšãå¯èœã«ãªããŸãã ããããªãããããŒã«ã ãã§å®å
šãªã¢ã¯ã»ã·ããªãã£ãä¿èšŒããããšã¯å°é£ã§ããããŒã«ã®æŽ»çšã¯éèŠã§ããããããšåæã«ãã¢ã¯ã»ã·ããªãã£ã«ã€ããŠã®ç¥èãæ·±ããããšã倧åã§ããå
šãŠã®ãŠãŒã¶ãŒãå¿«é©ã«ã¢ããªã±ãŒã·ã§ã³ãå©çšã§ãããããæã
ã¯åŒãç¶ãåŠã³ãæ·±ããŠãããŸãããïŒ The post Reactéçºã«ãããã¢ã¯ã»ã·ããªãã£ã®ãã§ãã¯ããŒã«ã®çŽ¹ä» first appeared on Sqripts .
ãã®é£èŒã¯ãç»å ŽããŠ20幎ãéããæçæãè¿ãã€ã€ãããã¢ãžã£ã€ã«éçºãã解説ããŸããã¢ãžã£ã€ã«éçºã«ã€ããŠã¯ãäžã®äžã«ããããã®æžç±ãæ
å ±ãããµããŠããŸãããã¢ãžã£ã€ã«ã³ãŒããšããŠ10幎以äžã®çŸå Žçµéšãããšã«ããããããŠåŠã³çŽãããæ
å ±ãäžå¿ã«ãŸãšããŠãããŸãã 第10åç®ã®ããŒãã¯ãããšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã°ïŒXPïŒãã§ããååã¯äŸ¡å€ã®è§£èª¬ãããã®ã§ãä»åã¯ååããã©ã¯ãã£ã¹ã解説ããŸãã ãã®å
容ã¯Udemyã§å
¬éããŠãããªã³ã©ã€ã³ã³ãŒã¹ã çŸåœ¹ã¢ãžã£ã€ã«ã³ãŒããæããïŒåæ¥ã§çè§£ã§ããã¢ãžã£ã€ã«éçºãšã¹ã¯ã©ã å
¥éç·š ãã®å
容ãå
ã«ããŠããŸãã XPã®åå XPã®åå äžè¬çã«èªãããŠããXPã®ååã¯ã第1ç第2çã§å
容ãé²åããããã圱é¿ã§ãããã€ãçš®é¡ããããŸãããã£ãŠãã©ããæ¬ç©ããšãŠããããã«ããã®ã§ãä»åã¯WikipediaïŒ Extreme programming – Wikipedia ïŒã«ãŸãšãŸã£ãŠãããã®ãããŒã¹ã«è§£èª¬ããŠãããŸãã XPã®ååïŒ ãã£ãŒããã㯠ãŸãããã£ãŒãããã¯ãã§ãã顧客ããã®ãã£ãŒãããã¯ã ãã§ãªãããã¹ãã«ãããã£ãŒãããã¯ãå«ã¿ãŸããè¿
éãªãã£ãŒãããã¯ãåŸãããã«ãçããµã€ã¯ã«ã§ã©ãã©ããªãªãŒã¹ãç¹°ãè¿ãããããã¹ããèªååããŠãããããèªåã§ãã¹ãå®è¡ãããããŸããXPã¯è¿
éãªãã£ãŒãããã¯ããã£ãšãéèŠã ãšèããŠããŸãã XPã®ååïŒ ã·ã³ãã«ããåæãšãã æ¬¡ã«ãã·ã³ãã«ããåæãšãããã§ããã·ã³ãã«ãã¯XPã®äŸ¡å€ã«ãç»å ŽããŸããã ã·ã³ãã«ãªãã®ãè€éã«ããŠã¯ãªããŸãããè€éãªãã®ãã·ã³ãã«ã«è§£æ±ºããŠããã®ãéèŠã§ããçãæéã§å°ããéçºããã®ãã·ã³ãã«ãã«ã€ãªãããŸããå°ããã³ãã³ããªãªãŒã¹ãç¹°ãè¿ããŠãããŸãã XPã®ååïŒ å€åãå
容ãã æåŸã«ãå€åãå
容ãããã§ããè±èªã ãšãEmbracing changeããXPãç¥ã人ã«ãšã£ãŠã¯æåãªèšèã§ãããembraceãã¯æ±ãããããå
å²ãããåãå·»ããå
容ãããåãå
¥ãããšãã£ããç©æ¥µçã«åãå
¥ãããæå³ã«ãªããŸãã ãããŸã§ã®ããã»ã¹ã§ã¯å€åãã³ã³ãããŒã«ããããšããæ¹æ³ãåãããŠããŸããããããã§ã¯ãªãå€åãç©æ¥µçã«åãå
¥ããã®ãã¢ãžã£ã€ã«éçºã®å€§ããªç¹åŸŽã§ããå€åãå
容ããããšã§ãããæè»ã«éçºãé²ããŠãããããã«ãªãã®ãã¢ãžã£ã€ã«éçºã®ç®æãæ¹åæ§ã§ãã XPã®ãã©ã¯ãã£ã¹ æåŸã«XPã®ãã©ã¯ãã£ã¹ãèŠãŠãããŸãããã ãã©ã¯ãã£ã¹ã¯ç¶æ³ã«å¿ããŠå®æœããŠãããŸãããŸãããã©ã¯ãã£ã¹å士ãé¢ä¿ãåãéšåãããã®ã§ãããŸãã€ãªãããšå€§ããªå¹æãæºãããŸããããšãã°ã10åã§ãã«ããšåžžæçµåãäžç·ã«ããããšã§ãããã°ã©ã å士ã®çµåããã確å®ã«å®å
šã«è¡ãããŸãã XPã®ãã©ã¯ãã£ã¹ã¯ããããããã®ã§ãããçŸåšã§ã䜿ããè²è€ªããªãæè¡ãã©ã¯ãã£ã¹ãå€ãã§ããçè
èªèº«ããé¡§å®¢ã®æ¯æŽã§XPã®ãã©ã¯ãã£ã¹ãäžå¿ã«å°å
¥ããã±ãŒã¹ã¯å€ããããŸãã çŸåšã ãšãã³ãã¥ãã±ãŒã·ã§ã³ãããŒã éå¶ãäžå¿ã®ã¹ã¯ã©ã ãäž»æµãšãªããæè¡ãã©ã¯ãã£ã¹ãããããã«ãªã£ãŠããŸãçŸå Žãå€ãã§ãããã®çµæãã¢ãžã£ã€ã«éçºã倱æããã±ãŒã¹ãããã®ã§ãããã§ã¯ãã¡ãã£ãšã ã詳ãã解説ããŠãããŸãã XPã®ãã©ã¯ãã£ã¹ã¯åºç€ãšå¿çšã«åãããŠããŸãã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ å
šå¡ååž ã²ãšã€ãã¯ãå
šå¡ååžãã§ãã æè¿ã®ãªãã£ã¹ã ãšããŸããªããããããŸããããæã®ãªãã£ã¹ã ãšããŒãã£ã·ã§ã³ã«åºåããããããŠããŸãããããã¯ããã§å宀ã®ããã«äœ¿ããã®ã§ãéäžã§ããããšãã£ã䟿å©ãªç¹ããããŸããããœãããŠã§ã¢éçºã¯å
±åäœæ¥ãªã®ã§ãããŒãã£ã·ã§ã³ãæåéãå£ã«ãªã£ãŠããŸãå ŽåããããŸãã ãŸããããŒã ã¡ã³ããŒãããããå¥ã®å Žæã§åããŠããå Žåãã³ãã¥ãã±ãŒã·ã§ã³ãåãã«ãããªããŸããåããã«ã§ããã¢ãå¥ã§ã䌌ããããªåé¡ããããŸãã ç¹°ãè¿ããŸãããéçºã¯äººéã«ããå
±åäœæ¥ã§ãã®ã§ãå
šå¡ååžãšãããã©ã¯ãã£ã¹ã¯ã§ãããããåãçµãã§ãããšè¯ããšæããŸããé£ããå Žåã§ããéçºããŒã ã®å³¶ã«ã²ãšã€ã ãããžãã¹ã®åžãäœã£ãŠããã»ã»ã»ãšãããŠãæéããããšãã«ããã«ããŠããã£ãŠäœæ¥ã§ããããã«ããŠãããã»ã»ã»ãªã©ã®å¯Ÿå¿ãæå¹ã§ãã ããŒã ã®åº§åžé
眮ã¯ãããŒã ç«ã¡äžãæã«ããèããŠã¿ããšããã§ãããã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ ããŒã å
šäœ 2ã€ç®ã¯ãããŒã å
šäœãã§ãã ããããè·èœæšªæåããŒã ãã€ãããšããããšã§ããè·èœæšªæåããŒã ãšã¯ããããžã§ã¯ããæåã«å°ãããã®ãã¹ãŠã®ã¹ãã«ãç¥èãçµéšããã€äººéãéãŸã£ãããŒã ã§ãã è·èœæšªæåããŒã ãäœãã®ãé£ããçµç¹ã®å Žåã¯ãã¢ãžã£ã€ã«éçºããªããªãããŸããããªãã±ãŒã¹ãå€ãã§ãããããããããããŸããããè·èœæšªæçããŒã ãç«ã¡äžãããµãããããšãããã©ã¯ãã£ã¹ããããããè¡ãã°ããããŠãã®çŸå Žã¯ã¢ãžã£ã€ã«éçºãããŸãæ©èœãããããæ°ãããŠããŸãã ãŸãã¯ãè·èœæšªæåããŒã ãã§ããã ãäœããé£ããå Žåã¯ãå€éšã®ååãåŸãŠããã®æ©æŠãã§ããã ããªããã»ã»ã»ãšãã£ã察çãèããŠãããšè¯ãã§ãããã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ æ
å ±è±å¯ãªäœæ¥ç©ºé 3ã€ç®ã¯ãæ
å ±è±å¯ãªäœæ¥ç©ºéãã§ãã ããšãã°ãã¢ãžã£ã€ã«ããŒã ã¯ãå£ã«ãµããã貌ãä»ããŠè°è«ãããããã¯ã€ãããŒãã«æ°ããã¢ãŒããã¯ãã£ã®ãã©ããå³ãæžãããããŠãæ
å ±è±å¯ãªäœæ¥ç©ºéãäœã£ãŠãããŸãã ããã«ãããšãããã¢ã«ã³ãŒããŒã¡ãŒã«ãŒããããŠããã£ãŠéè«ç©ºéãäœã£ãããããã«ããã€ããããŠéãŸããããããããã工倫ããããããŸãã ç§èªèº«ããéçºããŒã ã®åº§åžã®è¿ãã«ãããã€çœ®ãå ŽãããããããŸããããã¯ããã€ç¥ç€Ÿãªã©ãšåŒã°ãããã©ã¯ãã£ã¹ã§ãã¡ã³ããŒã¯ãããªé¡ã®ãéãã賜éç®±ã«å
¥ããŠããèåããã¹ãŸãã賜éç®±ã®ãéã䜿ã£ãŠãèåãè£å
ããã®ãåã®åœ¹ç®ã§ããã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ 掻æ°ã®ããä»äº 4ã€ç®ã¯ã掻æ°ã®ããä»äºãã§ãã第1çã ãšãé±40æéåŽåããšããååã®ãã©ã¯ãã£ã¹ã§ããã ã¢ãžã£ã€ã«ãããã§ã¹ãã«ããããŸãããæç¶å¯èœãªéçºãéèŠã§ãããã£ãŠãXPã§ã¯é±40æéå€åãããŒã¹ãšããŠããã£ããäŒæ¯ãåãããã«ããŠããŸããã ããããŸãã®ããšã®ããã«æããããããŸããããæã¯æ®æ¥ã§ã«ããŒã暪è¡ããŠããã®ã§ãæç€ºçã«ãããŒæ®æ¥ããŒããäœãã®ãæã§ãã ãã ãæ®æ¥ãã ããšããããã§ã¯ãããŸãããå Žåã«ãã£ãŠã¯ãå¿
èŠãªãšããããã¯ããªã®ã§ããããšããŠãç¡çã®ãªãæ¹æ³ããšããã¡ã³ããŒãçŽåŸã®äžã§åããç°å¢ãäœãã®ãéèŠã ãšæããŸãã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ ãã¢ããã°ã©ãã³ã° 5ã€ç®ã¯ããã¢ããã°ã©ãã³ã°ãã§ããéç§°ãã¢ããã¯ãæåãªãã©ã¯ãã£ã¹ã§ãããè³åŠãåããããã©ã¯ãã£ã¹ã§ããããŸãã ãã¢ã§ããã°ã©ãã³ã°ãããã®ã§ãéçºéã¯2åã®1ã«ãªããŸãããã ãéæè°è«ãè¡ããªããã³ãŒãã£ã³ã°ããã®ã§ãã¬ãã¥ãŒã®ã³ã¹ããæžããããçµå±ãã¡ãã®ã»ããå¹çãè¯ãã£ããããŸãããŸãããã¢ã§äœæ¥ããããšã§ãç¥èãçµéšã¯åã®ã¹ããŒãã§åŸãããããã«ãªããŸãã ãã¢ããã®çç£æ§ã«ã€ããŠã¯ãéå»å€ãã®è°è«ãè¡ãããŠããŸãããå°ãªããšãããã£ãšãã¢ãããã§ããªããŠããæ°ããã¡ã³ããŒãã¯ãã£ãŠãããšãããé£ããå®è£
ããããšããªã©ã«ããŒã£ãŠããã¢ãããéšåçã«æŽ»çšã§ããŸãã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ ã¹ããŒãªãŒ 6ã€ç®ã¯ãã¹ããŒãªãŒãã§ãããŠãŒã¶ãŒã¹ããŒãªãŒãšåŒã°ãããããŸãã ã¹ããŒãªãŒã®ç¹åŸŽã®ã²ãšã€ã¯ãèŠç©ããããã°ããã·ã³ãã«ã«è¡ããããšã§ãããã£ãŠãå¿
ç¶çã«ã¹ããŒãªãŒã¯ãã§ããã ãå°ããäœããªããã°ãªããªããªããŸãã1000ããŒãžã®èŠä»¶å®çŸ©æžãããã1æã®ã«ãŒãã«æžããããéã®ã¹ããŒãªãŒãXPã¯ãã€ãããŸãã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ 1é±éãµã€ã¯ã« 7ã€ç®ã¯ã1é±éãµã€ã¯ã«ãã§ãã第1çã§ã¯èšç»ã²ãŒã ãšãããã©ã¯ãã£ã¹ã§ããã ã¢ãžã£ã€ã«éçºã§ã¯ã€ãã¬ãŒã·ã§ã³ïŒã¹ã¯ã©ã ã ãšã¹ããªã³ãïŒãšåŒã°ããçããµã€ã¯ã«ã§éçºãè¡ããŸããæžç±ã¯åœå2ã3é±éãæšå¥šãããŠããŸãããã第2çã§ã¯1é±éã«ãªã£ãŠããã®ãè峿·±ãç¹ã§ããããçãæéã§ãªãªãŒã¹ãç¹°ãè¿ããŠããããšãããããŠããã®ãããããŸããã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ ååæãµã€ã¯ã« 8ã€ç®ã¯ãååæãµã€ã¯ã«ãã§ãã çããµã€ã¯ã«ã§éçºãè¡ããŸãããäžé·æçãªèšç»ã倧åã§ããååæãã€ãŸãäžã¶æãããã®æéã§å€§ããªç®æšã®èª¿æŽãè¡ã£ãŠãããŸãã é·æçãªèšç»ã«ã€ããŠã¯ãçŸå Žã«åãããŠé·ãã調æŽãããšè¯ããšæããŸãããã ããé·ãèŠç©ãã£ãŠãã1幎ãã2幎ããããéçã ãšæããŸããæå³ã®ããç¯å²ã§èšç»ãç«ãŠãŠãããŸãããã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ ããšã 9ã€ç®ã¯ãããšããã§ããããšãã§æåãªãã®ãšããŠã¯Googleã®20ïŒ
ã«ãŒã«ããããŸãã ããããšãè©°ã蟌ãã§ãã倧æµã¯ããŸãçµãããŸãããã©ããããŸããããªãããšããæ¯åã®ã€ãã¬ãŒã·ã§ã³ã§è¡ããšã©ãã©ãèŸããªã£ãŠããŸãããã£ãŠãããçšåºŠã®ããšããèšãããã®åé¡ã解決ããŠãããŸãã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ 10åãã«ã 10çªç®ã¯ã10åãã«ããã§ãã ã·ã¹ãã ã®èŠæš¡ã«ãã£ãŠå€ãã£ãŠãããããããŸããããããã§ã¯10åãšããç®å®ãèšå®ããŠããŸãã10å以å
ãšããå¶éãããããšã§ãå®è¡åæ°ãç¶æãããããªããŸãããæéãé·ããªã£ãŠããŸã£ããšãã«æ°ãã€ããŸãã ãã«ãæéã¯çãã«è¶ããããšããããŸãããæéã«ã€ããŠã¯ãèªåãã¡ãåŸ
ãŠãæéãèšå®ããŠããããšæããŸãã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ åžžæçµå 11çªç®ã¯ãåžžæçµåãã§ãã ããã¯ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ïŒCIïŒã§ããæžç±ã§ã¯2ã3æéããšã«çµåãšãã¹ããè¡ããšãããŸãããæè¿ã ãšãœãŒã¹ãã³ãããããããèªåã§CIãåãæ¹æ³ããšã£ãŠããæãå€ããšæããŸãã 倧æµã®å Žåãåé¡ã¯çµåéšåã«ãããŸãããã£ãŠãåžžæçµåããŠããã°ããã®åé¡ã«ããããã€ããããã«ãªããŸãããããCIãå©çšããã¡ãªããã§ãã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ ãã¹ããã¡ãŒã¹ãããã°ã©ãã³ã° 12çªç®ã¯ããã¹ããã¡ãŒã¹ãããã°ã©ãã³ã°ãã§ãããã¹ããã¡ãŒã¹ããšãã¹ãé§åéçºã¯ãè³åŠäž¡è«ãèµ·ãããããã©ã¯ãã£ã¹ã§ãã 倱æãããã¹ãããŸãæžãããã¹ãã倱æããªãããã«ã³ãŒããä¿®æ£ããŠãããã©ã¯ãã£ã¹ã§ããã¯ãããããã¹ããã¡ãŒã¹ãã§è¡ãã®ãé£ãããªããã³ãŒããšãã¹ããåæã³ãããããã«ãŒã«ããå§ããŠããããšæããŸãããªãã«ãããèªåãã¹ãã¯ã¢ãžã£ã€ã«éçºã«å¿
é ã®æè¡ãã©ã¯ãã£ã¹ã§ãã XPã®åºç€ãã©ã¯ãã£ã¹ïŒ ã€ã³ã¯ãªã¡ã³ã¿ã«èšèš 13çªç®ã¯ãã€ã³ã¯ãªã¡ã³ã¿ã«èšèšãã§ãã第1çã§ã¯ã·ã³ãã«ãªèšèšãšãããã©ã¯ãã£ã¹ã§ããã ããã¯èª¬æãé£ãããã©ã¯ãã£ã¹ã§ããããã£ãããããšãã¡ãã£ãšãã€èšèšããŸãããã§ãããã®çç±ã¯ãå
šéšããŸãšããŠèšèšããã®ã¯ã³ã¹ãããããããã§ããã¡ãã£ãšãã€èšèšããã°ãããŸæ±ºããªããŠãè¯ãããšãããããããŸã§å
å»¶ã°ãããŠããããŸã§ã«åŸãæ
å ±ã䜿ã£ãŠããšã§æ±ºããããŸããå
å»¶ã°ããããŸãäœ¿ãæ¹æ³ã§ããããã¯ããšã§è§£èª¬ãäºå®ããŠãããªãŒã³ãœãããŠã§ã¢éçºã«ããæçµè²¬ä»»æç¹ããšãã䌌ããããªèšèãã§ãŠããŸãã ãããŸã§åºç€ãã©ã¯ãã£ã¹ã解説ããŠããŸãããæ¬¡åã¯å¿çšãã©ã¯ãã£ã¹ã®è§£èª¬ãè¡ããŸãã é£èŒäžèЧ 第1åïŒã¢ãžã£ã€ã«éçºã®éå»ãçŸåšãæªæ¥ãç¥ããïŒ ç¬¬2åïŒå£°ã«åºããŠèªã¿ããã¢ãžã£ã€ã«ãããã§ã¹ã 第3åïŒåŸæ¥åéçºãšã¢ãžã£ã€ã«éçºã®éãããã®ïŒ 第4åïŒåŸæ¥åéçºãšã¢ãžã£ã€ã«éçºã®éãããã®ïŒ 第5åïŒã¢ãžã£ã€ã«éçºã®ãããã誀解ãè§£ããŠãããïŒ ç¬¬6åïŒäžçäžã§å€§äººæ°ã®ç§å¯ã«è¿«ãïŒã¹ã¯ã©ã ã䜿ã£ããœãããŠã§ã¢éçº ç¬¬7åïŒãããããã§ãããã«ããã¹ã¯ã©ã ããŒã ã®è²¬ä»» 第8åïŒã¹ã¯ã©ã ã€ãã³ãã®å®è·µæ¹æ³ 第9åïŒãšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã°ãšãã®äŸ¡å€ The post 第10å ãšã¯ã¹ããªãŒã ã»ããã°ã©ãã³ã°ã®ååãšåºç€ãã©ã¯ãã£ã¹ first appeared on Sqripts .
ããã«ã¡ã¯ãèªåãã¹ããšã³ãžãã¢ã®ãããã§ãã 2023幎8æã«LogiGear瀟ã®èªåãã¹ãããŒã«ãTestArchitectããã¢ãã€ã«ã¢ããªã®ãã¹ãã«å¯Ÿå¿ããŸãããä»åã¯ãã®æ©èœã®æŠèŠã玹ä»ããŸãã TestArchitectãšã¯ ã TestArchitect ãã¯AGESTã®ã°ã«ãŒãäŒç€Ÿã§ããLogiGear瀟ãéçºããèªåãã¹ãããŒã«ã§ãã10幎以äžã®éçšå®çžŸããããŸããåœåã¯ç¹å®ã®é¡§å®¢ã®èŠæã«æ²¿ã£ãŠéçºããããªã³ããã³ãããŒã«ã§ããããæ©èœè¿œå ãšæ¹åãç¹°ãè¿ããŠæ±çšæ§ã®é«ã補åã«é²åããŸãããçŸåšãç©æ¥µçã«éçºãé²ããããŠããŸãã 2023幎8æã«ã¢ãã€ã«ãã€ãã£ãã¢ããªã®ãã¹ãæ©èœã远å ( v9.3 )ãããããšã§ãæ°ããèªåãã¹ãããŒã«ã®äžã§ã察å¿ã§ãããã¹ãç¯å²ãåºãããŒã«ãšãªããŸãããã¬ã³ãŒãæ©èœãå©çšããç°¡åãªèªåãã¹ããããã»ãããŒã«ãšã®é£æºãã¹ã¯ãªãããå©çšããè€éãªèªåãã¹ããŸã§äœæã§ããé©çšç¯å²ã®åºãããŒã«ã§ãã TestArchitectã®ç¹åŸŽ TestArchitectã®ã¡ãªãã ããŒã¯ãŒãé§åãšè±å¯ãªçµã¿èŸŒã¿ã¢ã¯ã·ã§ã³ã§å®è£
ãšã¡ã³ããã³ã¹ã«ãããã³ã¹ããå°ãªãããã¹ãã³ãŒãã®å¯èªæ§ãé«ãããã¬ãã¥ãŒã®ã³ã¹ããæžããããšããã¡ãªããããããŸãããã¹ã察象ãWindowsãã€ãã£ãã¢ããªããã©ãŠã¶ã®ä»ãã¢ãã€ã«ãã€ãã£ãã¢ããªïŒAndroidã¢ããª/iOSã¢ããªïŒã«ã察å¿ããŠãããããä»ã®èªåãã¹ãããŒã«ãšæ¯ã¹ãŠãå¹
åºãéçºããŒã ã§å©çšå¯èœã§ãã åäœç°å¢ TestArchitectã¯Windows PCã§åäœããŸãã Windows 10,11 â»ãã®ä»åäœç°å¢ã¯èªåå察象ã飿ºããããŒã«ã«ãã£ãŠç°ãªããŸãã詳ããã¯å
¬åŒããã¥ã¡ã³ãã Supported platforms ãããåç
§äžããã ãã¹ã察象 Webãã©ãŠã¶ïŒChromeãEdgeãFirefoxãIEïŒ Windowsãã€ãã£ãã¢ã㪠Androidãã€ãã£ãã¢ã㪠iOSãã€ãã£ãã¢ããª äž»ãªæ©èœ ããŒã¯ãŒãé§ååãã¹ã TestArchitectã¯ããŒã¯ãŒãé§ååãã¹ããæ¡çšããŠããŸããæäœå
容ãã·ã³ãã«ãªããŒã¯ãŒãã§èšè¿°ã§ããããå¯èªæ§ãé«ããã¹ããäœæã§ããŸãããŸãããã¹ãã®ä¿®æ£ã容æã«ãªããšããå©ç¹ããããŸãã ã¬ã³ãŒãæ©èœ æäœããå
容ãèšé²ããŠãã¹ãã³ãŒããšããŠå©çšã§ããããã誰ã§ãç°¡åã«ãã¹ããäœæã§ããŸããèšé²ãããã¹ãã¯ç°¡æœãªUIã§è¡šç€ºããç·šéã容æã§ãã â»v9.3ã§ã¯ãWebãã©ãŠã¶ãWindowsã¢ããªãã¹ããã¬ã³ãŒãæ©èœã«å¯Ÿå¿ããŠããŸããã¢ãã€ã«ã¢ããªãã¹ãã«ã€ããŠãéçºäžã§ãã ããããæäœã«å¯Ÿå¿ããã¢ã¯ã·ã§ã³ TestArchitect㯠èšå€§ãªã¢ã¯ã·ã§ã³ ãå®çŸ©ãããŠããŸãããã¹ãã§å¿
èŠãªæäœã¯ãããã®ã¢ã¯ã·ã§ã³ãçµã¿åãããããšã§å®çŸå¯èœã§ãããŠãŒã¶ãŒãèªåã§éçºããå¿
èŠã¯ãããŸããã ããã°ã©ãã³ã°èšèªãå©çšå¯èœ ãã¹ãã¯ããã°ã©ãã³ã°èšèªã§ã«ã¹ã¿ãã€ãºããããšãå¯èœã§ããæ¢ã«ããã°ã©ãã³ã°èšèªã§å®è£
ãããã¹ããããå ŽåããããTestArchitectã®ãã¹ãã«çµã¿èŸŒãããšãã§ããŸãã å©çšå¯èœèšèª Java Python C# ãã®ä»ãç»åèªèæ©èœãä»ç€ŸããŒã«ãšã®é£æºæ©èœãèªç€Ÿç«¯æ«ãå©çšå¯èœãDBãšé£æºããããŒã¿é§ååãã¹ããã§ãããªã©ãæ§ã
ãªãªãŒããŒã«å¯Ÿå¿ã§ããæ©èœãåããŠããŸãã ã¢ãã€ã«ã¢ããªãã¹ãæ©èœ ãã¹ãç°å¢ã®æ§æå³ TestArchitectã®ã¢ãã€ã«ã¢ããªãã¹ãæ©èœã¯AppiumãµãŒããŒãå©çšããŠåäœããŸããææã¡ã®ç«¯æ«ã®ã»ããRemote TestKitãªã©ã®ç«¯æ«ã¯ã©ãŠããµãŒãã¹ãå©çšå¯èœã§ãã AppiumãµãŒããŒãä»ããŠæäœãããããiOS端æ«ããã¹ãããå Žåã¯Xcodeãã€ã³ã¹ããŒã«ããMacãå¿
èŠã§ãã äœæã§ãããã¹ãã®äŸ TestArchitectã¯AndroidãšiOSã亀äºã«æäœããããè€æ°ã®ç«¯æ«ãåãæ¿ããªããæäœããããšãã§ããŸããAndroidãšiOSã§é³å£°é話ãè¡ããã¹ããã3端æ«ä»¥äžã§ã¡ãã»ãŒãžã®ããåãããããã¹ããªã©ãå®è£
ããããšãã§ããŸãããã®ãããªè€éãªæäœã§ãçµã¿èŸŒã¿ã¢ã¯ã·ã§ã³ãçšæãããŠããããã³ãŒãã£ã³ã°ã®å¿
èŠã¯ãããŸããã ãŸããã¢ãã€ã«ã¢ããªãWindowsãã©ãŠã¶ãWindowsã¢ããªãªã©ãåãæ¿ããŠæäœããã¯ãã¹ãã©ãããã©ãŒã ãã¹ããäœæã§ããŸããã¢ãã€ã«ã¢ããªã§ç»é²ããæ
å ±ãWindowsã®ããŒã¿ããŒã¹ã¢ããªã§ç¢ºèªããããšãã£ããã¹ããäœæå¯èœã§ãã ãã¹ãäœæã®æé iOS端æ«ã§åçãæ®åœ±ãããã¹ããäœæããæé ã玹ä»ããŸãã 端æ«ãžã®æ¥ç¶ TestArchitectã®ãã€ã³ã¿ãã§ãŒã¹ãã¥ãŒã¯ãŒãæ©èœã«æ¥ç¶ãã端æ«ã®æ
å ±ãå
¥åããŠãæ¥ç¶ããã¿ã³ãã¯ãªãã¯ããŸãã èŠçŽ ã®ååŸ ãã©ãŒç»é¢äžã§ååŸããã察象ãã¯ãªãã¯ãããšèŠçŽ ã®ããããã£ã衚瀺ãããŸããèŠçŽ ã®æ€åºã«å©çšãããããããã£ã«ãã§ãã¯ããããŠä¿åããã ãã§ååŸãå¯èœã§ãã ä¿åãã¿ã³ãæŒããšãTestArchitectã®ã€ã³ã¿ãŒãã§ãŒã¹ã«ååŸããèŠçŽ ã衚瀺ãããŸãã ãã¹ãã³ãŒãã®äœæ çµã¿èŸŒã¿ã¢ã¯ã·ã§ã³ãšååŸããèŠçŽ ãå©çšããŠãã¹ããäœæããŸããExcelã©ã€ã¯ãªUIã§ãããããã¹ã¯ãªããèšèªã§äœæãããã¹ãã±ãŒã¹ãããåããããããã¹ãã³ãŒããäœæã§ããŸããèŠçŽ ã®ååã«ã¯è±æ°å以å€ã«æ¥æ¬èªãå©çšå¯èœã§ãã ãã¹ãã®å®è¡ãšçµæã¬ããŒã ãã€ã³ã¿ãã§ãŒã¹ãã¥ãŒã¯ãŒããå©çšããæãšåæ§ã«æ¥ç¶å
ã®ç«¯æ«æ
å ±ãå
¥åããã ãã§å®è¡ã§ããŸãã ãã¹ãçµæã¬ããŒãã¯html圢åŒã§åºåãããŸãã倱ææã ãã§ã¯ãªããæäœæ¯ã«ã¹ã¯ãªãŒã³ã·ã§ãããèªåçã«æ®åœ±ããããã«èšå®ããããšãã§ããŸãããããã®ã¹ã¯ãªãŒã³ã·ã§ããã¯æäœç®æãèµ€ãäžžã§å²ãŸãã確èªç®æã¯èµ€ãæ ã§å²ãŸããŠããŸãããã¹ãã®å
容ãåããããããçµæã®ç¢ºèªãã¹ã ãŒãºã«è¡ãããšãå¯èœã§ãã ã»ã«ã¡ã©ã¢ããªãtapããååŸã§ã¹ã¯ãªãŒã³ã·ã§ãããæ®åœ±ããå Žåã®ã¬ããŒã ã»æäœã確èªç®æã¯èµ€ãããªã©ã§æç€ºãããŸãã äœ¿çšæ ç§ã¯Appiumãšããã°ã©ãã³ã°èšèªã®Pythonãå©çšããŠãã«ã¹ã¯ã©ããã®èªåãã¹ããäœæããçµéšããããŸãããããšæ¯èŒãããšãTestArchitectãå©çšããèªåãã¹ãã«ã¯å€ãã®ã¡ãªããããããšæããŸãã ãã¹ãã³ãŒããéãäœæã§ãã ãã«ã¹ã¯ã©ããã§å®è£
ãããšãã¯Appium Inspectorã§èŠçŽ ãååŸããŠã³ããã§ã³ãŒãã«åŒµãä»ããäœæ¥ãäœåãç¹°ãè¿ãå¿
èŠããããŸããããTestArchitectã¯ã€ã³ã¿ãŒãã§ãŒã¹ãã¥ãŒã¯ãŒã§ã¹ããã®ãã©ãŒç»é¢ãã¯ãªãã¯ããã ãã§ã€ã³ã¿ãŒãã§ãŒã¹å®çŸ©ã«åºåã§ããŸãããã¹ãã³ãŒãã«ã€ããŠãæ¢ã«ã»ãšãã©ã®ã¢ã¯ã·ã§ã³ãæºåãããŠããããããããåŒã³åºãã ãã§çµãããŸããã¢ã¯ã·ã§ã³ã®äœ¿ãæ¹ã¯F1ããŒãæŒãã ãã§TestArchitectãã該åœã®ã¢ã¯ã·ã§ã³ã解説ããå
¬åŒããã¥ã¡ã³ãã«é·ç§»ã§ããŸããæ¢ãå¿
èŠã¯ãããŸããããã«ã¹ã¯ã©ããã®ã³ãŒãã£ã³ã°ãããããªãéããã¹ãã³ãŒããäœæã§ããŸãã ãã ãã¢ã¯ã·ã§ã³ãèšå€§ã«ãããããæ
£ãããŸã§ã¯äœ¿ãããã¢ã¯ã·ã§ã³ãæ¢ãã®ã«æéãããããŸãã ãã¹ãã³ãŒããèªã¿ããã ç§ã¯ã³ãŒãã®çŸ
åãšã€ã³ãã³ãã«ããåºå¥ã«æ
£ããŠããã®ã§ãTestArchitectã®Excelã¿ãããªèŠãç®ã¯ã¡ãã£ãšâŠãšæã£ãŠããŸãããå®éã«äœ¿ã£ãŠã¿ããšããªãèªã¿ãããå°è±¡ã§ããããã«ã¢ã¯ã·ã§ã³ãã€ã³ã¿ãŒãã§ãŒã¹ã«æ¥æ¬èªåã䜿ããšå
容ãäžç®ã§åãããŸããèªåãã¹ãã®å®è£
æ
åœè
ãã¬ãã¥ã¢ãŒã«ã¯ãšã³ãžãã¢ã§ã¯ãªãã¡ã³ããŒãå«ãŸããå Žåããããããã³ãŒããèªã¿ãããç¹ã¯ã¡ãªããããããšæããŸãã ãã¹ãå®è¡ãç°¡å å®è¡ãããã¹ãã±ãŒã¹ãå®è¡å¯Ÿè±¡ã®ç°å¢ïŒç«¯æ«ãªã©ã®æ¥ç¶å
ïŒãæå®ãããã¹ãå®è¡çšã®ããããã¡ã€ã«ãã¯ã³ã¯ãªãã¯ã§äœæã§ããæ©èœããšãŠã䟿å©ã§ãããã¹ãã¹ã€ãŒãããã¹ãç«¯æ«æ¯ã«äœæããŠãããšå¿
èŠãªãã¹ããããã«å®è¡ããããšãã§ããŸããJenkinsãªã©ã®å€éšããŒã«ã§å®æå®è¡ãããšãã£ãCI/CDã«çµã¿èŸŒãããšãç°¡åã§ãã ããã°ã©ãã³ã°èšèªãå©çšå¯èœ TestArchitectã¯JavaãPythonãšãã£ãã©ã€ãã©ãªãå
å®ããŠããããã°ã©ãã³ã°èšèªã§æ¡åŒµã§ãããããå
¬åŒã®ãµããŒãããªãããŒã«ã飿ºãããããããªãç¹æ®ãªåŠçã§ãèªåãã¹ãã«çµã¿èŸŒãããšãã§ããŸããä»ã®ãã¹ãèªååããŒã«ã®å€ãã¯å¯Ÿå¿ããŠããèšèªãJavaScriptã®ã¿ã§ãã£ãããéå®ãããç¯å²ã§ããå©çšã§ããªããšãã£ãå¶çŽããããŸãããããšãªã£ããã³ãŒããæžããç¹ã¯èªåãã¹ããšã³ãžãã¢ãšããŠå®å¿ã§ããæ©èœã ãšæããŸãã ãããã« TestArchitectã®ã¢ãã€ã«ãã¹ãæ©èœã¯ãAppiumãšããã°ã©ãã³ã°èšèªãå©çšãããã¹ããšæ¯èŒãããšç°¡åã«ãã€éãäœæãã§ããä¿®æ£ã«ãããå·¥æ°ãå°ãªãæžã¿ãŸããæäœã容æã§ããäžæ¹ã§ãèªåãã¹ãããŒã«ã®äžã§ã倿©èœãã€æ¡åŒµæ§ãé«ããšããç¹åŸŽããããŸãã TestArchitectã¯Freeã©ã€ã»ã³ã¹ãæäŸããŠããŸããèªåãã¹ãããŒã«ãæ¢ããŠããæ¹ã¯ãã²ã詊ããã ããã https://www.testarchitect.com/ AGESTã§ã¯TestArchitectã®å°å
¥ãèããŠããæ¹ãå°ãã§ãèå³ãããæ¹ã«åããŠèª¬æäŒã宿œããŠããŸãããæ°è»œã«ãåãåããäžããã The post TestArchitectã¢ãã€ã«ãã¹ãæ©èœã®çŽ¹ä» first appeared on Sqripts .
ããã«ã¡ã¯ãããã¯ãšã³ããšã³ãžãã¢ã®ãŸãã§ãã ãã®èšäºã§ã¯ãProtocol Buffersã®Linterã®äžã€ã§ãã Buf ã䜿ã£ãLintã€ããŠãå®è·µäŸãšãšãã«ã玹ä»ããŸãã Protocol Buffersãšã¯ Protocol Buffersã¯ãGoogleãéçºãããã€ããªããŒã¿ã®ã·ãªã¢ã©ã€ãºåœ¢åŒã§ããããŒã¿èšè¿°åœ¢åŒã®äžçš®ãªã®ã§JSONãXMLãšæ¯èŒãããããšããããŸãããProtocolBufferã¯ãã€ããªåœ¢åŒã§ä¿åããããããJSONãXML圢åŒãªã©ã®ããã¹ãããŒã¹ã®åœ¢åŒãããããŒã¿ãµã€ãºãå°ãããããé«éã«ããŒã¿è»¢éãã§ããŸãã Protocol Buffersã¯ãGoogleãéçºããRPCãã¬ãŒã ã¯ãŒã¯ã§ãã gRPC ã«äœ¿ãããŠããŸããProtocol BuffersãšgRPCã®é¢ä¿ã¯ãJSONãšHTTPéä¿¡ã®é¢ä¿ã«ãã䌌ãŠããŸããHTTPéä¿¡ãããŒã¿èšè¿°åœ¢åŒãšããŠJSONã䜿çšããããã«ãgRPCã¯ProtocolBufferã䜿çšããŠéä¿¡ãè¡ããŸãã Bufãšãã®ä»ã®Linterã®æ¯èŒ æã
ã®ãããžã§ã¯ãã§ã¯ãåãã¯Protocol Bufferã®Linterãšã㊠Google API Linter ãæ¡çšããŠããŸãããProtocol BuffersãGoogle補ãªã®ã§ãLinterãGoogle補ã®ãã®ã䜿ãã°å®å¿ã ãããšèããŠããããã§ãã ããããGoogle API Linterã®ã«ãŒã«ã¯ããããå³ããããããããããžã§ã¯ãã®ã·ã¹ãã æ§æã®èŠçŽãã®ã¿ã€ãã³ã°ã§Linterã®éžå®ãèŠçŽãããšã«ãªããŸãããåéžå®ã®éã«æ±ºããèŠä»¶ã¯ä»¥äžã®3ã€ã§ãã æè¿ãŸã§æŽæ°ãããïŒéçºãæ¢ãŸã£ãŠããªãïŒ å人éçºã§ãªãïŒä»åŸãæŽæ°ãç¶ããããå¯èœæ§ãé«ãïŒ Lintã®ã«ãŒã«ãå³ããããªã æ€èšããLinterã¯ä»¥äžã®éãã§ãã prototool çŽè¿ã®æŽæ°ã2020幎ãšå€ããå
¬åŒã®çºèšãèŠãŠãä»åŸã¢ããããŒããããå¯èœæ§ãäœãã protolint å人éçºã§ããç¹ãäžå®ã Buf prototoolã®åŸç¶ã«ããããæŽæ°é »åºŠã¯é«ããã«ãŒã«ãåé¡ãªãã ãããã®Linterã䜿ã£ãŠè»œãPoCãè¡ããæçµçã«ã¯ãã¹ãŠã®èŠä»¶ãæºãããŠããBufãæ¡çšããŸããã .protoãã¡ã€ã«ã®æºå ãããããå®éã«Bufã䜿ã£ãlintã®äŸãã玹ä»ããŸãã Bufãã€ã³ã¹ããŒã«ããåã«ããŸãã¯Lint察象ã®.protoãã¡ã€ã«ãçšæããŸããããä»åã¯ã以äžã®ãããªç°¡åãª.protoãã¡ã€ã«ïŒbook.protoïŒã䜿ããŸãã æžç±ããŒã¿ãäœæããCreateBookãšãæžç±ããŒã¿ãååŸããGetBookãšãã2ã€ã®ã¡ãœããããããŸãããã®2ã€ã®ã¡ãœããã®Responseã¯å
±éã®ã¡ãã»ãŒãžåïŒBookïŒã䜿çšããŠããŸãã syntax = "proto3"; package book.v1; service BookService { rpc CreateBook(CreateBookRequest) returns (Book); rpc GetBook(GetBookRequest) returns (Book); } message Book { string id = 1; string title = 2; string author = 3; int32 pages = 4; } message CreateBookRequest { string title = 1; string author = 2; int32 pages = 3; } message GetBookRequest { string id = 1; } 以äžã®ãããªãã£ã¬ã¯ããªæ§æã«ããŠãv1ã®äžã«book.protoã眮ããŸãããã sample-project âââ pb-proto âââ book âââ v1 âââ book.proto ããã§æºåå®äºã§ãã Bufã®ã€ã³ã¹ããŒã«ãšã»ããã¢ãã æ¬¡ã«ãBuf CLIãã€ã³ã¹ããŒã«ããŸãã $ brew install bufbuild/buf/buf Homebrew以å€ã®ã€ã³ã¹ããŒã«æ¹æ³ã«ã€ããŠã¯ãå
¬åŒã® ã€ã³ã¹ããŒã«ã¬ã€ã ãåç
§ããŠãã ããã buf CLIã®ã€ã³ã¹ããŒã«ãçµãã£ãããLintã®ããã®ã»ããã¢ãããããŸãããããžã§ã¯ãçŽäžã«ä»¥äžã®ãããªå
容㮠buf.work.yaml ãäœæããŸãããã directories ã«ã¯pb-protoãæå®ããŸãã version: v1 directories: - pb-proto æåŸã«ä»¥äžã®ã³ãã³ããå®è¡ããŸããããã«ããã buf.yaml ãpb-protoãã£ã¬ã¯ããªã«çæãããŸãã cd pb-proto buf mod init æçµçãªãã£ã¬ã¯ããªæ§æã以äžã®ããã«ãªã£ãŠãããæåã§ãã sample-project âââ buf.work.yaml âââ pb-proto âââ buf.yaml âââ book âââ v1 âââ book.proto Bufãã€ãã£ãLint ãã£ããBufã䜿ã£ãŠbook.protoãLintããŠã¿ãŸãããã $ buf lint ./book/v1/book.proto åºåãèŠãŠã¿ããšãããã€ãLintãšã©ãŒãåºãŠããããšãåãããŸãã pb-proto/book/v1/book.proto:5:3:"book.v1.Book" is used as the request or response type for multiple RPCs. pb-proto/book/v1/book.proto:5:46:RPC response type "Book" should be named "CreateBookResponse" or "BookServiceCreateBookResponse". pb-proto/book/v1/book.proto:6:3:"book.v1.Book" is used as the request or response type for multiple RPCs. pb-proto/book/v1/book.proto:6:40:RPC response type "Book" should be named "GetBookResponse" or "BookServiceGetBookResponse". 1ã€ç®ãš3ã€ç®ã¯ãã Book ãšããã¡ãã»âãžåãè€æ°ã®RPCã§äœ¿ãããŠãããããã«çãããšã©ãŒã§ãã Bufã®å
¬åŒã® Configuration and options ããŒãžã«ã¯ã以äžã®ãããªèšè¿°ããããŸãã ææ°ã® Protobuf éçºã«ãããŠæãéèŠãªã«ãŒã«ã® 1 ã€ã¯ããã¹ãŠã® RPC ã«å¯ŸããŠäžæã®ãªã¯ãšã¹ãã¡ãã»ãŒãžãšã¬ã¹ãã³ã¹ã¡ãã»ãŒãžãæã€ããšã§ããè€æ°ã®RPCéã§Protobufã¡ãã»ãŒãžãå
±æãããšããã®Protobufã¡ãã»ãŒãžã®ãã£ãŒã«ãã倿Žããããšãã«è€æ°ã®RPCã圱é¿ãåããããšã«ãªããŸããïŒçè
ç¿»èš³ïŒ Configuration and options èŠã¯ãã¡ãã»ãŒãžåã䜿ããŸãããªããšããããšãèšã£ãŠããŸãããã©ã®ãããªåç§°ã«å€æŽããã¹ããã¯2è¡ç®ãš4è¡ç®ãåèã«ããã°ããã§ãã ä¿®æ£åŸã®book.protoã¯ä»¥äžã®ããã«ãªããŸãã syntax = "proto3"; package book.v1; service BookService { rpc CreateBook(CreateBookRequest) returns (CreateBookResponse); rpc GetBook(GetBookRequest) returns (GetBookResponse); } message CreateBookRequest { string title = 1; string author = 2; int32 pages = 3; } message CreateBookResponse { string id = 1; string title = 2; string author = 3; int32 pages = 4; } message GetBookRequest { string book_id = 1; } message GetBookResponse { string id = 1; string title = 2; string author = 3; int32 pages = 4; } ããäžåºŠLintããããŠã¿ããšããšã©ãŒãåºãªããªã£ãããšãåãããšæããŸãã éçºã®éœåã§ç¡å¹åãããã«ãŒã«ãããå Žåã¯ãbuf.yamlã« except ã®æ®µèœãäœã£ãŠç¡å¹åãããã«ãŒã«åãæå®ãããšããã§ãã 以äžã RPC_RESPONSE_STANDARD_NAME ãš RPC_REQUEST_RESPONSE_UNIQUE ãç¡å¹åããbuf.yamlã®äŸã§ãã version: v1 breaking: use: - FILE lint: use: - DEFAULT except: - RPC_RESPONSE_STANDARD_NAME - RPC_REQUEST_RESPONSE_UNIQUE ãããããšãä¿®æ£åã®book.protoã§ãLintãéããŸããä»ã®ã«ãŒã«ã®åç§°ã«ã€ããŠã¯å
¬åŒããŒãžã® Rules and categories ãåç
§ããŠãã ããã çµããã« Bufã䜿ã£ãŠProtocol BufferãLintããæ¹æ³ãã玹ä»ããŸãããBufã¯Lintæ©èœã䜿ãã ããªãéåžžã«ã·ã³ãã«ã§ãåŠç¿ã³ã¹ããããããªããšæããŸãã ãã®èšäºãã¿ãªããã®ã圹ã«ç«ãŠã°å¹žãã§ãã The post Protocol Buffersã®Lintãã§ãã¯å
¥é: Bufã䜿ã£ãå®è·µã¬ã€ã first appeared on Sqripts .
æ¬é£èŒã§ã¯ããããã¯ãã§ãŒã³ã®åºæ¬çãªä»çµã¿ã解説ããªããããªã³ãã§ãŒã³ããŒã¿ãåæããããã®åºæ¬çãªææ³ã«ã€ããŠãå
š8åã§ç޹ä»ããŸãã 第6åã®ä»åã¯ãåŒãç¶ããªã³ãã§ãŒã³ããŒã¿ã®ãªã³ã©ã€ã³åæãµãŒãã¹ã®DuneïŒ https://dune.com/ ïŒãçšããŠãEthereumã察象ãšããããŒã¿åæã®æŒç¿ãå§ããŠãããŸãã Raw Blockchain Dataã®ç¢ºèª Duneã®æäŸããããŒã¿ããŒãã«ã«ã¯ã第5åã®èšäºã§ãã玹ä»ããéããDecoded projectsãSpellsãªã©ã®åæã®ããã«å å·¥ããã䟿å©ãªããŒã¿ããŒãã«ãæã£ãŠããŸãããããä»åã¯ããããã¯ãã§ãŒã³ã®åºæ¬çãªããŒã¿æ§é ãçè§£ããããã«ãããããã¯ãã§ãŒã³ã®çã®ããŒã¿ã«è¿ãRaw Blockchain Dataãäžå¿ã«åãæ±ã£ãŠã¿ãŸãããã EVM Raw Table Data Duneã§ã¯ãBitcoinãEthereumãã¯ãããPolygonãOptimismãBNB Chainãªã©ãããŸããŸãªãããã¯ãã§ãŒã³ã®ããŒã¿ãæäŸããŠããŸãããã®ãã¡ãBitcoinãSolanaãªã©ã®å°æ°ã®äŸå€ãé€ããã»ãšãã©ã®ãããã¯ãã§ãŒã³ã¯Ethereum Virtual Machine(EVM)ãšåŒã°ããä»®æ³ãã·ã³ãå©çšããŠããŸãã Ethereumã®ã¯ã©ã€ã¢ã³ãããã°ã©ã ã«ã¯ããã€ãã®å®è£
ãååšããŸããããã¹ãŠã®ã¯ã©ã€ã¢ã³ããåãEVMã®ä»æ§ã«æºæ ããããšã§ãå®è£
ã®éããæ°ã«ããããšãªãåãã¹ããŒãã³ã³ãã©ã¯ããå®è¡ããŠåãçµæãåŸãããšãã§ããŸãããŸããEthereum以å€ã®ãããã¯ãã§ãŒã³ã§ãã£ãŠããEVMã®ä»æ§ã«æºæ ããŠãããã§ãŒã³ã§ããã°ãEthereumçšã«å®è£
ãããã¹ããŒãã³ã³ãã©ã¯ããåããããšãã§ããŸãã ã¹ããŒãã³ã³ãã©ã¯ããå®è¡å¯èœãªãããã¯ãã§ãŒã³ã¯æ°å€ãååšããŸããããã®äžã§ãEVMãšäºææ§ã®ãããã§ãŒã³ãããã¡ã¯ãã¹ã¿ã³ããŒããšãªã£ãŠããããããŸãã¯Ethereum(EVM)ã®ããŒã¿æ§é ã«æ
£ããŠãããšæ±çšæ§ãé«ãŸããŸãã BlocksãšTransactions 第3åã®èšäº ã§ãã玹ä»ãããšãããå€ãã®ãããã¯ãã§ãŒã³ã¯ãããã¯ãšãã©ã³ã¶ã¯ã·ã§ã³ãšããããŒã¿æ§é ãæã£ãŠããŸãã Ethereumã«ããããããã¯ãšãã©ã³ã¶ã¯ã·ã§ã³ã®çããŒã¿ã¯ãDuneäžã§ã¯ãããããethereum.blocksããethereum.transactionsããšããããŒãã«åã§åç
§ã§ããŸãã äžèšã®ã³ãŒã1.ãDuneã®ã¯ãšãªãšãã£ã¿ã«èšèŒããRunãã¯ãªãã¯ããŠEthereumã®ãããã¯ããŒã¿ã10ä»¶ååŸããŠã¿ãŸããããFROMå¥ã«æ¬²ããããŒã¿ã®ããŒãã«åãæå®ããSELECTå¥ã«æ¬²ããã«ã©ã åãåæããŸãããã¹ãŠã®ã«ã©ã ãååŸãããå Žåã¯ãïŒããå©çšã§ããŸãããŸãããã¹ãŠã®ããŒã¿ãååŸããã®ã¯éåžžã«æéããããå¯èœæ§ããããããLIMITå¥ã§ååŸããããŒã¿ã®ä»¶æ°ãæå®ããçãã€ããŠãããšå®å¿ã§ãã ã³ãŒã1 . Ethereumã®ãããã¯ããŒã¿ã10ä»¶ååŸããã¯ãšãª SELECT *FROM ethereum.blocksLIMIT 10 ç¡äºã«å®è¡ãçµäºãããšãå³1ã®ãããªã¯ãšãªçµæç»é¢ã衚瀺ãããŸãããªããSQLã«ãããããŒãã«ã¯ã衚èšç®ãœããã«ãããããŒãã«ãšã¯ç°ãªããé åºãæããªãããŒã¿ã®éåã§ãã®ã§ãååŸããã10ä»¶ã®ããŒã¿ã¯å®è¡ããšã«ç°ãªããã®ãååŸãããå¯èœæ§ããããŸããä»åã®å®è¡çµæã§ã¯ã2015幎9æ12æ¥ã®ã¿ã€ã ã¹ã¿ã³ããä»äžãããããããã¯çªå·ã224095ãã®ããŒã¿ã1ä»¶ç®ã«ååŸãããŠããŸãã å³1. ethereum.blocksããŒãã«ã®ãµã³ãã«ããŒã¿ Duneã§ååŸããããŒã¿ãæ£ãããã©ãããEtherscanïŒ https://etherscan.io/ ïŒã®ãµã€ãã§ã確èªããŠã¿ãŸããããEtherscanã®æ€çŽ¢çªã«ãããã¯çªå·ãå
¥åããŠæ€çŽ¢ãããšã該åœãããã¯ã®è©³çްæ
å ±ãèšèŒããããŒãžãé²èЧã§ããŸãã å³2 . ãããã¯çªå·ã224095ãã®è©³çްæ
å ±ïŒ https://etherscan.io/block/224095 ïŒ å³1ãšå³2ãæ¯èŒããŠã¿ãŠãTimestampãDifficultyãªã©ãåºæ¬çãªæ
å ±ãäžèŽããŠããããšã確èªããŠã¿ãŠãã ããã ããŒã¿å å·¥ã®ããã®SQL äžèšã®ãããã¯ããŒã¿ã察象ãšããŠãSQLãçšããç°¡åãªããŒã¿å å·¥ã®æŒç¿ãããŠã¿ãŸãããã SQLã«ãããããŒã¿å å·¥ã®ããã®æŒç®ã¯ã倧ããåããŠæ°å€ãæååãªã©ã®ã¹ã«ã©å€ã察象ãšããæŒç®ãšãããŒã¿ã®éåã§ããããŒãã«ïŒãªã¬ãŒã·ã§ã³ïŒã察象ãšããæŒç®ãååšããŸããäž¡è
ã«ã€ããŠå
·äœäŸã確èªããŠã¿ãŸãããã å€ã察象ãšããæŒç® å³1ã§ç€ºããã¯ãšãªã®åºåçµæã®ãã¡ãã¿ã€ã ã¹ã¿ã³ãã衚ãã2015-09-12 17:04ããšãã£ãããŒã¿ãããããã¯çªå·ã衚ãã224095ããšãã£ãããŒã¿ã«å¯ŸããŠãSQLãçšããŠå¥œããªå å·¥ãæœãããšãã§ããŸããç¹ã«ããããã¯ãã§ãŒã³ã®ããŒã¿ã®å€ãã¯ã¿ã€ã ã¹ã¿ã³ããä»äžãããæç³»åããŒã¿ã§ãã®ã§ãã¿ã€ã ã¹ã¿ã³ããåæãããã圢ã«å å·¥ããæ©äŒãå€ããããŸãã ã³ãŒã2ã«ãã¿ã€ã ã¹ã¿ã³ããåãæ±ãå
žåçãªé¢æ°ã®èšèŒäŸã瀺ããŸããyearãmonthãšãã£ã颿°ã¯ãã¿ã€ã ã¹ã¿ã³ãããç¹å®ã®èŠçŽ ãæœåºãã颿°ã§ããdate_trunc颿°ã¯ãã¿ã€ã ã¹ã¿ã³ããæå®ããæ¡ã§åãæšãŠãå€ãååŸãã颿°ã§ãæ¥æ¬¡ã鱿¬¡ã§ã®ããŒã¿éèšã宿œãããå Žåã«ããçšããããŸããformat_datetime颿°ã¯Javaã®æå»é¢æ°ã§ãããDune SQLã§ã¯ãã®ãããªSQLæšæºã«ã¯ååšããªããã®ã®æçšãªé¢æ°ãå€ã察å¿ãè¡ãããŠããŸãã Dune SQLã§ã©ã®ãããªé¢æ°ãå®è£
ãããŠãããã¯ãå
¬åŒã®ããã¥ã¡ã³ãïŒ https://dune.com/docs/query/DuneSQL-reference/Functions-and-operators/ ïŒãåç
§ããŠãã ããã ã³ãŒã2 . ã¿ã€ã ã¹ã¿ã³ããå å·¥ãã颿°äŸ SELECT time, year(time), month(time), day(time), date_trunc('day', time), date_trunc('week', time), format_datetime(time, 'MMM-dd-yyyy KK:mm:ss a +z'), number FROM ethereum.blocks WHERE number = 224095 LIMIT 10 å³3. ãã³ãŒã2ãã®å®è¡çµæäŸ SQLã«ãããå€ã察象ãšããæŒç®ã®æ³šæç¹ãšããŠã察象ããŒãã«ã«å«ãŸãããã¹ãŠã®ã¬ã³ãŒãã®ã«ã©ã ã«å¯ŸããŠãåãæŒç®ãé©çšãããç¹ã«æ³šæããŠãã ãããäŸãã°ã100ä»¶ã®ããŒã¿ãååšããå Žåã«ãäžè¬çãªæç¶ãåã®ããã°ã©ãã³ã°èšèªã§ã¯ãforæãªã©ã®ã«ãŒãæ§æãçšããŠã1ä»¶ãã€æŒç®ãé©çšããŠããããšãå€ããšæããŸããäžæ¹ãSQLã¯éåæŒç®ãåºæ¬ãšããŠãããããã«ãŒãæ§æãªã©ã¯ååšããã100ä»¶ã®ããŒã¿ãã¹ãŠã«å¿
ãåãæŒç®ãé©çšãããããšã«ãªããŸãã ãŸããå€ã察象ãšããæŒç®ã§ã¯ãå
¥åããããŒãã«ã«å«ãŸããã¬ã³ãŒãæ°ãšãåºåãããã¬ã³ãŒãæ°ã¯å¿
ãäžèŽããããšã«ã泚æããŠãã ããã100ä»¶ã®ã¬ã³ãŒããå«ãããŒãã«ã«å¯ŸããŠå€ã倿ŽããæŒç®ãå®è¡ããå Žåãåºåçµæã®ã¬ã³ãŒãæ°ãå¿
ã100ä»¶ãšãªã£ãŠããŸãã ãããæåŸ
ããŠããåæçµæãã¬ã³ãŒãæ°ã®å¢æžã䌎ããããªãã®ã§ããã°ã次ã®ããŒãã«ã察象ãšããæŒç®ãå¿
èŠã§ãã ããŒãã«ã察象ãšããæŒç® éåæŒç®ãšããŠã®SQLã䜿ãããªãããã«ã¯ãããŒãã«ã«å¯ŸããŠæŒç®ããããªã£ãŠå¥ã®ããŒãã«ãäœæããããšããã€ã¡ãŒãžãæã€ããšãéèŠã§ãã éåæŒç®ãšããŠã®SQLãäœéšããåæºåãšããŠãããã»ã©ç€ºããdate_trunc颿°ãçšããŠãã¿ã€ã ã¹ã¿ã³ããæ¥ä»ã§åãèœãšãããäžæããŒã¿ãäœæããŠã¿ãŸããã³ãŒã3ã§ã¯ãdate_truncã®èšç®çµæã«ã©ã ã«å¯ŸããŠãASå¥ãçšããŠãdayããšããååãä»ããŠããŸããã³ãŒã2ã®ãããªæžãæ¹ã§ã¯ãåºåçµæã®ã«ã©ã ãã_col1ãã_col2ããšãã£ãããã©ã«ãã®é£çªåãšãªã£ãŠããŸãããããããã«åãããããååãã€ããããšã§ãåæã®èŠéããã¯ãšãªã®åå©çšæ§ãåäžããŸãã ãŸããååŸããã¬ã³ãŒãã®æ¡ä»¶ãWHEREå¥ã§æå®ããã¬ã³ãŒãã®çµã蟌ã¿ããããªã£ãŠããŸããWHEREå¥ã®æ¬¡ã«æå®ããåŒãTRUEãšãªãã¬ã³ãŒãã ããåºåçµæã«è¡šç€ºãããŸãããtimestamp ‘2023-01-01 00:00:00’ <= timeããšããæ¡ä»¶åŒã¯ã’2023-01-01 00:00:00âãšããæååãtimestampåã«å€æããtimeã«ã©ã ã®å€ãšæ¯èŒããŠããåŒã§ãã ã³ãŒã3 . date_trunc颿°ãçšããååŠç SELECT time, date_trunc('day', time) AS day, number, size FROM ethereum.blocks WHERE timestamp '2023-01-01 00:00:00' <= time å³4 . ãã³ãŒã3ãã®å®è¡çµæäŸ å³4ã«ç€ºãããšãããã¿ã€ã ã¹ã¿ã³ãããæå»æ
å ±ãåãèœãšãããæ¥ä»æ
å ±ã瀺ãdayã«ã©ã ãæã£ããµã³ãã«ã¬ã³ãŒããååŸããããšãã§ããŸããã ãã®ãµã³ãã«ã¬ã³ãŒãã察象ãšããŠãæ¥ä»ããšã«ã©ããããã®ãããã¯ãçæãããŠããããéèšããã¯ãšãªãèšè¿°ããŠã¿ãŸãããã ãŸããããŒãã«ã«å¯ŸããŠæŒç®ãé©çšããããšãã€ã¡ãŒãžããããã«ãã³ãŒã4ã®ãããªæžãæãããããªã£ãŠã¿ãŠãã ãããã³ãŒã3ã«éããããã¹ãŠã®SELECTæã®åºåçµæã¯ããŒãã«ïŒãªã¬ãŒã·ã§ã³ïŒã®åœ¢åŒãããŠããã®ã§ããã®åºåçµæãFROMå¥ã«æå®ããŠãããã«å¥ã®SELECTæãèšè¿°ããããšãå¯èœã§ããã³ãŒã4ã®å®è¡çµæã¯ãå³4ã§ç€ºããã³ãŒã3ã®å®è¡çµæãšåãã§ãã ã³ãŒã4 . ãã³ãŒã3ãã®SELECTæãFROMå¥ã«æå®ããã¯ãšãª SELECT * FROM ( SELECT time, date_trunc('day', time) AS day, number, size FROM ethereum.blocks WHERE timestamp '2023-01-01 00:00:00' <= time ) éçŽé¢æ° ããŒãã«ã察象ãšããæŒç®ãšããŠä»£è¡šçãªãã®ã«ãéçŽé¢æ°ãšåŒã°ãã颿°çŸ€ããããŸããã³ãŒã5ã¯ãã³ãŒã3ã®åºåçµæã®ããŒãã«ã«å¯ŸããŠãéçŽé¢æ°ã§ããcount, max, min颿°ãé©çšããã¯ãšãªã§ãã ã³ãŒã5 . ãã³ãŒã3ãã®åºåçµæã«éçŽé¢æ°ãé©çšããã¯ãšãª SELECT count(1), max(day), min(day) FROM ( SELECT time, date_trunc('day', time) AS day, number, size FROM ethereum.blocks WHERE timestamp '2023-01-01 00:00:00' <= time ) å³5 . ãã³ãŒã5ãã®å®è¡çµæäŸ ã³ãŒã5ã®èšç®çµæã¯ãFROMå¥ã§æå®ããããŒãã«ã«å«ãŸããã¬ã³ãŒãæ°ãdayã«ã©ã ã®æå€§å€ãšæå°å€ã瀺ããŠããŸããããã§ãåºåçµæã®ããŒãã«ã®ã¬ã³ãŒãæ°ã1ä»¶ãšãªã£ãŠããããšã«æ³šæããŠãã ãããããŒãã«ã察象ãšããæŒç®ã¯ãå€ã察象ãšããæŒç®ãšç°ãªããå
¥åããŒãã«ã®ã¬ã³ãŒãæ°ãšåºåããŒãã«ã®ã¬ã³ãŒãæ°ã¯å¿
ãããäžèŽããŸããã GROUP BYå¥ éçŽé¢æ°ãGROUP BYå¥ãšçµã¿åãããŠäœ¿ãããšã§ãéçŽããããªãç²åºŠãæå®ããããšãã§ããŸããGROUP BY dayãšæå®ããããšã§ãdayãåãå€ãæã€ã¬ã³ãŒã矀ãåäœãšããŠéçŽé¢æ°ãé©çšããdayãããŒãšããæ°ããªããŒãã«ãçæãããŠããŸãããªããèšç®çµæã®è¡šç€ºé ã¯ããã©ã«ãã§ã¯äžå®ã®ãããORDER BYå¥ãçšããããšã§ãœãŒãããŠè¡šç€ºããããšãã§ããŸãã ã³ãŒã6 . æ¥ä»ããšã«ãããã¯æ°ãã«ãŠã³ãããã¯ãšãª SELECT day, count(1) FROM ( SELECT time, date_trunc('day', time) AS day, number, size FROM ethereum.blocks WHERE timestamp '2023-01-01 00:00:00' <= time ) GROUP BY day ORDER BY day å³6 . ãã³ãŒã6ãã®å®è¡çµæäŸ WITHå¥ïŒå
±éããŒãã«åŒïŒ ä»»æã®SELECTæã®çµæã¯FROMå¥ã«æå®ããŠæ°ããªSELECTæãžã®å
¥åãšããŠæå®ã§ããŸãããå€ãã®SELECTæããã¹ãããã¯ãšãªã¯å¯èªæ§ãäžããå¯èœæ§ããããŸãã WITHå¥ãçšããå
±éããŒãã«åŒãšããæ§æãçšãããšãSELECTæã®çµæã«äžæçãªããŒãã«åãä»äžããããšãã§ããäžé£ã®ã¯ãšãªã®ãªãã§åå©çšãã§ããããã«ãªããŸãã ã³ãŒã7ã¯ãã³ãŒã3ã®SELECTæã®çµæã«tmpãšããååãä»ããWITHå¥ãçšããŠå
±éããŒãã«åŒåããã¯ãšãªã§ããåºåçµæã¯ã³ãŒã6ãšåæ§ã«ãªããŸãã ã³ãŒã7 . WITHå¥ãçšãããã³ãŒã6ãã®æžãæã WITH tmp AS ( SELECT time, date_trunc('day', time) AS day, number, size FROM ethereum.blocks WHERE timestamp '2023-01-01 00:00:00' <= time ) SELECT day, count(1) FROM tmp GROUP BY day ORDER BY day JOINå¥ ããŒãã«ã察象ãšããæŒç®ã«ã¯ãã¬ã³ãŒãããã£ã«ã¿ãããéçŽãããããWHEREå¥ãéçŽé¢æ°ãšã¯éã«ãè€æ°ã®ããŒãã«ãçµã¿åãããŠã¬ã³ãŒãæ°ãã«ã©ã ãå¢å ãããæŒç®ãååšããŸãã äžèšã®blocksããŒãã«ã«å«ãŸããæ
å ±ã ãã§ã¯ããããã¯ã«å«ãŸãããã©ã³ã¶ã¯ã·ã§ã³æ°ãªã©ãææ¡ããããšãã§ããŸããã§ããããããã¯ããšã®ãã©ã³ã¶ã¯ã·ã§ã³æ°ã®éèšã¯ãtransactionsããŒãã«ãçšããŠèšç®ã§ããŸããtransactionsããŒãã«ã®èšç®çµæãšãblocksããŒãã«ã®ã«ã©ã æ
å ±ãçµã¿åãããŠçµæã«è¡šç€ºããããå Žåã¯ãè€æ°ã®ããŒãã«ãæå®ããããŒã§çµåããJOINå¥ãå©çšã§ããŸãã ã³ãŒã8ã¯ãWITHå¥ã«ããå
±éããŒãã«åŒã§ããã©ã³ã¶ã¯ã·ã§ã³æ°ãéèšããtx_countããŒãã«ãäœæããblocksããŒãã«ã®numberã«ã©ã ãšãtx_countããŒãã«ã®block_numberã«ã©ã ãšãããŒã«ããŠçµåããã¯ãšãªã§ãã ã³ãŒã8 . ãããã¯ã«å«ãŸãããã©ã³ã¶ã¯ã·ã§ã³æ°ã®éèšã¯ãšãª WITH tx_count AS ( SELECT block_number, COUNT(1) AS tx_count FROM ethereum.transactions GROUP BY block_number ) SELECT number, time, miner, difficulty, tx_count FROM ethereum.blocks AS b JOIN tx_count AS t ON b.number = t.block_number ORDER BY b.number DESC LIMIT 10 å³7. ãã³ãŒã8ãã®å®è¡çµæäŸ 次åäºå ä»åã®èšäºã§ã¯ããããã¯ãã§ãŒã³ã®åºæ¬çãªããŒã¿æ§é ã§ãããããã¯ããã©ã³ã¶ã¯ã·ã§ã³ã®ããŒãã«ããµã³ãã«ãšããŠãããŒã¿åæã§åœ¹ç«ã€SQLã®åºæ¬çãªæ§æããSQLç¹æã®æèæ¹æ³ã«ã€ããŠç޹ä»ããŸãããæ¬¡åèšäºã§ã¯ãEVMã®ããŒã¿æ§é ã®æ·±æãããçºå±çãªSQLã®æ§æã«ã€ããŠè§£èª¬ããªããããªã³ãã§ãŒã³ããŒã¿åæã®æŒç¿ãé²ããäºå®ã§ãã é£èŒäžèЧ ã第1åããããã¯ãã§ãŒã³ãšã¯ ã第2åããããã³ã€ã³ã®ä»çµã¿ ã第3åãã€ãŒãµãªã¢ã ã®ä»çµã¿ ã第4åãããã°ããŒã¿åæã®ããã®SQLåºç€ ã第5åãEthereumããŒã¿åææŒç¿ 1 The post ã第6åãEthereumããŒã¿åææŒç¿2 first appeared on Sqripts .
ããã«ã¡ã¯ã ãšã³ãžãã¢ã® nobushi ã§ãã RDBãæ±ãWebã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããŠãããšRDBã®ã¬ããªã±ãŒã·ã§ã³ç°å¢ãå¿
èŠãšããããšããããšæããŸãã ã¢ããªã±ãŒã·ã§ã³åŽã§å¯Ÿå¿ãå¿
èŠãªã®ã§ã§ããã°éçºãè¡ãããŒã«ã«ç°å¢ã®æ®µéã§å°å
¥ããããšããã§ãã ããã§ä»åã¯æè»œã«ããŒã«ã«ã®docker-composeã§RDBã®ã¬ããªã±ãŒã·ã§ã³ç°å¢ãæ§ç¯ããŠã¿ãããšæããŸãã 䜿çšããRDB㯠PostgreSQL ã§ãã ã€ãã§ã«æ€èšŒçšã« pgAdmin ãå°å
¥ããŠã¿ãŸãã å°å
¥ docker-compose ã䜿ããç°å¢ã§ãä»»æã®ãã£ã¬ã¯ããªã«ä»¥äžã®ãã¡ã€ã«ãé
眮ã㊠/ db_primary/ init.sh pg_hba.conf db_read_replica/ entrypoint.sh docker-compose.yml é
眮ãããã£ã¬ã¯ããªã§èµ·åããŠãã ããã docker compose up -d docker-compose.yml services: db_primary: image: postgres:14.8 command: -c "hba_file=/etc/postgresql/pg_hba.conf" environment: - POSTGRES_PASSWORD=hoge - POSTGRES_DB=main volumes: - db_primary_data:/var/lib/postgresql/data - ./db_primary/pg_hba.conf:/etc/postgresql/pg_hba.conf - ./db_primary/init.sh:/docker-entrypoint-initdb.d/init.sh healthcheck: test: ["CMD", "pg_isready", "-U", "postgres"] db_read_replica: image: postgres:14.8 entrypoint: /etc/postgresql/entrypoint.sh volumes: - db_read_replica_data:/var/lib/postgresql/data - ./db_read_replica/entrypoint.sh:/etc/postgresql/entrypoint.sh healthcheck: test: ["CMD", "pg_isready", "-U", "postgres"] depends_on: db_primary: condition: service_healthy pgadmin: image: dpage/pgadmin4:7.3 volumes: - pgadmin_data:/var/lib/pgadmin environment: - PGADMIN_DEFAULT_EMAIL=johndoe@example.com - PGADMIN_DEFAULT_PASSWORD=johndoe ports: - 50080:80 volumes: db_primary_data: driver: local db_read_replica_data: driver: local pgadmin_data: driver: local æ§æã¯PostgreSQLã®ã€ã³ã¹ã¿ã³ã¹ããã©ã€ããªãã¬ããªã«ã§ããããäžã€ã pgAdminãäžã€ã§ãã ãŸããããã®ããŒã¿ä¿æçšã®ããªã¥ãŒã ãå®çŸ©ããŠããŸãã db_primary/init.sh #!/bin/sh -xeu psql -v ON_ERROR_STOP=1 <<- _EOT_ CREATE USER replicator WITH REPLICATION; SELECT pg_create_physical_replication_slot('my_replication_slot'); _EOT_ db_primary/pg_hba.conf local all all trust host all all 127.0.0.1/32 trust host all all ::1/128 trust local replication all trust host replication all 127.0.0.1/32 trust host replication all ::1/128 trust host replication replicator 0.0.0.0/0 trust host all all all scram-sha-256 db_read_replica/entrypoint.sh #!/bin/sh -xeu pg_basebackup \\ -h db_primary \\ -D ${PGDATA} \\ -S my_replication_slot \\ -X stream \\ -U replicator \\ -R || true /usr/local/bin/docker-entrypoint.sh postgres ãã©ã€ããªDB ãã©ã€ããªDBã§å¿
èŠãªããšã¯ä»¥äžã®3ç¹ã§ãã ã¬ããªã±ãŒã·ã§ã³ã¹ãããã®äœæ ã¬ããªã±ãŒã·ã§ã³ãŠãŒã¶ãŒã®äœæ ã¬ããªã±ãŒã·ã§ã³ãŠãŒã¶ãŒã®èªèšŒèšå® ã¬ããªã±ãŒã·ã§ã³ã¹ãããã®äœæ ã¬ããªã±ãŒã·ã§ã³æ¥ç¶ãè¡ãããã®ã¬ããªã±ãŒã·ã§ã³ã¹ããããäœæããŸãã init.sh ã§è¡ã£ãŠããŸãã SELECT pg_create_physical_replication_slot('my_replication_slot'); ã¬ããªã±ãŒã·ã§ã³ãŠãŒã¶ãŒã®äœæ ã¬ããªã«åŽããã®æ¥ç¶çšã«ãŠãŒã¶ãŒãäœæããŸãã init.sh ã§è¡ã£ãŠããŸãã CREATE USER replicator WITH REPLICATION; ãã®ãµã³ãã«ã§ã¯ã»ãã¥ãªãã£ã¯æ°ã«ããªãã®ã§ãã¹ã¯ãŒãã¯èšå®ããŸããã ã¬ããªã±ãŒã·ã§ã³ãŠãŒã¶ãŒã®èªèšŒèšå® pg_hba.conf ã¯èªèšŒèšå®ãã¡ã€ã«ã§ãã ããã©ã«ãã® pg_hba.conf 㯠/var/lib/postgresql/data/pg_hba.conf ã«ãããŸãã®ã§ããããããŒã¹ã«ããŠä»¥äžã®èšå®ã远å ããŠããŸãã host replication replicator 0.0.0.0/0 trust ãã®èšå®ã«ãã replicator ãŠãŒã¶ãŒã®ã¬ããªã±ãŒã·ã§ã³æ¥ç¶ã¯æ¥ç¶å
ã«é¢ä¿ãªããã¹ã¯ãŒãäžèŠãšãªããŸãã æ¬ãµã³ãã«ã¯ããŒã«ã«ã®ç°å¢çšã§ãã®ã§ç°¡æçã«èšå®ããŸãã db_primaryã®èšå® 䜿çšãã pg_hba.conf ã倿Žããããã«ã³ãã³ããèšå®ããŠããŸãã command: -c "hba_file=/etc/postgresql/pg_hba.conf" ãŸãããã¡ã€ã«ãå·®ãæ¿ããããã«volumeãèšå®ããŠããŸãã - ./db_primary/pg_hba.conf:/etc/postgresql/pg_hba.conf - ./db_primary/init.sh:/docker-entrypoint-initdb.d/init.sh ã¬ããªã«DB ã¬ããªã«DBã§ã¯ pg_basebackup ã䜿çšããŠã¬ããªã±ãŒã·ã§ã³ãäœæããŸãã pg_basebackup ã¯PostgreSQLã®èµ·ååã«å®è¡ãã PostgreSQLã®èµ·åæã«ã¯ã¬ããªã±ãŒã·ã§ã³DBãæ¢ã«çæãããŠããããã«å¶åŸ¡ããå¿
èŠããããŸãã ãã®ããã«ENTRYPOINTãå·®ãæ¿ããŠã åŸæ¥ã®ENTRYPOINTã®åã« pg_basebackup ãå®è¡ããããã«ããã®ã entrypoint.sh ã§ãã pg_basebackup ã®åŒæ°ã¯ãã©ã€ããªDBã®èšå®å
容ã«åããããã®ã§ãã ãŸãã2åç®ä»¥éã®èµ·åæã«ã¯ãã§ã«ããŒã¿ããããã pg_basebackup ããšã©ãŒçµäºããŸãã ãã®å Žåã¯ãšã©ãŒãç¡èŠããããã« || true ãã€ããŠããŸãã pg_basebackup \\ -h db_primary \\ -D ${PGDATA} \\ -S my_replication_slot \\ -X stream \\ -U replicator \\ -R || true ãŸãããã©ã€ããªDBåŽãèµ·åããç¶æ
ã§ãªããšèµ·åã«å€±æããããã composeã§ãã©ã€ããªDBã®ã¹ããŒã¿ã¹ãHealthyã«ãªã£ãŠããèµ·åããããã«å¶åŸ¡ããŠããŸã depends_on: db_primary: condition: service_healthy pgAdminã§æ€èšŒ ã§ã¯pgAdminã§åäœç¢ºèªããŠã¿ãŸãã pgAdminãžã®ã¢ã¯ã»ã¹ã¯ docker-compose ã®éãã§ããã° http://127.0.0.1:50080 ã§ã¢ã¯ã»ã¹å¯èœãªã¯ãã§ãã login ãã°ã€ã³ç»é¢ã衚瀺ãããã®ã§ docker-compose ã®ç°å¢å€æ°ã§èšå®ãã以äžã®ã¡ãŒã«ã¢ãã¬ã¹ããã¹ã¯ãŒãã§ãã°ã€ã³ããŸãã johndoe@example.com / johndoe æ¥ç¶ ãã°ã€ã³ãããåãµãŒããŒãžã®æ¥ç¶ã远å ããŸãã General / Name Connection / Host name Connection / Username Connection / Password db_primary db_primary postgres hoge db_read_replica db_read_replica postgres hoge æ€èšŒ ãã®æ®µéã§ã¬ããªã«DBåŽã«ã main ããŒã¿ããŒã¹ãããç ãã©ã€ããªDBãšåæããŠããããšãåãããŸãã ã§ã¯ãã©ã€ããªDBã«ããŒãã«ã远å ããŠã¿ãŸãã ã¬ããªã«DBåŽã«ãåæãããŸããã ãŸãã¬ããªã«DBåŽã«ããŒãã«ã远å ããããšãããšãšã©ãŒãçºçããŸãã ERROR: cannot execute CREATE TABLE in a read-only transaction ææ ããŒã«ã«ã§RDBã®ã¬ããªã±ãŒã·ã§ã³ç°å¢ãã§ããã°ã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãçããããããªããšæããŸãã composeäžçºã§æ§ç¯å¯èœãªã®ã§ãã²ã詊ããã ããã The post PostgreSQLã®ã¬ããªã±ãŒã·ã§ã³ç°å¢ãDockerã§æè»œã«ç«ã¡äžããŠã¿ã first appeared on Sqripts .
2023幎9æ26æ¥ã«åžåœããã«ã§éå¬ããããStuart Reidåå£«æ¥æ¥ã€ãã³ããç¹å¥ã»ãããŒïŒç¥èãŒãããåŠã¶AIãã¹ããã«åå ããŠããŸããã å®ç§ã§ã¯ãªãAIã”ã©ããã¹ãããã âAIãã©ã䜿ããïŒâã«æ³šç®ãéãŸã£ãŠããŸãããå®ç§ã§ã¯ãªãAIãâã©ããã¹ããããïŒâã«ã€ããŠã¯ã»ãšãã©è°è«ããããŠããŸããã AIãããã¯ãã®ãã¹ãã«ã€ããŠãAIãã¹ãã®ç¬¬äžäººè
ã§ããStuart Reidå士ãšè¥¿åº·æŽå
çããæãããŠç¹å¥ã»ãããŒãéå¬ããŸãã ã»ãããŒæŠèŠ ä»ãã1幎ã»ã©åã2022幎ã®ç§ãŸã§ã¯ãçæAIãªã©ã§è©±é¡ã«ãªããã®ã¯ãã£ãŠããèªç¥åºŠãããã»ã©é«ããªããçŸåšã»ã©æ®åã¯ããŠããŸããã§ããã ãšããã2022幎11æã OpenAI ã ChatGPT ãçºè¡šãããšããŸãããéã«æ³šç®ãéããITæ¥çã ãã§ãªããããããäžéäžè¬ãæè²æ¥çãåäŸãã¡ã«ãŸã§èªç¥ãããããã«ãªããŸããã AIã¯ä»ãŸãã«ãæ¥éãªæ¡å€§æãè¿ããŠãããšãããŸãã ãã®AIãšãããã®ãããããïŒããšæåã®å£°ãæããããªãããšãå€ãã®ã§ãããåé¢ããå®ç§ã§ãªãããšæããããšãå€ãã®ããŸãäºå®ã§ãã ChatGPTã䜿ã£ãããšã®ããæ¹ãªãçµéšããããããããŸããããããã£ãšãééã£ãçããããçå®ã®ããã«ãäŒããããšããããŸãã ãããã” AIãå®ç§ã§ã¯ãªã “ãšããã§ãã å®ç§ã§ã¯ãªãAIã§ããããã£ããã®äŸ¿å©ãªã¢ããªã®ã§å©çšããªãæã¯ãããŸãããããããå©çšããŠã¿ããšããã§ãã£ã±ãå®ç§ã§ãªãã®ã§ãAIã®å質ãã課é¡ã«ãªãã ã©ã®ããã«å©çšããŠããã®ããã¯ãããŠå©çšããŠãããã®ãâŠã ãããªããšã«é ãæ©ãŸããå質çéã®æ¹ã
ã«ãã¬ãŒã³ããããã®ããæ¬æ¥ã®ç¹å¥ã»ãããŒãç¥èãŒãããåŠã¶AIãã¹ããã§ãã ãŸãã«ãAIã®å質ãã«ã¹ããããåœãŠããšãã¹ããŒã3åã®è¬æŒãèãããšãã§ããŸããã Building Trust in AI through Risk: An Emerging Test SpecialismïœStuart Reidåå£«è¬æŒ ãŸãã¯Stuart Reidå士ãç»å£ãããŸããã ã¿ã€ãã«ãçŽèš³ãããšã ãªã¹ã¯ãéããŠAIã®ä¿¡é Œãç¯ãïŒ æ°ããªãã¹ãå°éåé ãšãªããŸãã AIãã¯ãããžãŒã®95ïŒ
ã¯æ©æ¢°åŠç¿ã·ã¹ãã ïŒMachine Lerning SystemïŒãšã®ããšã§ãMLSãäžå¿ã«è¬æŒãé²ã¿ãŸãã åé ããäžæ°ã«ã²ãã€ããããå
容ã§ããã ïŒèŠçŽïŒ 2022幎ã«ã¯92ïŒ
ã®äŒæ¥ãAIã«æè³ãããAIãã倧ããªå©çãåŸãããããã«ãªã£ãŠããŠããŸãã åžå Žã«å€§ããªã€ã³ãã¯ããäžããAIã®æä»£ãå°æ¥ããããšãåããŠããŸãã ããããAIã«ã¯ãä¿¡é Œã§ããªãããšããåé¡ãäŸç¶ãšããŠãããŸãã äžçã§çŽåæ°ã®äººã¯ ãAIã®å©çã¯ãªã¹ã¯ãäžåãã ãšçããŠããŸãããAIãã ä¿¡é Œããªã ãã ããŒã¿ãAIãšå
±æããããªã ããšèãã人ã38ïŒ
ãããŸããïŒæ¥æ¬ãã€ã®ãªã¹ã¯ãä¿¡é Œããªããã®å²åãé«ãïŒ äžæ¹ã§ã€ã®ãªã¹ã®ã»ãŒãã¹ãŠã®äººãSNSã䜿çšããŠããŸãã ãããé©ãã¹ãããšã«ãå®ã«45ïŒ
ã®äººã¯SNSãAIã䜿çšããŠããããšãç¥ããªãã§äœ¿çšããŠããŸãã AIã®ã¡ãªããã享åããŠããããšãç¥ããã«ãä¿¡é ŒããªãããšçããŠãããšããããšã§ãã ä¿¡é Œããªããã°AIã¯çºå±ããŠããããšãã§ããŸããã ã§ã¯ãä¿¡é ŒãåŸãããã«ã¯ã©ãããã°ããã®ãã ãã¹ããããããšã§ãã ãã¹ãæ¥çã«ã¯å€§ããªãã£ã³ã¹ã蚪ããŠããŸãã ããããMLSã®ãªã¹ã¯ãšéèŠæ§ã«é¢ããã話ã«ãªãã®ã§ãããè¬æŒã«å
é§ããŠç¹å¥å¯çš¿ãããŠãã ãã¡ãã®èšäº ã«ã詳ãã解説ãããŠããŸãã®ã§ããã²ãåç
§ãã ããã ãæ¥æ¬èªãAIã®ãªã¹ã¯ããŒã¹ãã¹ã/Risk-Based Testing for AI äžã§ãããå
¥åããŒã¿ã®ãªã¹ã¯ãã§ã¯ã ãineffective data governanceïŒé广çãªããŒã¿ã¬ããã³ã¹ïŒãã«ã€ããŠãã39ïŒ
ãããŒã¿ãã©ã€ãã·ãŒã¯çæAIã®ãªã¹ã¯ã§ãããšèããŠããã«ãé¢ãããããã®ãªã¹ã¯ã軜æžããããšããŠããã®ã¯20%ã®ã¿ã çŽååã¯ãã¹ããããŠããªãããã¹ããããã«å
¬éããŠå©çãåŸãããšãéžæããŠããå¯èœæ§ãããã ãéçºãªã¹ã¯ãã§ã¯ã ãlack of explainability (e.g. selected algorithm is difficult to explain) ïŒèª¬æäžè¶³ïŒäŸïŒéžæããã¢ã«ãŽãªãºã ã®èª¬æãé£ããïŒïŒãã«ã€ããŠãã39ïŒ
ããçæAIã«ã¯èª¬æã®æ¬ åŠãšãããªã¹ã¯ããããšèããŠããã«ãé¢ãããããã®ãªã¹ã¯ã軜æžããããšããŠããã®ã¯ããã18ïŒ
ã ãéçºãã¬ãŒã ã¯ãŒã¯ã®ã»ãã¥ãªãã£ãã¹ãã«ã€ããŠã53ïŒ
ã¯ãªã¹ã¯ããããšèããŠããã®ã«ã軜æžãå³ã£ãŠããã®ã¯ããã38ïŒ
ã ãªã©ãMLSã®ãã¹ã宿œå²åã®äœããå質ã®åé¡ç¹ã«ã€ããŠæ°å€ãçšããŠå€§å€ãããããã解説ããŠããã ãããããããŠå顿èãæã€ããšãã§ããŸããã AIïŒMLSïŒç¬èªã®ãã¹ãã«ã€ããŠãReidå士ã®å¯çš¿æã«è©³ãã解説ãããŠãããŸãã ãæ¥æ¬èªãAIã®ãªã¹ã¯ããŒã¹ãã¹ã/Risk-Based Testing for AI (æ¥æ¬èªç¿»èš³ç) ã³ãŒããŒãã¬ã€ã¯ ãªãã©ã€ã³éå¬ã®ã»ãããŒãªãã§ã¯ã®ã³ãŒããŒãã¬ã€ã¯ã§ã¯ãåžåœããã«ã®ãµã³ãã€ãããšã³ãŒããŒã§äžæ¯ã åå è
å士ã®ååºäº€æãç»å£è
ãšåå è
ã®éè«é¢šæ¯ãèŠãããã®ãããªãã©ã€ã³éå¬ãªãã§ã¯ã§ãã ãªã³ã©ã€ã³ã«æ
£ããŠããŸã£ãŠãããã®ããã§ããããã¯ããã®ãããªé¢šæ¯ã¯ããã§ããã äŒå ŽãçºããŠãããšããããããªéè«ãç¬ã声ãèãããŠããŠãæž©ãã¿ãæããŸããã AIã®AIã«ããAIã®ããã®ãã¹ãïœè¥¿åº·æŽåå£«è¬æŒ ç¶ããŠã¯è¥¿åº·æŽå士ã®è¬æŒãAIã®AIã«ããAIã®ããã®ãã¹ããã§ãã æã
äŒå Žãç¬ãã«å
ã¿ãªãããæ§ã
ãªäºäŸãšãšãã«AIãã¹ãã®å
·äœäŸã解説ããŠãã ãããŸããã ã·ããªã¢ã³ãã¹ããŒãšçŒãèŠåããAIãäœæããã ã©ã®ããã«ã·ããªã¢ã³ãã¹ããŒãšçŒãèŠåããŠããããšãããšãé¡ã錻ãè³ãèŠãŠããããã§ã¯ãªããããã¯ã°ã©ãŠã³ãã«éªããããã©ããã ãã§å€æããŠããã ãã®ãããªAIãä¿¡é Œã§ãããïŒãšããã話ã¯å€§å€è峿·±ããã®ã§ããã ãŸããAIã®ãã¹ãã«ãããŠã¯ã ã»ãããŸã§ã®ãã¹ãæè¡ã䜿ããªã ã»èªååãå¿
é ã»æ§èœãäžå
·åã®å æé¢ä¿ã®èª¬æãçè§£ã¯æ¥µããŠé£ãããããXAIïŒExplainable AIïŒïŒAIã®äžèº«ã説æã§ããæ°ã«ãªãæè¡ïŒã倧äºã«ãªã ãšããã話ãããããããããŠAIããã¹ãããããšã®é£ãããæããŸããã ã¡ã¿ã¢ã«ãã£ãã¯ãã¹ã AIãã¹ãã®ä»£è¡šçãªäžã€ããã¡ã¿ã¢ã«ãã£ãã¯ãã¹ããã§ãããšãã詳ãã解説ãã ãããŸããã ã»ã¡ã¿ã¢ã«ãã£ãã¯ãã¹ããšã¯AIã®ééããæ¢ãããšãäž» ã»å€å®ãã¹ãèµ·ããããããšã§ãã©ãã§å€å¥ããŠããããããã ã»ãã¹ãã±ãŒã¹èªäœãAIã§çæãããšããç ç©¶ãçãã«ãããªãããŠãã âãæ³³ãã§ããã³ã¢ã©ã®ç»åãå
¥åãããšã¢ã«ã¢ãããšå€å¥ããããšãããã¹ãã±ãŒã¹ãçæããããªã© 西å士ããã£ããã£ãŠããŸãããããã®ãããã®ãã¹ãã¯çºèŠãå€ããé¢çœãããšã®ããšã ã¹ã©ã€ããèŠãªããè¬æŒãèããŠããã ãã§ãã倧å€è峿·±ãé¢çœãã£ãã§ãã å€§èŠæš¡èšèªã¢ãã«ïŒLLMïŒ ç¶ããŠå€§èŠæš¡èšèªã¢ãã«ïŒLLMïŒLarge Language ModelsïŒChatGPTãªã©ïŒã®ãã°ãèŠã€ããã話ããããŸããã LLMã¯äººéã®ããã«äŒè©±ããŸãããäžåç¥æ§ãæã£ãŠããªãã ãæ¬¡ã®åèªäºæž¬ãã·ãŒã³ãã«ãããªãããã åèªã厩ãã²ãŒã ããããããšééããã 西å士ã®ã話ã«ãã£ãäŸãããã£ãã垰瀟åŸã«ChatGPTïŒGPT-3.5ïŒã§è©ŠããŠã¿ãŸããã ã1.ã4æ¡Ã4æ¡ã®æãç®ããããããšãŸãééãã äžæ£è§£ ã æ£è§£ã¯ã1958Ã5089=9,964,262ãã§ãã ç¶ããŠåèªãã¹ãã 2.ãSã§å§ãŸãSã§çµããåèªãæããŠ äžæ£è§£ ããç·ãã£ãŠãŸãããã5çªãééããŠããŸããã ããäžã€è©ŠããŠã¿ãŸãã 3.ãPã§å§ãŸãPã§çµããåèªãæããŠ äžæ£è§£ ãããæããã£ãã§ããã ééããŠããã«ãããããããåçã®åŸã«æ³šæäºé
ãŸã§è¿°ã¹ãŠãããChat-GPTã«æè¬ããŠå®éšãçµãããããšæããŸãã ããŠãã¬ããŒãã«æ»ããŸããã西å士ã®è¬æŒã¯ã AIãæããå¿
èŠã¯ãããŸããã AIã䜿ãããªããäŒç€Ÿãåã¡ãŸãã é²ãæ¹åã¯ããããã£ãŠããŸãã ã©ã¡ãã«é²ããã¯ãã¿ãªãããæ±ºããããšã§ãã ãšç· ããããããŸããã AIãã¹ãåã³ã·ããã©ã€ãæŠç¥ïœé«æ©å¯¿äžåå£«è¬æŒ ç¶ããŠé«æ©å¯¿äžå士ã®è¬æŒãAIãã¹ãåã³ã·ããã©ã€ãæŠç¥ãã§ãã 11/16åè¡äºå®ïŒãã¡ãããããããé¡ãããŸãã AIãšããã®ã¯é¿ããŠéããªããªã£ãŠããããAIã®ãã¹ããšããã®ã¯å€§å€ã ãšæããŠããã ãã¹ãã®ä»æ¹ãè€éã«ãªã£ãŠããã 2ïœ3幎åãŸã§ã¯Shift-Leftãå±ããŠããããä»ã¯ãªãShift-Rightãªã®ãã ãšããã話ãããå§ãŸããŸããã åèã ããŸãããã·ããã¬ãããã«ã€ããŠèããŠã¿ã Shift-Rightã«ã€ããŠã¯ã ã»ããŸãå®çŸ©ã¯ãªã ã»Shift-Leftã§ããããããã§ããªããã仿¹ãªãShift-Rightææ³ããšã£ãŠãã ãœãããŠã§ã¢ã®å·šå€§åãè€éåã«äŒŽããShift-RightãèããŠããå¿
èŠãããææã«æ¥ãŠããã å®éã«ãã«ããããŠå®¢å
ã«åºãçŽåããããã¯å®¢å
ã«åºãŠãããã¹ããããªããã°ãªããªããšããããšããä»åŸå¢ããŠããã®ã§ã¯ãªããã ãšã®ããšã§ãåè³ªã«æºããæ¹ã
ã®ä»äºã¯å¢ããŠãããShift-Leftããããªããã°ãªããªãããShift-Rightãå¢ããŠããã®ã§ã¯ãªãããšäºæž¬ãããŠããŸããã AIã®ãã¹ãã«ã€ããŠã¯ã ã»çãããªããã¹ããšèšãããŠãã ã»åºæ¬ãã¹ãã±ãŒã¹ãç¡é倧 ã»ãšãã£ãŠããã¹ãã±ãŒã¹ïŒããŒã¿ïŒãã¡ãããšäœããªã ãããªäžã§ããŸã å®ç§ãªãœãªã¥ãŒã·ã§ã³ã¯æã£ãŠããªããããªããšãå質ãæ
ä¿ããŠãããããšç ç©¶ããŠãããšããã§ããããšããã話ãã§ããã ãŸãšã ä»åã®ãã¬ãã¢ã ã»ãããŒã¯ãç¥èãŒãããåŠã¶AIãã¹ãããšããããšã§ãå°éçšèªããæªããã£ãç§ã§ãããéåžžã«ããããããããŸãèå³ããããããå
容ã§ããã AIãå©çšããæè¡ã¯ãŸã ãŸã ãããã鲿©ã»é²åããŠãããŸãããèå³ãæã£ãŠAIãšä»²è¯ãããŠãããããšæããŸããã 3人ã®å士ã«ã¯ç±ã楜ããè¬æŒããèããããã ããæ¬åœã«ããããšãããããŸããã The post ãç¥èãŒãããåŠã¶AIãã¹ããã»ãããŒåå ã¬ããŒã first appeared on Sqripts .
ã©ããITã€ã³ãã©ãšã³ãžãã¢ã®ãã£ããŒã§ãã æ®æ®µã®æ¥åã¯ã客æ§å
ã«å®æçã«ã䌺ãããµãŒããŒãã¯ã©ã€ã¢ã³ã端æ«ãªã©ã®ã¡ã³ããã³ã¹ãã³ã³ãµã«ãããŠããŸãã ããæè¿ã¯ãWindows Server 2012/2012 R2ãã®ãã€ã¯ããœãããµããŒãã2023幎10æã«çµäºããŠããŸã話é¡ãå€ããããŸãã ãWindows Server 2003ããããWindows Server 2012/2012 R2ããžãªãã¬ã€ã¹ãè¡ããçŸåšã皌åããŠããã±ãŒã¹ãå€ãããã§ãå¿
ç¶çã«ãã®ã¿ã€ãã³ã°ã§ã®ãªãã¬ã€ã¹ãå«ç·ã®èª²é¡ã«ãªã£ãŠããŸãã ãµããŒãçµäºåŸã¯ããã€ã¯ããœããããã®æ°èŠã®ã»ãã¥ãªãã£ããããæäŸãããªããªããŸãããã®çºãæ°ããªè匱æ§ãèŠã€ãã£ãå Žåããã®è匱æ§ãçã£ãæ»æãé²ãããšãé£ãããªããŸãããŸãããã©ãã«æã«ãã€ã¯ããœããã®ãµããŒããåããããªããããããžãã¹ãæ¢ãŸããªã¹ã¯ãé«ãŸããŸããæ¢ã«ãWindows Server 2012/2012 R2ãã®ãªãã¬ã€ã¹ã®ã話ã¯å€ãé ããŠãããŸããããã®äžã§ãå€ãçžè«ã¯Active DirectoryïŒã¢ã¯ãã£ãã»ãã£ã¬ã¯ããªïŒã®ç§»è¡ããã¡ã€ã«ãµãŒããŒã®ç§»è¡ãå«ãæ¡ä»¶ã§ãã ä»åã¯Active Directoryã®ç§»è¡ã«é¢ããŠã話ãããŠé ããŸããActive Directoryãšã¯ãWindows Server 2000ããæäŸãéå§ãããæ©èœã§ããããã¯ãŒã¯ã«ã€ãªãã§ããã¯ã©ã€ã¢ã³ã端æ«ããµãŒããŒãããªã³ã¿ãŒãã¢ããªã±ãŒã·ã§ã³ãªã©ã®æ
å ±ãåéããäžå
管çã§ãããã£ã¬ã¯ããªãµãŒãã¹ã§ããActive Directoryã®æŽå²ã¯é·ããªãã®ã§ä»åã¯å²æããããŸãïŒç¬ïŒã ã§ã¯æ¬é¡ã«æ»ããŸããActive Directoryãç§»è¡ããæé ã¯ããããšããã§ç޹ä»ãããŠããŸãããä»åã¯ãActive Directoryã皌åããŠãããWindows Server 2012 R2ããããWindows Server 2019ãè¥ããã¯ãWindows Server 2022ããžãªãã¬ã€ã¹ããéã«æ³šæãå¿
èŠãªäºã玹ä»ããŸããActive Directoryã®ç§»è¡äœæ¥ã§ã¯ãã客æ§ãžã®ãã¢ãªã³ã°ãæ§ãµãŒããŒã®èª¿æ»ãåæèšå®ããããã¯ãŒã¯èšå®ãActive Directoryåå çã
ã®äœæ¥åŸããã¡ã€ã³ã³ã³ãããŒã©ãŒææ Œäœæ¥ã«å
¥ããŸãããçšã«äžå³ã®ãããªãšã©ãŒãçºçããäºããããŸãã ADãµãŒããŒãªãã¬ã€ã¹æã«èæ
®ããŠæ§æãããŠããå Žåã¯åºãªãã€ã¬ã®ã¥ã©ãŒãªãšã©ãŒã§ããããWindows Server 2022ãã§ã¯SYSVOLå
±æã®ã¬ããªã±ãŒãã«DFS-Rãå©çšããŠããŸããæ°èŠæ§ç¯ã§ã¯çºçããªãã®ã§ãããWindows Server 2003é ããActive Directoryãå©çšããŠããŠãããŒãžã§ã³ã¢ãããããªãã¬ã€ã¹ãããéã«FRSããDFS-Rã«å€æããŠããªãæã«èŠãããŸããã¡ãªã¿ã«ãFRSãšã¯ä»¥åãã䜿çšãããŠããã¬ããªã±ãŒã·ã§ã³ãµãŒãã¹ã§ããWindows Server 2016ããŸã§ã¯ãµããŒããããŠãããWindows Server 2019以éã§ã¯ãµããŒããããŠãããŸããã 💡 Active Directory ã® SYSVOL ã¬ããªã±ãŒã·ã§ã³æ¹åŒãšããŠãåŸæ¥ã§ã¯ãã¡ã€ã«ã¬ããªã±ãŒã·ã§ã³ã·ã¹ãã ïŒFRSïŒFile Replication SystemïŒã䜿ãããŠããŸãããããã¡ã€ã³æ©èœã¬ãã« Windows Server 2008 ãã忣ãã¡ã€ã«ã·ã¹ãã ã¬ããªã±ãŒã·ã§ã³ïŒDFS-RïŒDistributed File System ReplicationïŒãå©çšã§ããããã«ãªããŸããããŸããDFS-R ãžåãæ¿ããããšã§ãSYSVOL 倿޿
å ±ã®å·®åã®ã¿ãåæããããããSYSVOL ã«å€æŽãçºçããå Žåã¯å³æã«åæãè¡ãããããªã©ã®ã¡ãªããããããŸãã ãšãããšã§ãããããã±ãŒã¹ã®æã¯ãã¡ã€ã³ã³ã³ãããŒã©ãŒææ Œäœæ¥åã«Active Directory ã® SYSVOL ã¬ããªã±ãŒã·ã§ã³æ¹åŒãFRSããDFS-Rã«å€æããäœæ¥ãå¿
èŠãšãªããŸããFSRããDFS-Rã«å€æããã«ã¯äžèšå€æã³ãã³ããå©çšããŸãã ãFRSâDFS-R倿ã³ãã³ãã ãdfsrmig.exe /CreateGlobalObjects ãdfsrmig.exe /GetGlobalState ãdfsrmig.exe /GetMigrationState ãdfsrmig /SetGlobalState 1 ãdfsrmig /GetMigrationState ãdfsrmig /SetGlobalState 2 ãdfsrmig /GetMigrationState ãdfsrmig /SetGlobalState 3 ãdfsrmig /GetMigrationState ã³ãã³ãå®è¡åŸãåé¡ãªãFRSããDFS-Rã«å€æãããããšã確èªã§ããã°ããã¡ã€ã³ã³ã³ãããŒã©ãŒã®ææ Œäœæ¥ã宿œã§ããŸãããã®åŸãADã®ãã€ã°ã¬ãŒã·ã§ã³ãè¡ãã°ãªãã¬ã€ã¹å®äºãšãªããŸãã ä»åã¯Active Directoryç§»è¡æã®æ³šæç¹ãšããŠãFRSããšãDFS-Rãã®è©±ããããŠé ããŸããã ãŸã 1幎éãããã¯Windows Server 2012/2012R2ã®ãªãã¬ã€ã¹ã¯å€ããããšèŠãŠããŸããæè¿ã¯å
šãæ³å®ããªãæé ãå¿
èŠãšãªãã±ãŒã¹ã¯ããŸããããŸããããåããããªã±ãŒã¹ã®ãªãã¬ã€ã¹ãæ°èŠæ§ç¯ã§ã決ãŸã£ãæé éãã«é²ãŸãªãã€ã¬ã®ã¥ã©ãŒæé ã¯çºçãããã®ã§ããåœç€Ÿã§ã¯ã€ã¬ã®ã¥ã©ãŒãªæé ãå¿
èŠã«ãªã£ãæã¯åçŸç°å¢ãäœããåé¡ãç¹å®ããŠæé 確ç«ãšãã¬ããžåãè¡ã£ãŠå¯Ÿå¿ã®å質åäžã«åãçµãã§ããŸãã The post Active Directoryç§»è¡æã®ãFRSããšãDFS-Rã first appeared on Sqripts .
ã¯ããã« ååã¯ãèªå販売æ©ã顿ã«ããŠãBDDãçšããããã»ã¹ã®ãå®åŒå(Formulation)ãã®éšåãŸã§ã説æããŸããã ä»åã¯ããèªåå(Automation)ãã®éšåã説æããŸãã 5. èªåå ååã®èšäºã®ã4. ã¬ãã¥ãŒããŸã§ãèªååã«ã€ããŠã¯äžåèããŠããŸããã§ãããïŒBDDã¯èªååãç®çã§ã¯ãªããšç¬¬4åã§ãäŒãããéãã§ããïŒ ãããŸã§ããŠåããŠãèªååã«ã€ããŠèããŸãã ä»åã¯ãååäœæãã以äžã®Gherkinèšæ³ã®ã·ããªãªãã€ã³ãããã«ããŠèªååãè¡ããŸãã Feature: èªåè²©å£²æ© Scenario: 飲ã¿ç©ãè²·ããšã飲ã¿ç©ä»£ãåŒããéé¡ã®ãé£ããåºã Given èªå販売æ©ããã When 550 åãå
¥ãã And 120 åã® "ã³ãŒã©" ãéžæãã Then "ã³ãŒã©" ãåºãŠãã And 430 åãåºãŠãã èªååã®æé 0. BDDã®ãã¬ãŒã ã¯ãŒã¯ãå°å
¥ãã BDDã§è¡ãããã®ãã¬ãŒã ã¯ãŒã¯ãå°å
¥ããŸããæ¬èšäºã§ã¯ã ããã°ã©ãã³ã°èšèªâŠJava ãã¬ãŒã ã¯ãŒã¯âŠCucumber ãã«ãããŒã«âŠMaven ã§èšã¿ãŸãã ãŸããIDEã¯IntelliJã䜿çšããŠããããCucumber for Javaãã®ãã©ã°ã€ã³ãã€ã³ã¹ããŒã«æžã¿ã§ããèšäºäžã«èŒã£ãŠããç»åã¯å
šãŠIntelliJã®ã¹ã¯ãªãŒã³ã·ã§ããã§ããããšããäºæ¿ãã ããã Cucumberã®æ§é ãçè§£ãã Cucumberã¯ä»¥äžã®æ§é ãäœæããŠåãããŸãã Gherkinèšæ³ã®ã·ããªãªãšãã¹ãã³ãŒããåãããŠããã®ããCucumberãã¯ãããšããBDDãã¬ãŒã ã¯ãŒã¯ã®ç¹åŸŽã§ãã ããã«ãããããžãã¹é¢ä¿è
ã¯Gherkinèšæ³ã®ã·ããªãªãèŠãã ãã§ãã©ã®ãããªæ¯ãèããå®çŸ©ããŠããã®ãçè§£ããããšãã§ããŸãããã®éã«ãããã°ã©ãã³ã°ç¹æã®ã¹ãã«ã¯å¿
èŠãããŸããã Cucumberã®ãããžã§ã¯ããCloneãã ä»åã¯ã cucumber-java-skeleton ã®ãããžã§ã¯ããCloneããŸãã Cloneã®ä»æ¹ãšCucumberã®å®è¡ã®ä»æ¹ã«ã€ããŠã¯ãããžã§ã¯ãã®Readmeãã芧ãã ããã ãã¹ããå®è¡ã§ããããšã確èªãã Gradleãããã¯MavenãçšããŠããããžã§ã¯ãã®Readmeã«æžããŠããéãã«ãã¹ããå®è¡ããŸãã äŸãã°Mavenã®å Žåã以äžã®ããã«ãã¹ããå®è¡ã§ããã°OKã§ããåæç¶æ
ã§ã¯ãã¹ãã倱æããããã«ãªã£ãŠããŸãã IDEäžã§ãã£ãŒãã£ãŒãã¡ã€ã«ã®ãã¹ãå®è¡ã§ããããšã確èªãã Gradleãããã¯Mavenã§ãã¹ãå®è¡ãããšãIDEã®ãã£ãŒãã£ãŒãã¡ã€ã«äžã§Cucumberã®å®è¡ãã§ããããã«ãªã£ãŠããŸãã ä»åã¯Cloneãããããžã§ã¯ãã«ããã©ã«ãã§å
¥ã£ãŠããmaven/src/test/resources/io/cucumber/skeleton/belly.featureã®ãã¡ã€ã«ãéããŠã¿ãŸãããããããšã以äžã®ç»åã®ããã«ãªã£ãŠããã¯ãã§ãã ãã®äžã§ãè¡çªå·ã®1è¡ç®ãããã¯3è¡ç®ã®å³åŽã«ã€ããŠããäžè§åœ¢2ã€ã®ã¢ã€ã³ã³ãã¯ãªãã¯ããŸãããããšã以äžã®ãããªãŠã£ã³ããŠãåºãŠããã¯ãã§ãããã®äžã®äžçªäžã«ãããRun âããâããã¯ãªãã¯ãããšãIDEäžã§Cucumberã®ãã¹ããå®è¡ã§ããŸãã å®è¡åŸã以äžã®ç»åã®ãããªçµæã«ãªãã°OKã§ãã äžèŠãªãã¡ã€ã«ããã³èšè¿°ãåé€ãã å®éã®ãããžã§ã¯ããèšè¿°ããäžã§ä»¥äžã®ãã¡ã€ã«ã¯äžèŠãªã®ã§ãåé€ããŠãã ããã maven/src/test/resources/io/cucumber/skeleton/belly.feature maven/src/main/java/io/cucumber/skeleton/Belly.java maven/src/test/java/io/cucumber/skeleton/StepDefinitions.java 以äžã§ãCucumberãçšããŠBDDã®èªååãè¡ãæºåãã§ããŸããã èªååã®æé 1. ãã£ãŒãã£ãŒãã¡ã€ã«ã«èšèŒãã æ°ãã«ãã£ãŒãã£ãŒãã¡ã€ã«ãäœæããååäœæãã以äžã®Gherkinèšæ³ã®ã·ããªãªãèšèŒããŸããä»åã¯maven/src/test/resources/io.cucumber.vendormachine/vendormachine.featureãšãããã¡ã€ã«ãäœæããŸããã Feature: èªåè²©å£²æ© Scenario: 飲ã¿ç©ãè²·ããšã飲ã¿ç©ä»£ãåŒããéé¡ã®ãé£ããåºã Given èªå販売æ©ããã When 550 åãå
¥ãã And 120 åã® "ã³ãŒã©" ãéžæãã Then "ã³ãŒã©" ãåºãŠãã And 430 åãåºãŠãã èªååã®æé 2. ãã£ãŒãã£ãŒãã¡ã€ã«ãå®è¡ãã倱æã確èªãã ãèªååã®æé 1ãã§äœæãããã£ãŒãã£ãŒãã¡ã€ã«äžã§ãCucumberã®å®è¡ãããŸãã ãããšã以äžã®ããã«ãã¹ã倱æãšãªãã¯ãã§ãã ãã®æç¹ã§ã¯å€±æããŠããç¶æ
ãæ£è§£ãšãªããŸãããªããªãã°ã·ããªãªãèšè¿°ããã ãã§ãããããã®ã¹ãããã«å¯Ÿããå®è£
ãããŠããªãããã§ãã ãªããäžã®ãã¹ã倱ææã®ç»åã§ã¯ã以äžã®ãããªãã¹ãå®è¡ã¹ããŒã¿ã¹ã«ãªã£ãŠããŸãã Feature: èªåè²©å£²æ© Scenario: 飲ã¿ç©ãè²·ããšã飲ã¿ç©ä»£ãåŒããéé¡ã®ãé£ããåºã Given èªå販売æ©ããã //âãã¹ã倱æ When 550 åãå
¥ãã //âå®è¡ã¹ããã And 120 åã® "ã³ãŒã©" ãéžæãã //âå®è¡ã¹ããã Then "ã³ãŒã©" ãåºãŠãã //âå®è¡ã¹ããã And 430 åãåºãŠãã //âå®è¡ã¹ããã Feature: èªåè²©å£²æ© Scenario: 飲ã¿ç©ãè²·ããšã飲ã¿ç©ä»£ãåŒããéé¡ã®ãé£ããåºã Given èªå販売æ©ããã //âãã¹ã倱æ When 550 åãå
¥ãã //âå®è¡ã¹ããã And 120 åã® "ã³ãŒã©" ãéžæãã //âå®è¡ã¹ããã Then "ã³ãŒã©" ãåºãŠãã //âå®è¡ã¹ããã And 430 åãåºãŠãã //âå®è¡ã¹ããã èªååã®æé 3. ã¹ãããå®çŸ©ãã¡ã€ã«ãäœæããGivenã¹ãããã®å®è£
ãè¡ã ãèªååã®æé 1ãã§äœæãããã£ãŒãã£ãŒãã¡ã€ã«ãéããšã以äžã®ããã«ãªã£ãŠããŸãã ãã®ãã¡ã4è¡ç®ãã8è¡ç®ã®èæ¯è²ãã€ããŠããéšåã¯ãã³ã³ãã€ã«ãšã©ãŒã®ç¶æ
ã瀺ããŠããŸããä»åã®å Žåãããããã®è¡ã«å¯Ÿå¿ããã¹ãããå®çŸ©ããªãããã³ã³ãã€ã«ãšã©ãŒãšãªã£ãŠããŸãã ããã§ããŸãã¯4è¡ç®ã®ãGiven èªå販売æ©ããããã«å¯Ÿããã¹ãããå®çŸ©ãäœæããŸãã ãèªå販売æ©ããããã®æç« äžã«ã«ãŒãœã«ãæã£ãŠãããšããã³ããšãªãè±é»çã®ã¢ã€ã³ã³ãåºãŠããŸãã è±é»çã®ã¢ã€ã³ã³ãã¯ãªãã¯ãããCreate step definitionããã¯ãªãã¯ããŸãã ãããšãã¹ãããå®çŸ©ãã¡ã€ã«ã®äœæãŠã£ã³ããŠãåºãŠããŸãã®ã§ãé©åœãªãã¡ã€ã«ãäœæããŸãã ä»åã¯ããã¡ã€ã«åããVendorMachineDefinitionsãããã¡ã€ã«ãã¹ããmaven/src/test/java/io/cucumber/skeletonããšããŸããã ãŠã£ã³ããŠã®ãOKããã¿ã³ãæŒããšã以äžã®ç»åã®ãããªmaven/src/test/java/io/cucumber/skeleton/VendorMachineDefinitions.javaãã¡ã€ã«ãèªåäœæãããã¯ãã§ãã ãããŸã§è¡ã£ããããäžåºŠããèªååã®æé 1ãã§äœæãããã£ãŒãã£ãŒãã¡ã€ã«äžã§ãCucumberã®å®è¡ãããŸãã ãããšãååãšãã¹ãçµæãå°ãç°ãªã£ãŠããã®ãåããã§ããããã ã¹ãããå®çŸ©ãã¡ã€ã«äœæåã®ãã¹ãçµæ ã¹ãããå®çŸ©ãã¡ã€ã«äœæåŸã®ãã¹ãçµæ ã¹ãããå®çŸ©ãã¡ã€ã«äœæåã§ã¯ãèªå販売æ©ããããã®éšåã§ãã¹ã倱æã«ãªã£ãŠããã550åãå
¥ãããã¯å®è¡ã¹ããããšãªã£ãŠããŸããã äžæ¹ã¹ãããå®çŸ©ãã¡ã€ã«äœæåŸã§ã¯ãèªå販売æ©ããããã®éšåã¯è¡šç€ºããããã550åãå
¥ãããã®éšåã§ãã¹ã倱æã«ãªã£ãŠããŸãã ããã¯ããèªå販売æ©ããããã®éšåã®ãã¹ããæåããŠãããæ¬¡ã®ã¹ãããã§ããã550åãå
¥ãããã®ã¹ãããå®çŸ©ãèŠã€ãããªããããã¹ã倱æãšãªã£ãŠããããšã瀺ããŠããŸãã èªååã®æé 4. Givenã®äžèº«ãå®è£
ãã ã¹ãããå®çŸ©ãã¡ã€ã«ããã³ã¡ãœãããäœæããã ãã§ã¯ãå
·äœçã«å®è£
ãã§ããŠããŸãããããã§ã次ã«äžèº«ã®å®è£
ãè¡ããŸãã ä»åã®å Žåã以äžã®ç»åã®ããã«èšè¿°ããŸããçŸæç¹ã§ã¯VendorMachineã¯ã©ã¹ãç¡ãã«ããããããããŸãã§ååšããŠãããã®ããã«æžãã®ã¯TDDãæžãæãšäŒŒãŠããŸããã ãã®æç¹ã§ã¯ã³ã³ãã€ã«ãšã©ãŒãçºçããŠããç¶æ
ã«ãªã£ãŠããã°OKã§ãã èªååã®æé 5. ã³ã³ãã€ã«ãšã©ãŒã®è§£æ¶ãè¡ã ãèªååã®æé 4ãã§çºçããŠããã³ã³ãã€ã«ãšã©ãŒã®è§£æ¶ãè¡ã£ãŠãããŸãã ä»åã®å Žåãmaven/src/main/java/io/cucumber/vendormachine/VendorMachine.javaãäœæããããšã§ã³ã³ãã€ã«ãšã©ãŒã®è§£æ¶ãè¡ããŸããã èªååã®æé 6. Whenã¹ãããã®å®è£
ãè¡ã å
ã»ã©ãŸã§ãšåæ§ã«ãä»åºŠã¯ãWhen 550 åãå
¥ãããã®ã¹ãããã®å®è£
ãè¡ããŸãã è±é»çã®ã¢ã€ã³ã³ãã¯ãªãã¯ãããCreate step definitionããã¯ãªãã¯ããŸãã ä»åã¯å
ã»ã©ã®ãGiven èªå販売æ©ãããããšåããã¡ã€ã«äžã«ã¹ãããå®çŸ©ã®å®è£
ãè¡ãããããVendorMachineDefinitions(io.cucumber.skeleton)ããéžæããŸãã ãããšãVendorMachineDefinitionsãã¡ã€ã«ã¯ä»¥äžã®ããã«ãªããŸããïŒå€æ°åã¯arg0ããinsertedAmountã«å€æŽããŸããïŒ Tips ã·ããªãªèšèŒæã«ãWhen 550 åãå
¥ããããšãæ°å€ã®ååŸã«åè§ã¹ããŒã¹ãèšèŒãããšãCucumberãèªåçã«æ°å€ã®å€æ°ã ãšå€æããŠãããŸãã åæ§ã«ãThen “ã³ãŒã©” ãåºãŠãããã®ããã«ãçšèªã””ã§æ¬ããšãCucumberãèªåçã«æååã®å€æ°ã ãšå€æããŠãããŸãã Whenã®äžèº«ãå®è£
ãã Givenã®æãšåæ§ã«ãTDDã®ãããªæèŠã§å®è£
ããŠãããŸããä»åã®å Žåã以äžã®ããã«ãªããŸãã ãªããGivenã®æã«çæããVendorMachineã¯ã©ã¹ã掻çšããããããGivenå
ã®ããŒã«ã«å€æ°ã ã£ãvendorMachineããã£ãŒã«ã倿°ã«å€æŽããŠããŸãã ãããŠãVendorMachineã¯ã©ã¹å
ã¯ä»¥äžã®ããã«å€æŽããŸãã 以äžåæ§ã«ãã¹ãããå®çŸ©ãšå®è£
ãäœæããŠãããŸãã ãããã« ä»åã¯ãèªåå(Automation)ããšããŠãBDDã®ãã¬ãŒã ã¯ãŒã¯ã§ããCucumberãçšããå®è£
æ¹æ³ã玹ä»ããŸããã ä»åã¯èª¬æããŸããã§ããããBDDãšããŠã®ã¹ãããå®çŸ©ã宿ãããåŸã¯ããã现ãããã¹ããæžããããå®è£
éšåã®ãªãã¡ã¯ã¿ãªã³ã°ãè¡ã£ãŠãã£ããããŸãã ãã®éçšã§è²ã
ãšå®è£
å
容ã倿Žããããšã«ãªããšã¯æããŸãããä»åã®ã¹ãããå®çŸ©ã宿ãããŠããããšã«ãããå€åŽã®æ¯ãèãã¯åãããšã確èªã§ãããšããå®å¿æãæã£ãŠå€æŽããããšãã§ããŸããããããBDDãATDDã®è¯ãã§ããããŸãã æ¬é£èŒãTDDãšBDD/ATDDããä»åã§æçµåãšãªããŸããä»åã¯ãèªåå(Automation)ããšããããã°ã©ãã³ã°éšåã«ã€ããŠèª¬æããŠãããŸããããBDDã«ãããŠäœãããéèŠãªã®ã¯ãçºèŠ(Discovery)ãã§è¡ãããžãã¹é¢ä¿è
ãšã®åèª¿äœæ¥ã§ããèªååã®ã¿ãè¡ã£ãŠãSeb Roseã«ãéçºã¢ãããŒãã¯å°ãã BDD ã«ã¯ãªã£ãŠããŸãããããšèšãããªãããã«ããŸãããã ãŸããæ¬é£èŒããã£ããã«BDDã«èå³ãæã£ãæ¹ã¯ããã²The BDD Booksã·ãªãŒãºããèªã¿ããã ããã°ãšæããŸãã The BDD Booksã·ãªãŒãºã®æžç±ç޹ä»ããŒãžã¯ä»¥äžã®éãã§ãã ã The BDD Books – Discovery ïŒéŠèš³ïŒ The BDD Books – Discovery Japanese Edition ïŒã ã The BDD Books â Formulation ïŒéŠèš³ïŒThe BDD Books – Formulation Japanese Editionã¯ããããåºçäºå®ïŒã ãThe BDD Books â Automationãã¯ããããåºçäºå® ããã§ã¯ãBDDãéããŠããžãã¹é¢ä¿è
ãšå調ããªãããæ¥ã
ã®æ¥åãè¡ã£ãŠã¿ãŠãã ããã é£èŒäžèЧ TDDãšBDD/ATDD(1)ãTDDã¯ãã¹ãææ³ã§ã¯ãªã TDDãšBDD/ATDD(2)ã2çš®é¡ã®BDD TDDãšBDD/ATDD(3)ãBDDãšATDDãšSbE TDDãšBDD/ATDD(4)ãããŒã«ãšããŠã®BDDãšããã»ã¹ã«çµã¿èŸŒãŸããBDD TDDãšBDD/ATDD(5)ãBDDã®ããã»ã¹ãã®1ãçºèŠ(Discovery)ããšå®äŸãããã³ã° TDDãšBDD/ATDD(6)ãBDDã®ããã»ã¹ãã®2ãå®åŒå(Formulation)ããšBRIEFã®åå TDDãšBDD/ATDD(7)ãBDDã®ããã»ã¹ãã®3ãèªåå(Automation)ã The post TDDãšBDD/ATDD(7)ãBDDã®ããã»ã¹ãã®3ãèªåå(Automation)ã first appeared on Sqripts .
ã¯ãããŸããŠãQAãšã³ãžãã¢ã®æ¡ æºéã§ãã æè¿ããçæAIãšããèšèãèãããç®ã«ãããããããšã¯ãããŸãããïŒ çæAIãå®çšåãããŠããŠããèŠå ãšããŸããŠã¯ããã³ã³ãã¥ãŒã¿æ§èœã®åäžããã³ããçŠã«ããåŽåç°å¢ã®å€åããå°ååã«ããåŽå人å£ã®æžå°ããªã©ãæ§ã
ãªèŠå ã¯ããããšã¯æããŸããã人éã®çšŒååæžã®å¿
èŠã«è¿«ããããã®æ°å¹Žã§é£èºçã«é²åãéããŠããŠããæè¡ã§ãã ãœãããŠã§ã¢ãã¹ãã«ãããŠããAI掻çšã«ãããã¹ãã®èªååã¯è©Šã¿ãããŠããããçæAIã«ãããã¹ãã¹ã¯ãªããã®èªåçæããšãã£ã掻çšãè¡ãããŠããŠããŸãã ãããŸã§äŸ¿å©ã«æããçæAIã§ãããæ¥éã«çºå±ããæè¡ã«ã¯ãããæ£ããå©çšããããã«çæããŠãããªããšãããªãããšããããŸãã ãããã¿ã€ãã«ã«ããããèäœæš©ãã§ãã å»ã什å5幎6æ19æ¥ã«æååºã«ããèäœæš©ã»ãããŒãAIãšèäœæš©ããéå¬ãããæååºããã®çæAIã®å©çšæã«ãããèäœæš©ã®èãæ¹ã«ã€ããŠãäžå®ã®æéãçºè¡šãããŸããã çæAIãå©çšããŠã³ã³ãã³ããçæããå Žåããç¶æ³ã«ãã£ãŠã¯èäœæš©ã®å¯Ÿè±¡ãšãªãããå ŽåããããŸãã ããã§ã¯ãã»ãããŒã§ã®ãã€ã³ããæããªãããçæAIãèäœæš©ã«ã€ããŠäžç·ã«èããŠãããããšæããŸãã â»æ¬ããã°å
容ã¯ä»€å5幎8ææç¹ã®å
容ãšãªããŸãã ã»ãããŒæŠèŠ ã»ãããŒåïŒä»€å5幎床 èäœæš©ã»ãããŒãAIãšèäœæš©ã äž»å¬è
ããïŒæååºèäœæš©èª² é嬿¥ããïŒä»€å5幎6æ19æ¥ èäœæš©æ³ã®æ£ããçè§£ã«åºã¥ããŠçæAIã®å©æŽ»çšãããããããçŸè¡ã®èäœæš©æ³ã®èãæ¹ãAIãšèäœæš©ã®é¢ä¿ã«ã€ããŠã®èª¬æãè¡ãããŸããã 第ïŒéšã§ã¯èäœæš©å¶åºŠã®æŠèŠã«ã€ããŠã®è§£èª¬ã 第ïŒéšã§ã¯AIãšèäœæš©ã«ã€ããŠãçæAIãšèäœæš©ã®é¢ä¿ã«ã€ããŠã®è§£èª¬ã ãšãããïŒéšæ§æã§çŽïŒæéã®ã»ãããŒãšãªã£ãŠããŸããã ã¢ãŒã«ã€ãæ åãè¬çŸ©è³æã¯ æååºã®Webãµã€ã ãã確èªããããšãã§ããŸãã ããããèäœæš©ãšã¯ïŒ ãŸãã¯ã»ãããŒã®ç¬¬ïŒéšãèäœæš©å¶åºŠã®æŠèŠã«ã€ããŠã®è§£èª¬ããšåãããèäœæš©ã«ã€ã㊠æååºã®èäœæš©ããã¹ã ã®å
容ãåŒçšãã€ã€ç¢ºèªã»æŽçããŠãããŸãã èäœæš©ä¿è·ã®ç®ç èäœæš©ããã¹ã 4ããŒãž ã«ä»¥äžã®ããã«èšèŒãããŠããŸãã é©åãªæš©å©ä¿è·ã«ãã£ãŠãåµäœã®ä¿é²ããå³ããæš©å©ã®å¶éã«ãã£ãŠãå
¬æ£ãªå©çšãã確ä¿ãããã£ãŠãæåã®çºå±ã«å¯äžãããããšãç®çãšããŠããŸãã æååºèäœæš©ããã¹ã â» æååºã®èäœæš©ããã¹ã 4ããŒãž ããæ²èŒ èŠã¯ ãæåã®çºå±ã«å¯äžã ããããã«ã¯ãæ°ããªåµé ãåµäœã®ä¿é²ã ãäžå¯æ¬ ã§ããåµäœã®ä¿é²ããä¿ãã«ã¯ãæš©å©ã®ä¿è·ã»æš©å©ã®å¶éã§èäœç©ã® ãå
¬æ£ãªå©çšã ã確ä¿ããèäœè
ã«äžå©çã«ãªããªãããã«å©çšã§ããããã«ããããšã§ãåµäœã®åŸªç°ãçãŸããããã«ããããšããããšã®ããã§ãã ã»ãããŒã§ãã ãèäœè
çã®æš©å©ã»å©çãä¿è·ããããšããšããèäœç©ãåæ»ã«å©çšã§ããããšãã®ãã©ã³ã¹ãåãããšãéèŠãšèããããŠããã ãšè©±ãããŠããŸããã èäœç©ã«ã€ã㊠次ã«èäœç©ã«ã€ããŠã®å®çŸ©ã確èªããŸãããã èäœæš©ããã¹ã 5ããŒãž ã®èšèŒå
容ã«ã èäœæš©æ³ã§ã¯ãèäœç©ã¯ã ã(a)ææ³åã¯ææ
ã (b)åµäœçã« (c)衚çŸãããã®ã§ãã€ãŠã(d)æèžãåŠè¡ãçŸè¡åã¯é³æ¥œã®ç¯å²ã«å±ãããã®ã æååºèäœæš©ããã¹ã ãšå®çŸ©ãããŠããŸãã ã€ãŸãã ææ³ãææ
ãªã©ã®å«ãŸããªãããŒã¿ãäºå®ãšãã£ããã® åµäœã§ã¯ãªãæš¡å£ã§ãã£ããããããµããã㮠衚çŸããŠããªãã¢ã€ãã¢ã®ãŸãŸ å·¥æ¥è£œå ãšããããã«ãå®çŸ©ããå€ãããã®ã¯èäœç©ãšèªããããªãå¯èœæ§ãé«ãã§ãã æ¥åã«èº«è¿ãªèäœç©ã«ã€ã㊠ããã§ã¯ããœãããŠã§ã¢ãã¹ãã«ããã身è¿ãªèäœç©ã«ã€ããŠã¯ã©ã®ãããªãã®ãããã§ããããïŒ ãœãããŠã§ã¢ãã¹ãã«ãããäœæç©ã§ã¯ã èŠä»¶å®çŸ©æž 詳现èšèšæž ãã¹ãã¹ã€ãŒã ãã¹ãã·ããªãª ãã¹ãã¹ã¯ãªãã ãã¹ããµããªãŒã¬ããŒã ãªã©ãæ§ã
ãªäœæç©ãååšããããšæããŸãã ãããã«ã€ããŠãèäœç©ã®å®çŸ©ãçš®é¡ã«ããŠã¯ããŠã¿ããšã ææ³ãåµäœçã«è¡šçŸããèšèªãããã°ã©ã ã®èäœç©ãšããŠãªãåŸããã® ã¯ã ãã¹ãã·ããªãª ãã¹ãã¹ã¯ãªãã ãã¹ããµããªãŒã¬ããŒã 蟺ãã§ããããã ãã ããã¹ãã®ç®çãšããŠã¯ã誰ãæäœããŠãæ£ããçµæãåŸãããããšããç®çãšããŠããã®ã§ãããã«å¯ŸããŠåµäœæ§ãèŠåºãããšã¯é£ãããããããŸããã ããããçæAIãšã¯ïŒ ç¶ããŠãä»åã®ã»ãããŒã§ã¯èª¬æãšããŠè§ŠããããŠããŸããã§ãããããçæAIãšã¯äœãªã®ãïŒããAIãšäœãéãã®ãïŒãã確èªããŠãããŸãã AIãšçæAIã®å®çŸ©ã«ã€ã㊠AIã«ã€ã㊠åçåŽåçããå
¬éãããŠããã AIã®å®çŸ©ãšéçºçµç·¯ ãã«ã¯ã 人工ç¥èœïŒAIïŒartificial intelligenceïŒã«ã€ããŠã¯ãæç¢ºãªå®çŸ©ã¯ååšããªãããã倧éã®ç¥èããŒã¿ã«å¯ŸããŠãé«åºŠãªæšè«ãç確ã«è¡ãããšãç®æãããã®ãïŒäžè¬ç€Ÿå£æ³äºº 人工ç¥èœåŠäŒèšç«è¶£ææžããã®æç²ïŒãšãããŠããã AIã®å®çŸ©ãšéçºçµç·¯ ãšèšèŒãããŠããŸãã ãã®ä»ã«ç·åçããå
¬éãããŠããã 人工ç¥èœ(AIïŒãšãŒã¢ã€)ã®ããã¿ ãã§ãã ãAIãã«é¢ãã確ç«ããå®çŸ©ã¯ãããŸãããã人éã®æèããã»ã¹ãšåããããªåœ¢ã§åäœããããã°ã©ã ããããã¯äººéãç¥çãšæããæ
å ±ïŒãããã»ãïŒåŠçïŒãããïŒã»æè¡ïŒããã
ã€ïŒãšãã£ãåºãæŠå¿µã§çè§£ãããããŠããŸãã 人工ç¥èœ(AIïŒãšãŒã¢ã€)ã®ããã¿ ãšããèšèŒããããŸãã AIã¯æç¢ºã«ç¢ºç«ãããå®çŸ©ã¯ç¡ãã ãšããå°ãææ§ãªæè¡ã§ããã倧éã®ããŒã¿ã«å¯Ÿã㊠人éãæèã»åŠçãè¡ãããšãšåãããã«ãã³ã³ãã¥ãŒã¿ãåäœãè¡ãããšãç®çãšããæè¡ã ãšããããšã§ãäž»ã«äººéã®ä»£ããã«åŠçãè¡ãã³ã³ãã¥ãŒã¿ãæãããšãå€ãå°è±¡ã§ãã çæAIã«ã€ã㊠NIKKEI COMPASSã®çæAIã®è§£èª¬ ã«ã¯ã çæAI(è±:Generative AI)ã¯ãç»åãæç« ãé³å£°ãããã°ã©ã ã³ãŒããæ§é åããŒã¿ãªã©ããŸããŸãªã³ã³ãã³ããçæããããšã®ã§ãã人工ç¥èœã®ããšã NIKKEI COMPASSã®çæAIã®è§£èª¬ 倧éã®ããŒã¿ãåŠç¿ããåŠç¿ã¢ãã«ã人éãäœæãããããªçµµãæç« ãçæããããšãã§ããã NIKKEI COMPASSã®çæAIã®è§£èª¬ ãšãããŸãã ã€ãŸããAIãåŠçãæè¡ãæããŠããããšã«å¯ŸããŠã çæAIã¯ãã®AIæè¡ã䜿ã£ãŠæ°ããªã³ã³ãã³ããçæããããšãç®ç ãšããŠããŸãã çæAIã®åŠç¿æ®µéãšçææ®µé çæAIãå©çšããŠæ°ããªã³ã³ãã³ããçæããããã«ã¯ããŸãAIã«ããŒã¿ãèç©ããŠæ
å ±ãåŠç¿ããããåŠç¿æ®µéããšãããã®ããããŸãã ãã®åŠç¿æ®µéã§èç©ããããŒã¿ã«ãã£ãŠãAIã®ç¹åŸŽã¥ããè¡ããããããŸãã æ¬¡ã«ãåŠç¿æžã¿ã®AIã«å¯ŸããŠæ°ããªã³ã³ãã³ããçæãããããã«ãå©çšè
ãã©ã®ãããªã³ã³ãã³ãã çã¿åºãããããšãã£ãèŠæ±ãAIã«æç€ºãåºããŠã³ã³ãã³ããçæãããçææ®µéããšãããã®ããããŸãã ãã®æç€ºã®åºãæ¹ã§ãæçµçãªçæç©ã®ä»äžãããå·Šå³ãããŸãã äž»ãªçæAIãµãŒãã¹ æšä»è©±é¡ã«äžãã£ãŠããäž»ãªçæAIã®çš®é¡ã§ã¯ããç»åçæAIããããã¹ãçæAIããåç»çæAIããé³å£°çæAIããªã©æ§ã
ãªãã®ãå±éãããŠããŸãã äŸãã°ããã¹ãçæAIã«ã€ããŠã¯ããµããŒãã»ã³ã¿ãŒãªã©ãžãã£ããã§åãåãããéã«ã質åã«å¿ããçæã¡ãã»ãŒãžãè¿çãããã ãšããæ©äŒã身è¿ã«å¢ããŠããããšæããŸãã ãœãããŠã§ã¢ãã¹ãã«ãããŠããããã¹ãçæAIã«ãŠãã¹ãã±ãŒã¹ã®èªåçæããã¹ãã¹ã¯ãªããã®èªåçæããã¹ãããŒã¿ã®èªåçæãªã©ãçæAI掻çšã®å Žé¢ãå¢ããŠããŠããŸãã çæAIãå©çšããäžã§ã®èäœæš©ã«é¢ãããã€ã³ã ã§ã¯ãå®éã«çæAIãå©çšããäžã§èäœæš©ã«æ³šæãããã€ã³ãã¯ã©ãã«ãªãã®ããèäœæš©ã»ãããŒã®ïŒéšã§è§£èª¬ãããŠããå
容ãå
ã«ç¢ºèªããŠãããŸãã åé ã§è§ŠããŠããããçæAIãå©çšããŠããŠããç¶æ³ã«ãã£ãŠã¯èäœæš©ã®å¯Ÿè±¡ãšãªãããå Žåãã«ã€ããŠããŸãã察象ãšãªããªãå Žåãã«ã€ããŠãå
·äœçã«èŠãŠãããŸãããã ïŒïŒåŠç¿æ®µéã«ãããåŠç¿ã®ããšãšãªã£ãèäœç© ãŸãïŒã€ç®ã«ãAIã®éçºã»åŠç¿æ®µéã«ããããAIåŠç¿ã®å
ãšãªã£ãããŒã¿ã«ã€ããŠã®èäœæš©ã«é¢ããåé¡ã説æãããŠããŸãã çµè«ãšããŠã¯ã什å5幎6ææç¹ã®èäœæš©æ³ç¬¬ïŒïŒæ¡ã®ïŒã®è§£éã§ã¯ã AIéçºã®ããã®æ
å ±è§£æã¯æ¢åã®èäœç©ã«è¡šçŸãããææ³ãææ
ã®äº«åãç®çãšããå©çšã§ã¯ãªãã ïŒæš©å©å¶éèŠå®ïŒ ãšèããããããšãå€ããååãšããŠèäœæš©è
ã®èš±è«ŸãªãAIåŠç¿ãè¡ãããšãã§ããããã§ãã ã»ãããŒã§ã¯ãäžè¬çãªæ·±å±€åŠç¿ã«ãããAIåŠç¿æ®µéã®äžäŸãå
ã«èª¬æãããŠããŸããã â» æååºã®èäœæš©ã»ãããŒããã¹ã 30ããŒãžïœ ããæ²èŒ ãã¡ãã«æžãããŠããããã«ãAIåŠç¿æ®µéã«ãããŠã¯Webäžã®ããŒã¿ãåéããŠåŠç¿ããŠããããšãå€ããããã«æ°ååç¹ãšãããããªå€§éããŒã¿ã®èäœæš©ã®æç¡ã®å€å¥ããèäœè
ããã®èš±è«ŸãåŸãã ãšããããšãå°é£ã§éçŸå®çãšããç¶æ³ãããäžèšã®åãçµã¿ãè¡ãããŠããããã§ãã å¹³æ21å¹Žæ¹æ£ïŒã€ã³ã¿ãŒãããæ
å ±æ€çŽ¢ãµãŒãã¹ã®ããã®è€è£œãé»åèšç®æ©ã«ããæ
å ±è§£æã®ããã®è€è£œçã«ã€ããŠãæš©å©å¶éèŠå®ãæŽå å¹³æ24å¹Žæ¹æ£ïŒãããããåã蟌ã¿ããæè¡ã®éçºåã¯å®çšåã®ããã®è©Šéšã®çšã«äŸããããã®å©çšçã«ã€ããŠãæš©å©å¶éèŠå®ãæŽå 次äžä»£ç¥è²¡ã·ã¹ãã æ€èšå§å¡äŒãç¥çè²¡ç£æŠç¥æ¬éšã»H27ïœ28ã æ°ããªæ
å ±è²¡æ€èšå§å¡äŒãç¥çè²¡ç£æŠç¥æ¬éšã» H28ïœ29ã ãããã®åãçµã¿ã®çµæãèäœæš©æ³ç¬¬ïŒïŒæ¡ã®ïŒãå°å
¥ããã éçºã®ããã®æ
å ±è§£æã®ããã«ãèäœç©ã«è¡šçŸãããææ³åã¯ææ
ã®äº«åãç®çãšããªãå©çšè¡çºã¯ãååãšããŠèäœæš©è
ã®èš±è«Ÿãªãè¡ãããšãå¯èœã§ãïŒæš©å©å¶éèŠå®ïŒã ãšæ³æ¹æ£ã«ãªã£ãŠããããã§ãã â» æååºã®èäœæš©ããã¹ã 65ããŒãž ããæ²èŒ ãã ãããããŸã§ èäœæš©è
ãžã®çµæžçå©çã害ãããã®ã§ã¯ãªãã ãšããããšãåæã®ææ³ãšããŠã¯ããçºã ãèäœæš©è
ã®å©çãäžåœã«å®³ããããšãšãªãå Žåâ»ãã¯ãæ¬æ¡ã®èŠå®ã®å¯Ÿè±¡ãšã¯ãªããŸããã â»äŸãã°ãæ
å ±è§£æçšã«è²©å£²ãããŠããããŒã¿ããŒã¹ã®èäœç©ãåŠç¿ç®çã§è€è£œããå Žåãªã©ã ãšããäœãæžãã®æ¡ä»¶ãã èäœæš©è
ã®èäœç©ã®å©çšåžå Žãšè¡çªãããããããã¯å°æ¥ã«ãããèäœç©ã®æœåšç販路ãé»å®³ããããšãã芳ç¹ãããæçµçã«ã¯åžæ³ã®å Žã§åå¥å
·äœçã«å€æãããŸãã ãšã説æãããŠããŸããã ãœãããŠã§ã¢ãã¹ãã«ãããŠãAIéçºã»åŠç¿ãè¡ãããŠããŸãããå€ãã®äŒæ¥ã§ã¯èªç€Ÿã®éå»ã®ãã¬ããžããAIåŠç¿ãè¡ã£ãŠããããšãå€ãããã§ãã ç§ã®æå±äŒç€ŸïŒAGESTïŒã«ã€ããŸããŠããå
æ¥7æ11æ¥ã«AIæè¡ã®ç ç©¶éçºãè¡ããAGEST AI Lab.ãã®èšç«ãçºè¡šããããŠãããŸãã ãã¡ãã® ããŒã ããŒãž ã«æ
å ±å
¬éããŠãããŸãã®ã§ããåç
§ããã ããã°ãšæããŸãã ïŒïŒçææ®µéã«ãããå
¥åæ
å ±ã®èäœç© ïŒã€ç®ã«ãçæAIãå©çšããŠããŒã¿ãçæããæ®µéã«ããããå
¥åæ
å ±ãšãªããã®ã®èäœæš©ã«é¢ããåé¡ã説æãããŠããŸãã çµè«ãšããŠã¯ã çæAIå©çšã®æç¡ã«é¢ããããæ¢åã®èäœæš©åæ§ã®èãæ¹ãé©çšãããã ãšããããšã®ããã§ãã ã»ãããŒã§èª¬æãããŠããå
容ãšããŸããŠã¯ã ãå©çšããŠç»åçãçæããå Žåã§ããèäœæš©äŸµå®³ãšãªããåŠãã¯ã人ããå©çšããçµµãæããå Žåãªã©ã®ãéåžžã®å Žåãšåæ§ã«å€æãããŸãã AIçæç©ã«ãæ¢åã®èäœç©ãšã®ãé¡äŒŒæ§ãåã¯ãäŸæ æ§ããèªããããªãå Žåãæ¢åã®èäœç©ã®èäœæš©äŸµå®³ãšã¯ãªãããèäœæš©æ³äžã¯èäœæš©è
ã®èš±è«Ÿãªãå©çšããããšãå¯èœã§ãã ããã«å¯ŸããŠãæ¢åã®èäœç©ãšã®ãé¡äŒŒæ§ãåã³ãäŸæ æ§ããèªããããå Žåããã®ãããªAIçæç©ãå©çšããè¡çºã¯ã â æš©å©è
ããå©çšèš±è«ŸãåŸãŠãã ⡠蚱諟ãäžèŠãªæš©å©å¶éèŠå®ãé©çšããã âŠâŠã®ããããã«è©²åœããªãéããèäœæš©äŸµå®³ãšãªããŸãã ãšããããšã§ããã â» æååºã®èäœæš©ã»ãããŒããã¹ã 44ããŒãž ããæ²èŒ äžèšå
容ã®ãšãããç¹ã«AIã ãããšããããšã§ã¯ãªããæ¢åã®èäœæš©åæ§ã®èãæ¹ãé©çšãããŠããã ãšããããšã§ããã ãã ãçæAIå©çšãšããç¹ã§ãããšãç¹ã« çæç©ãäœæããããã®ããã¹ãã®å
¥åæ
å ±ã«ã€ããŠãããé¡äŒŒæ§ããäŸæ æ§ããåãããã ãšããç¹ã¯æ°ãã€ããå¿
èŠãããããã§ãã ïŒïŒçæAIã®çæç©èªäœã®èäœæš©ã®æç¡ ïŒã€ç®ã«ãçæAIã§çæããçæç©èªäœã«ãèäœæš©ã¯èªããããã®ãïŒããèäœè
ã¯èª°ã«ãªãã®ãïŒããšããåé¡ã説æãããŠããŸãã çµè«ãšããŠã¯ã AIãç¬èªã§åµåºãããã®ã¯èäœç©ã«ãªãããå©çšè
ã®åµäœæå³ãä»å
¥ããŠããå Žåã¯èäœç©ã«ãªãã ãšããããšã®ããã§ãã ã»ãããŒã§èª¬æãããŠããå
容ãšããŸããŠã¯ã AIãèªåŸçã«çæãããã®ã¯ã ãææ³åã¯ææ
ãåµäœçã«è¡šçŸãããã®ãã§ã¯ãªããèäœç©ã«è©²åœããªããšèããããŸãã ïŒäŸïŒäººãäœãæç€ºâ»ãäžããïŒåã¯ç°¡åãªæç€ºãäžããã«ãšã©ãŸãïŒ ãçæãã®ãã¿ã³ãæŒãã ãã§AIãçæãããã®ãâ»ããã³ããç ããã«å¯ŸããŠãäººãææ³ææ
ãåµäœçã«è¡šçŸããããã®ãéå
·ããšããŠAIã䜿çšãããã®ãšèªããããã°ãèäœç©ã«è©²åœããAIå©çšè
ãèäœè
ãšãªããšèããããŸãã ãšããããã«ããããŸã§ èäœç©ã¯äººã®ãææ³ãææ
ãªã©ãåµäœçã«è¡šçŸãããã®ãã§ãã ã®ã§ãããã«åœãŠã¯ãŸããªãå©ç𿹿³ãããŠããå Žåã¯èäœç©ã«ã¯è©²åœãããåœãŠã¯ãŸãå Žåã¯å©çšè
ã®èäœç©ãšããŠèããããããã§ãã ãã®èãæ¹ã¯äžã
ã«è峿·±ããäººã®ææ³ãææ
ãå
¥ã£ãŠããªããã°AIãçã¿åºãçæç©ã«ã€ããŠãããšãåµé æ§ãé«ããã®ã§ãã£ããšããŠãèäœç©ã«ãªãåŸããèäœè
ãããªãããšããã±ãŒã¹ãåºãŠããå¯èœæ§ããããŸãã ããšãåããããªçæç©ã ãšããŠãã ãAIç¬èªã§åµãåºãããã®ããšã人ã®åµäœæå³ãä»å
¥ããŠåµãåºãããã®ããšã§ã¯èäœç©ã®æç¡ãç°ãªãã ãšããããšã«ãªããŸãã äœãšèšããŸãããæ°ããæä»£ã«å
¥ã£ãŠããã®ã ããšæ¹ããŠèªèããæèŠã§ããã ãããã« çæAIãæ¥åå©çšããéã«ã¯ã©ã®ãããªããšã«æ³šæãã¹ãã ãããŸã§èäœæš©ã»ãããŒã®è§£èª¬å
å®¹ãæ¯ãè¿ããªãããèäœæš©ãçæAIã«ã€ããŠç¢ºèªããŠããŸããããçµå±ã®ãšããçæAIãæŽ»çšããŠæ¥åå©çšãè¡ã£ãŠããã«åœãã£ãŠã泚æããŠãããã€ã³ãããŸãšããŠãããŸãããã ã» ãã€ã³ãïŒã€ç®ïŒèäœç©ãšãªãåŸãã®ãã©ãã çæAIã®éçºã»åŠç¿æ®µéãçææ®µéãçæç©ã«ã€ããŠãèäœç©ã®å®çŸ© ã(a)ææ³åã¯ææ
ã (b)åµäœçã« (c)衚çŸãããã®ã§ãã€ãŠã(d)æèžãåŠè¡ãçŸè¡åã¯é³æ¥œã®ç¯å²ã«å±ãããã®ã ãšç
§ããåãããŠèäœç©ãšèŠãªããããã確èªããŠããããšãéèŠã§ãã ã» ãã€ã³ãïŒã€ç®ïŒèäœè
ã®æš©å©ã䟵害ããŠããªãã ïŒã€ç®ã®ç¢ºèªã§èäœç©ã§ãã£ãå ŽåãçæAIãå©çšããŠã³ã³ãã³ããçæããäžã§ãèäœæš©ã®äŸµå®³ã«è©²åœããªããã©ããã®ç¢ºèªãå¿
èŠãšãªããŸãã åºæ¬çã«ãæš©å©å¶éèŠå®ã以å€ã§ã®å©çšã¯èäœè
ã«èš±è«Ÿãå¿
èŠãšãªããŸããçæAIã®å©çšã§èäœè
ã®å©çãäžåœã«äŸµå®³ããŠããªãããšãèãæ¹ã®åºæ¬ãšãªããŸãã ä»åŸã®èäœæš©æ³ã®æ¹æ£ã«ã€ããŠããã§ãã¯ã倧å çæAIã«éãããæè¡ã®é²æ©ã«å¿ããŠèäœæš©æ³ãæ¥ã
æä»£ã«åãããŠæ¹æ£ãããŠããŸãã å
æ¥ã«æååºã§è¡ãããèäœæš©ã»ãããŒã®ããã«ãæè¡ã®é²æ©ã«å¿ããŠèãæ¹ãæŽçã»æ€èšããŠæç€ºããããæ³æ¹æ£ãæœè¡ãè¡ãããŠããŸãã æååºã§å
¬éãããŠããèäœæš©ããã¹ããçŸåšã¯ä»€å5幎床çãå
¬éãããŠããŠãå幎床ããèšèŒå
容ã®å€æŽç®æããããŸãã å
端æè¡ã«ã€ããŠã¯æ³æ¹æ£ã®æŽåé »åºŠãæ©ãã®ã§ãæååºãªã©ã®çºä¿¡æ
å ±ãæ³šèŠããŠããããšã倧åã ãšæ¹ããŠæããŸããã The post çæAIãšèäœæš©ã«ã€ããŠèãã first appeared on Sqripts .
ã¿ãªãããããã«ã¡ã¯ïŒãQAãšã³ãžãã¢ã®ããŒããã§ãã 9/22ã«JaSSTæ°æœãéå¬ãããŸãããïŒ JaSST ïŒ æ°æœã§ã®ãã€ããªããéå¬ïŒãªãã©ã€ã³ïŒãªã³ã©ã€ã³ïŒã®ãããåœåã¯æ¥åã®åããªã³ã©ã€ã³èŠèŽãã§ããã°ãšæã£ãŠãŸããããæ²ããããŒãã«åŒ·ãèå³ãæ±ãããããæ¥åã調æŽããŠæ°æœçŸå°åå ãããŠããŸããã ãQAã¹ãã«ã¢ã»ã¹ã¡ã³ããæŽ»çšããQAæšæºåãšQA人æè²æã ä»åã®æ°æœã®ããŒãããã¡ãã«ãªããŸãã ã¢ã»ã¹ã¡ã³ããšã¯ãã£ãããããšè©äŸ¡ãåæãšãã£ãé¡ã®æå³åããšãªããŸãã ã²ãšæåã®AGESTã§ã¯ãå圹å²ïŒè·åãªããè·èœïŒã«å¯ŸããŠã®å®çŸ©ã ãæ±ãããã圹å²ãæºããããšã ãšãããããªèšèŒãããã圹å²ã«å¯ŸããŠã®è§£éãå人ã§ç°ãªãããŸãäŒç€ŸãšããŠæšæºã¹ãã«ã®å®çŸ©ãææ§ãªéšåããã£ããããç®æãã¹ããã£ãªã¢ã«å¯ŸããŠã®ç éœãã¹ãã¹ãã«æç€ºãã§ããŠãªããã®ããããŸããã é æ¬¡job descriptionïŒä»¥äžJDïŒãæŽçããŠãããã®ã®ã圹å²ã«å¯ŸããŠæ±ããããã¹ãã«ããã¹ãã«ã«å¯ŸããåŸ
éãšãããã®ã¯ããããã®çµç¹ã§å€§ããç°ãªã£ãŠããŠãããã«æç¢ºãªè§£ã¯ãããŸããã çŸåšã圹å²ã«å¿ãããžã§ãå®çŸ©ãæã£ãŠããŠã»ããã¹ãã«ãè³æ Œãªã©ãéæèšèšäžã§ããããªããªãèªåã®æå±çµç¹å€ã®æ
å ±ãèãããšããæ©äŒãäžã
ã«çšã ãšæãããã£ããèãã®ã§ããã°çŸå°ã§çã®å£°ãèãããšæããæ°æœã«è¶³ãéã°ãããã£ãããšãªããŸããïŒ åºèª¿è¬æŒãšããŠãSqriptsã¹ã¯ãªãã¿ãŒã§ãã æ¹¯æ¬æ° ã«ããfreee瀟ã§ã®åãçµã¿ãèªã£ãŠããã ããŠãããŸãã è¬æŒå
容ã¬ããŒãã«é¢ããŠãæ
å ±ã®èª€èªèãæ¡å€§è§£éãèªèã®ãã€ã¢ã¹ãªã©ããããšfreee瀟ã«ãè¿·æããããããŠããŸãããšã«ãªããããªã®ã§ãå°è±¡ã«æ®ã£ãç®æã®æç²ãšããã«å¯Ÿããèªåã®èããAGESTã®æ¹åæ§ãåãäžããŠãããããšæããŸãã ååã®éããçè§£ããããã§ãèªå·±ã®ååã確ç«ãã QAã®çµéšããããšãã£ãŠããçµç¹ãéãã°æ ¹æ¬çãªéšåã§ã®ååã®éãã¯ãã æ¡çšãšããããŠãèªç€ŸãšããŠã®QAã確ç«ããå¿
èŠæ§ããã£ã ãã¡ãã¯ãŸãã«ãã®éããããããšæããŸããã èªåãæ¡çšé¢æ¥ã«æºããããšããããŸãããããã¯ã¯ã©ã€ã¢ã³ãæ§ãšMTGããæãæãããšããããŸãã ååãéãã°åãçšèªã䜿ã£ãŠããŠãäžèº«ã®æå³ãå
šãéãããšãããããªããšã¯å€ã
ããã®ã§ã ãã³ãã¥ãã±ãŒã·ã§ã³ãéããã ãç°æåã§ããããšããããšã倧åæã§èããã ãèªåã®äžã®ææšã»ãã®ããããã£ãããšåºããå¿
èŠãããã ãšãã£ããããªããšã倧äºã§ããããšæ¹ããŠæãããèšèã§ããã æãããã®ãæããªããã®ãåãåãã QA人æã®è²æã§å¿
èŠãªããšã¯ãäœãæããã®ããã©ããŸã§æããã°ããã®ããæããã«ããããš ïœ ãªã³ããŒãã£ã³ã°ã§è¡ãå
容ãšãOJTã§è¡ãå
容ãæç¢ºã«åãã ããã¯ãªãã»ã©ãªããšã AGESTã§ãå
¥ç€ŸåŸã®ãªã³ããŒãã£ã³ã°ã1ïœ1.5ãµæã§è¡ã£ãŠããŸããããªã³ããŒãã£ã³ã°ãå®éã«åããŠããªãã¡ã³ããŒã¯å®éã®ãªã³ããŒãã£ã³ã°ã§æç¢ºã«äœãã©ã®ç²åºŠãŸã§æããŠãããããšããããšãŸã§ã¯åãåããããŠãªããªããšã åºæ¬çã«ã¯çŸå Žã§å¿
èŠãããªå
容ããªã³ããŒãã£ã³ã°ã«å
¥ã蟌ãã§ããŸããããããŠãªã³ããŒãã£ã³ã°ã§ã¯æ±ããOJTã«ä»»ããïŒãã®ä»£ããå¿
ãOJTã§æ±ãããã¡ã³ããŒçè§£ãå¿
èŠïŒãšããããšã¯å¹æçã«ãªããã®ããããªããšåŒ·ãæããå
容ã§ããã ã¹ãã«ã©ããŒã®ããŒã«å®çŸ© ã¹ãã«ã©ããŒã®ããŒã«å®çŸ© ã¹ãã«ã©ããŒã«é¢ããŠã¯èªåãåèãã®åèªã§ããã ã©ããŒã¯æ¢¯åãæå³ããŠããã¹ãã«ã©ããŒãšãããšã¹ãã«ã®å°éæ§ããããŠããããã®ææšã ãã£ãªã¢ããã/ãã¹ãJDãšã¯ç°ãªãæé²ãå ±é
¬ãšã¯é¢é£ããªãçŽç²ãªã¹ãã«ãããã®ãããªãã®ãšãªããä»ã®èªåã®ã¹ãã«äœçœ®ãèšãããããªãã®ããšããçè§£ãããŠããŸãã ãžã¥ãã¢å±€ã®å®çŸ©ã¯ååéã®åæ©ã¯å
šãŠã§ããã¹ããããã«å±€ããã¯åœ¹å²ã«ç¹åããŠå°éçã«ã¹ãã«ã¢ããã§ããããã« ãã®å
容ã«é¢ããŠã¯ãAGESTã§ãåããããªèããããŠããŸãã ãªããªãAGEST QAéšéã§èããŠããJDã§ãããžã¥ãã¢å±€ã¯å
šãŠã®åçŽãçè§£ãããã®äžã§å°éæ§ã®ãããã¹ããšã³ãžãã¢ããã¹ããããŒãžã£ãŒããã¯ãã«ã«ãã¹ããšã³ãžãã¢ãªã©ã«åãããããã«èšèšããŠããã®ã§ãæ°ããªèгç¹ãåŸããããšããããšã¯ãããŸãããããã以äžã«å€§ããªå®å¿æãåŸãããããšããæãã«ãªããŸããã ã¹ãã«ã©ããŒã®è©äŸ¡è»žïŒèªç«æ§ freee瀟ã®èªç«æ§è©äŸ¡ãšããŠãããµããŒãããããããµããŒããå¿
èŠã ããåºæ¬ã¯ã§ãããããµããŒãäžèŠãã人ã®ãµããŒããã§ããããšããŠããããšã®ããšã§ããã ããããã䌌ãŠããèããããŠããå®å¿æãèŠããå
容ã§ãããå人çã«ã¯ test.sff ãå®ç Žé¢ã®èãæ¹ã«ããããæ¹åãæ¹è¯ãæ°èŠããã»ã¹ãçã¿åºãããšãã§ããããšãã£ããã®ãäžäœè©äŸ¡ãšããŠçœ®ããããšèããŠããŸãã ã¢ãŠãããããæšæºåãããšäººã®æµååã容æã«ãªã ããã¯èªç€Ÿãããã¯ããè€æ°ããåæç¹æããªããšããæãã匷ãå
容ã§ããã èªç€Ÿå
ã«è€æ°ãããã¯ãããããQAã®ã¢ãŠããããããããã¯ã暪æã§æšæºåããããšã§ãããã¯ãç§»åãããŠãèŠããªããããªãäžå®äžã®å¹æãèŠèŸŒãŸããããšããå
容ãšããçè§£ãããŠããŸããã第äžè
äŒç€Ÿã§ã¯ã¢ãŠããããã®å
容ã¯é¡§å®¢åŽã«äŸåããããšããããŸããïŒãããããã¹ãã«å¯Ÿããã€ã³ãããããŒã¿ã絶察çã«æšæºåãããªãïŒ ç¬¬äžè
æ€èšŒäŒç€Ÿã§ãèªç€Ÿãã©ãŒãããã§éçšããŠæ§ããªããã®ã¯æšæºåãè¡ã£ãŠããŸããã顧客ã«åãåãã顧客ããšã®äœå¶/èŠæã«å¯ãæ·»ãèšæ©å¿æŽã«å¯Ÿå¿ãã«ã¹ã¿ãã€ãºããŠãŠææãåºãããšããã®ã第äžè
æ€èšŒäŒç€Ÿãªãã§ã¯ã®é¢çœå³ãªã®ãããããªãããšãããããŠæããŸããã è©äŸ¡ãšã«ã«ãã£ãŒ ã»ãå¿ã«æ®ã£ãå
容ãšããŠã¯ 人äºè©äŸ¡ã¯ã¹ãã«ã©ããŒã§ã¯è¡ãããã¢ãŠãã«ã ã§è¡ã ã¹ãã«ã©ããŒã¯æ¡çšã«ã¯æŽ»çšããªããæ¡çšã¯ã«ã«ãã£ãŒãã£ãããéèŠ ãšããã®ãè©äŸ¡ãæ¡çšã«ãæºããç«å ŽãšããŠã¯ä»åŸãæèããŠèããã¹ãå
容ã ãªããšæã£ãŠããŸãã ä»åäžéšãèŠãããã ããã¹ãã«ã©ããŒã¯æç€ºããããšã§ãã¹ãã«ã®å®¢èгçåäžã®å¯èŠåïŒè©äŸ¡ãåŸ
éçŽçµãšãã£ããããªããšãèµ·ãããããã®ããªããšæããŸããã ææã«ããäŒç€Ÿè²¢ç® â ææãåºãããã®ããã»ã¹ããžã§ãå®çŸ© ããâ ããã»ã¹ãéæããããã®ã¹ãã« ããããâ ã¹ãã«ãç¿çããããã®ç ä¿®ããªã³ããŒãã£ã³ã°ãããã³åçš®è³æ Œå¥šå± ã®ãããªããšãåºæ¬ã§ããããšã ãŸããæ¡çšã«ãããŠãã¹ãã«ãçµéšã®ç¢ºèªãéèŠèŠããŠããæä»£ïŒåæ°å¹ŽåïŒã確ãã«èªåã«ããããŸããã®ã§ããã®2ã€ã¯èªåã®è¥ãæ£ããã£ããã«ãªã£ãã®ã§ã¯ãªãããªããšæã£ãŠãããŸãã ãŸãšã ä»åã¹ãã«ã©ããŒããfreee瀟ã§äœ¿çšãããŠãããã¹ããã£ãŒã¿çãå
·äœçãªãã®ãèŠããŠããã ããŸããããå®éã«äœãèãäœãæ§ç¯ãããã¯æå±çµç¹æ¬¡ç¬¬ã ãšæã£ãŠããŸãã freee瀟ã®äºäŸã¯ãããŸã§freee瀟ã«ãã£ãå
容ã§ãããæ¹¯æ¬æ°ãè¬æŒè³æåé ã§ ãçµç¹äœãã®åèã«ããŠãïŒã ãšèšèŒããŠããã®ã§ã倧äºãªã®ã¯äºäŸã100%åãæ¢ããã®ã§ã¯ãªãã ã¹ãã«ã¢ã»ã¹ã¡ã³ããæšæºåãªã©ãèããããšãã«ã«ãã£ãŒåœ¢æã«ãªãã ã«ã«ãã£ãŒãå®ãŸãããšã«ãã£ãŠæ¹éãæ¹åæ§ããã匷åºãªãã®ã«ãªãã ãããèªç€Ÿãã©ã³ãã«ãªã£ãŠããã ãšããããšããä»åã®ã«ã³ãã¡ã¬ã³ã¹åå ã§æã¡åž°ã£ãå
容ã«ãªããŸãã ãã®èªåã®èãããããŸã§èªç€Ÿã«ã«ãã£ãŒã«ããããèãæ¹ãå€ããšæããŸãã®ã§ã çæ§ãçµç¹äœããçµç¹ã®äžã§ã®åãæ¹ã®åèã«ããŠããã ããã°ãšæããŸãã ãŸãããAGESTã®ã«ã«ãã£ãŒã«èå³ãæ¹§ããããªããšããããŸããããæ°è»œã«ãåãåãããããŠããã ããã°ãšïŒïŒ The post ä»ããQAã¹ãã«ã¢ã»ã¹ã¡ã³ãã«ã€ããŠèããŠã¿ãïŒJaSSTæ°æœã¬ããŒãã«ãããŠïŒ first appeared on Sqripts .
ããã«ã¡ã¯ãèŠç¿ãããã³ããšã³ãžãã¢ã®ã±ããŽã§ãã ä»åã¯framer-motionã䜿çšããŠãReactïŒTypescriptã§ã«ã¬ã³ããŒã³ã³ããŒãã³ãã«æã®å€æŽæã®ã¢ãã¡ãŒã·ã§ã³ã远å ããæ¹æ³ã玹ä»ããŸãã ã¯ããã« ãŸãã宿ãããã®ãã玹ä»ããŸãã ïŒãã¬ãŒã æ°ã®åé¡ã§ã«ã¯ã«ã¯ããŠããŸãããå®éã¯ã¹ã ãŒãºã«åäœããŸãïŒïŒ å®è£
ããã§ã¯ã¢ãã¡ãŒã·ã§ã³ã®å®è£
ãããŠãããŸããã äœ¿çšæè¡ TypeScript: “^4.8.4â React: “^18.2.0â framer-motion: “^9.0.0â date-fns: “^2.29.3â ã¢ãã¡ãŒã·ã§ã³äœæåã®æºå ãŸããdate-fnsã䜿çšããŠä»¥äžã®ãããªã³ã³ããŒãã³ããäœæããŸããã import { addMonths, subMonths } from "date-fns"; import { useState } from "react"; import { Month } from "./Month"; import { CalendarHeader } from "./CalendarHeader"; export interface CalendarProps { date?: string; } export const Calendar = ({date}: CalendarProps) => { const currentDate = date ? new Date(date) : new Date(); const [month, setMonth] = useState(currentDate); const onNext = () => { setMonth(addMonths(month, 1)); }; const onPrev = () => { setMonth(subMonths(month, 1)); }; return ( <div> <CalendarHeader onNext={onNext} onPrev={onPrev} month={month} /> <Month month={month} /> </div> ); }; ã¢ãã¡ãŒã·ã§ã³ã®äœæ ãŸããã¢ãã¡ãŒã·ã§ã³ã®å®çŸ©ãè¡ããŸãã æãé²ãå Žåãšæãæ»ãå Žåã®2ã€ã®ãã¿ãŒã³ã®ã¢ãã¡ãŒã·ã§ã³ãšæçµçãªäœçœ®ã決ããŸãã æãé²ãå Žåã¯å³ãããæãæ»ãå Žåã¯å·Šããç§»åããŠããããã«èšå®ããæçµçã«0ã«ãªãããã«ããŸããã const variants = { enter: (isNext: boolean) => { return { x: isNext ? 100 : -100, opacity: 0, }; }, center: { x: 0, opacity: 1, }, }; ç¶æ
ã®äœæ æãé²ãã§ãããæ»ã£ãŠãããã®ç¶æ
ã管çããæã倿Žããã¿ã€ãã³ã°ã§ç¶æ
ãæŽæ°ããŸãã const [isNext, setIsNext] = useState<boolean>(); const onNext = () => { setMonth(addMonths(month, 1)); setIsNext(true); }; const onPrev = () => { setMonth(subMonths(month, 1)); setIsNext(false); }; ã¢ãã¡ãŒã·ã§ã³ã®é©çš ã¢ãã¡ãŒã·ã§ã³ãé©çšãããã³ã³ããŒãã³ãïŒä»åã¯Monthã³ã³ããŒãã³ãïŒã motion.div ã³ã³ããŒãã³ãã§å²ã¿ãã¢ãã¡ãŒã·ã§ã³ã®èšå®ãè¡ããŸãã import { motion } from "framer-motion"; ~~~ return ( <div> <CalendarHeader onNext={onNext} onPrev={onPrev} month={month} /> <motion.div key={month.toString()} custom={isNext} variants={variants} initial="enter" animate="center" transition={{ opacity: { duration: 0.2 }, x: { type: "spring", stiffness: 300, damping: 30 }, }} > <Month month={month} /> </motion.div> </div> ); custom ããããã£ã«æž¡ãã倿°ã¯ã variants ããããã£ã§æž¡ãã颿°ã®åŒæ°ãšããŠäœ¿çšãããŸãã initial ããããã£ã«ã¯æç»æã®ã¢ãã¡ãŒã·ã§ã³ã animate ããããã£ã«ã¯æç»åŸã®ã¢ãã¡ãŒã·ã§ã³ãèšå®ããŸãã transition ããããã£ã䜿çšããããšã§ãopacityã®é床ãx軞ã®ç§»åæ¹æ³ãªã©ãããŸããŸãªèšå®ãè¡ãããšãã§ããŸãã 詳现ãªèšå®ã«ã€ããŠã¯ã以äžã®ãªã³ã¯ã§ç¢ºèªã§ããŸãïŒ https://www.framer.com/motion/transition/ ä»åã¯xã®åãã« "spring" ã䜿çšããŠãå°ãåçºãããããªã¢ãã¡ãŒã·ã§ã³ã«èšå®ããŠããŸãã ååæç»æã®ã¢ãã¡ãŒã·ã§ã³ äžèšã®ãŸãŸã§ã¯ååã®ã«ã¬ã³ããŒæç»æã«æãå·Šããã¹ã©ã€ãã€ã³ãããããªã¢ãã¡ãŒã·ã§ã³ãçºçããŸãã ååã®ã¿ã¢ãã¡ãŒã·ã§ã³ãè¡ããªãããã«ããããã initial ããããã£ã«æ¡ä»¶åå²ã远å ããŸããã ~~~ <motion.div key={month.toString()} custom={isNext} variants={variants} initial={isNext === undefined ? "center" : "enter"} animate="center" transition={{ opacity: { duration: 0.2 }, x: { type: "spring", stiffness: 300, damping: 30 }, }} > <Month month={month} /> </motion.div> ~~~ å®æå³ import { addMonths, subMonths } from "date-fns"; import { motion } from "framer-motion"; import { useState } from "react"; import { Month } from "./Month"; import { CalendarHeader } from "./CalendarHeader"; const variants = { enter: (isNext: boolean) => { return { x: isNext ? 100 : -100, opacity: 0, }; }, center: { x: 0, opacity: 1, }, }; export interface CalendarProps { date?: string; } export const Calendar = ({ date }: CalendarProps) => { const currentDate = date ? new Date(date) : new Date(); const [month, setMonth] = useState(currentDate); const [isNext, setIsNext] = useState<boolean | undefined>(undefined); const onNext = () => { setMonth(addMonths(month, 1)); setIsNext(true); }; const onPrev = () => { setMonth(subMonths(month, 1)); setIsNext(false); }; return ( <div> <CalendarHeader onNext={onNext} onPrev={onPrev} month={month} /> <motion.div key={month.toString()} custom={isNext} variants={variants} initial={isNext === undefined ? "center" : "enter"} animate="center" transition={{ opacity: { duration: 0.2 }, x: { type: "spring", stiffness: 300, damping: 30 }, }} > <Month month={month} /> </motion.div> </div> ); }; æåŸã« framer-motionã䜿çšããããšã§ãç°¡åã«ã¢ãã¡ãŒã·ã§ã³ã远å ããããšãã§ããŸããã ã¢ãã¡ãŒã·ã§ã³ã远å ããã ãã§ãããæŽç·Žãããã³ã³ããŒãã³ãã«ãªããŸããïŒ framer-motionã䜿ãã°ãæ¯èŒçç°¡åã«è€éãªã¢ãã¡ãŒã·ã§ã³ãäœæã§ããŸãã®ã§ãããã«åŠç¿ãé²ããŠããããã¯ãå
ã§æŽ»çšã§ãããªãããªã³ã³ããŒãã³ããäœæããŠãããããšæããŸãã èªãã§ããã ããããããšãããããŸãããäœãåèã«ãªãã°å¹žãã§ãã The post framer-motionã§Reactã®ã«ã¬ã³ããŒã³ã³ããŒãã³ããå°ããªããã« first appeared on Sqripts .
ã客æ§ãšãµãŒãã¹ã®éã«ã¯æåœ¢ãç¡åœ¢ã®é£ç¶ããæ¥ç¹ãååšããŸãããã®æ¥ç¹ã®äžã€äžã€ãããŠãŒã¶ãŒã€ã³ã¿ãã§ãŒã¹ïŒUIïŒããšãããé£ç¶ããæ¥ç¹ãã客æ§ãã客æ§ã«é¢ããæ¹ã
ã«ããããèšæ¶ãææ
ãæ³ããšãã£ããã®ãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ïŒUXïŒããããã¯ã顧客äœéšããšåŒã³ãŸãã ããè¿å¹ŽãITæè¡ã®çºå±ã«ãã£ãŠUIã¯é«åºŠã«é²åããã客æ§ã®UXã倧å€ãªããã«ãªã£ãŠããŸããã äžåºŠãçŽ æŽãããäœéšãããã客æ§ã®æºè¶³åºŠã¬ãã«ãäžãããšããããŸã§äžæºãªã䜿ã£ãŠããã·ã¹ãã ããµãŒãã¹ã«æºè¶³ã§ããªããªããŸããç¹ã«WebãµãŒãã¹ãªã©ã¯ãã客æ§ãåãããã€ã¹ããåçš®ã®ãµãŒãã¹ãæ¢ã«ãäœéšãªãã£ãŠããããšãå€ãããæäŸããããµãŒãã¹ãã®ãã®ã§ã¯ãªãå
¥å£ã®ã¡ã³ããŒç»é²ãªã©å€ãã®ãµãŒãã¹ãšå
±éã®UIéšåã§ç«¶å以å€ã®ãµãŒãã¹ãšæ¯èŒãããŠããŸããµã€ããé¢ããŠããŸããšãã£ãæ®å¿µãªããšãèµ·ãã£ãŠããŸããŸãã ãŸãåå¯Ÿã«æ
£ã芪ããã ãµãŒãã¹ã®UIãæ¥ã«ãæãã¯äžæ¹çã«å€æŽãããŠããŸã£ãããšã«äžæºãåããã®ãµãŒãã¹ããé¢ããŠããŸããšãã£ãããšãèµ·ããŠããŸããŸãã æ¬èšäºã§ã¯ãã客æ§ã«äžæºãæ±ãããªããæŽã«ã¯æºè¶³ããã ããã·ã¹ãã ããµãŒãã¹ãæäŸãç¶ããããã«ç§ãã¡ã¯äœãããã°ããã®ããšããããšããäžç·ã«èããããšæããŸãã ãŠãŒã¶ããªãã£æ¹åã§å質æ¹åã¹ãã«ãäžãã 3 ã€ã®çç± ãçãããã·ã¹ãã ããµãŒãã¹ãæäŸããåŽã§ããã£ãããå ŽåããŠãŒã¶ããªãã£ãå
·äœçã«æèããã®ã¯ãã€ããã§ããããïŒ ãµã€ãã®çŽåž°çãå¹³åæ»åšæéã®ææšãæããããªãæïŒ UAT â»1 ã§ãŠãŒã¶ããªãã£ã«é¢ããåé¡ãå±±ã®ããã«ææãããæïŒã ããããã®ã³ã©ã ãèªãã§ãã ãã£ãŠããèªè
ã®æ¹ãªãã°ããã€ãæèããŠããããšãã£ãããæ¹ã倧åã«éããããŸããã ã§ã¯å
·äœçã«æ¹åãå³ãã®ã¯ãã€ããã§ããããïŒ å®ã¯ããŠãŒã¶ããªãã£ã®æ¹åã¯äŒç»ãèŠä»¶å®çŸ©å·¥çšããå§ãããšææ»ããå°ãªããçµç¹ãšããŠã®å質æ¹åã¹ãã«ãã©ãã©ãåäžããŠããåªããã®ã®åãçµã¿ãªã®ã§ãã ããã£ïŒãŠãŒã¶ããªãã£ãšãå¯çšæ§ã£ãŠéæ©èœèŠä»¶ã®äžã€ã ããããŠãŒã¶ããªãã£åäžã£ãŠå質æ¹åãã®ãã®ã§ã¯ïŒã éãèªè
ã®æ¹ã¯ãã®ããã«ãææãã ãããããããŸãããã§ããããããããŠãŒã¶ããªãã£æ¹åãåãäžããã®ã¯æ¬¡ã®3ã€ã®çç±ãããããã§ãã çç±â ãæ¹åããããè¯ããªã£ãããšãåããããã çç±â¡ãçµç¹å
šäœã§åãçµãããšãåºæ¥ã çç±â¢ã1/0(ã€ããŒã)ã§ã¯ãªã段éçã«æ¹åããŠããã â»1ãåç
§ã JUASãéæ©èœèŠæ±ä»æ§ã¬ã€ãã©ã€ã³ã 工倫ãåªåãåãã£ãŠãããããšäžå±€ããæ°ãåºãŸããã äžã€ãã€èª¬æããŠãããŸãããã ãŸãããçç±â ãè¯ããªã£ãããšãåããããããã§ããããã®çç±ã ãã§ãŠãŒã¶ããªãã£æ¹åã«åãçµãã¹ã䟡å€ãããçç±ã§ããå質ã®äžã«ã¯æ¹åããŠã广ãåããã¥ãããã©ããã©ã®ããã«è¯ããªã£ãã®ã説æãã¥ãããã®ããããŸãã äŸãã°ãä¿å®æ§ïŒæ§æç®¡çå¹ç â»2 ã0.5ãã0.6ã«ããããŸããããšèšããããäžãã£ãã®ãè¯ããæªããããé倿Œ¢ã«ã¯å€æãã¥ããã§ãããããšã³ããŠãŒã¶ãŒ5人äž3åãåœæããŠå
ã«é²ããªãã£ãç®æã5人å
šå¡å
ã«é²ããããã«ãªããŸããããšèããšè¯ããªã£ãããšãåãããããã§ãããã æ¹åãã¢ããŒã«ãããããšèšãæããŠãè¯ãã§ãããã人éãè€ãããããšããæ°ãåºãã®ã¯èªç¶ãªããšãæ¹åãããããªãã¢ããŒã«ããŠçµç¹å
ã§èªããããããäœããããšã³ããŠãŒã¶ãŒã«åã°ããããšæ¹åã®ã¢ãããŒã·ã§ã³ãåäžããŸãããããŠæŽã«è¯ãããããšããåååãšãªã奜埪ç°ãåãããã«ãªãã°èªäž»çã«æ¹åã«å±ãããã«ãªããŸãã â»2ãä¿å®æ§ïŒæ§æç®¡çå¹çïŒä¿å®äœæ¥ã«ãããåçš®è³æºïŒããã°ã©ã ãããã¥ã¡ã³ãã䜿çšããŒã¿ïŒDBãå«ãïŒïŒã®ããŒãžã§ã³ç®¡çã«ãããæ©æ¢°ç®¡çã®å®çŸå²åïŒ JUASãéæ©èœèŠæ±ä»æ§ã¬ã€ãã©ã€ã³ã ãã çµç¹ã®ã¿ããªãã客æ§ã®æ¹ãèŠãããšã§é£åž¯æã匷ãŸããŸã 次ã«ãçç±â¡ãçµç¹å
šäœã§åãçµãããšãåºæ¥ããã§ããããã¯ãŠãŒã¶ããªãã£ã®å®çŸ©ããäŒããããšåããããããããããŸããã ãŠãŒã¶ããªã㣠â»3 ãšã¯JIS Z 8520ã«ãããŸããšãç¹å®ã®ãŠãŒã¶ãç¹å®ã®å©çšç¶æ³ã«ãããŠïŒã·ã¹ãã ïŒè£œååã¯ãµãŒãã¹ãå©çšããéã«ïŒå¹æïŒå¹çåã³æºè¶³ã䌎ã£ãŠç¹å®ã®ç®æšãéæãã床åããããšå®çŸ©ãããŠããŸãã ã€ãŸãæ¹åãå³ãåã«ãã©ããã£ããŠãŒã¶ãŒãããã©ããã£ãç¶æ³ã§ããäœãç®æšã»ç®çã«ã䜿ã£ãå Žå䜿ããããã®ããæç¢ºã«å®çŸ©ããå¿
èŠããããŸãããããŠäžè¬çã«çµç¹ã®äžã§ã¿ãŒã²ãããŠãŒã¶ãŒãã¡ã€ã³ãŠãŒã¶ãŒã®æ
å ±ãå€ãæã£ãŠããã®ã¯äŒç»ãå¶æ¥ããŠãŒã¶ãŒå¯Ÿå¿éšéãšãã£ãæ¹ã
ã§ãã ãšãªãã°ããŠãŒã¶ããªãã£ã®å¹æçãªæ¹åã«ã¯ãéåžžéçºãšå蚌éšéã®ãããæ©èœã«ãã£ãŠã¯éãããããŒã ã®ã¿ã人ç¥ããé 匵ã£ãŠãããšãããå€ãã®éšéãå·»ã蟌ãã§åãçµãããšãåºæ¥ãŸãã ããªããæäŸããããšããŠããã·ã¹ãã ããµãŒãã¹ãåºå¹¹ã·ã¹ãã ã®å Žåãçµçãç·åãšãã£ãéšéã®æ¹ããŠãŒã¶ãŒã®ä»£ããã«åé¡ç¹ãèŠã€ããŠãã ãããããããŸããã ç¹èš±é¢ä¿ã§ããããåãã®ç¡ãã£ãæ³åéšéã®æ¹ããã¿ãŒã²ãããŠãŒã¶ãŒã®ãã«ãœãã«ããã¿ãªãããããŸããã ãããšãé¢ãã£ãæ¹ãã¡ãæ¹åé
ç®ã®é²æãæ°ã«ãããŠãã ããããã«ãªããŸããèªåãããè²ã
ãšçŽæ¥äŒºãããšãå¢ãããåéšçœ²ãžæ
å ±çºä¿¡ããããããããšãèªç¶ãšè¡ãããŠãããŸãã 倿§ãªæ¹ãé¢ãã£ãŠãã ããã°ãã ããã»ã©æ°ã¥ãã®æ©äŒãå¢ããŸãããã«ããŒã§ããç¯å²ãåºããªã£ãŠãããšæããŸãããïŒ ãã®ä»ã®å質é
ç®ãæ¹åã«ã¯è²ã
ãªéšéããã®ååãä»°ãå¿
èŠããããŸããããããã£ãååãä»°ãåã«ã倧ããªè² æ
ãçžæã«æããæ°è»œãªãé¡ãã§ãããã¯ãŒã¯ãç¯ããŠããããã£ã³ã¹ãäœã£ãŠãããç¹ã¯ãŠãŒã¶ããªãã£æ¹å掻åã®åŸé£ãå©ç¹ã§ãã â»3ãåç
§ãJIS Z 8521ïŒ2020ã人éå·¥åŠâ人ãšã·ã¹ãã ãšã®ã€ã³ã¿ã©ã¯ã·ã§ã³â ãŠãŒã¶ããªãã£ã®å®çŸ©åã³æŠå¿µ ã¹ã¢ãŒã«ãµã¯ã»ã¹ãå質æ¹å掻åãžã®è¯å®æãã©ãã©ãé«ããŸã æåŸã®çç±ã¯ã段éçã«æ¹åããŠããããç¹ã§ãã å人çãªææŠã«ãããŠãåããã倧ããªæåãç®æšã«æ²ãããå°ããªç®æšãæ²ããŠæåäœéšãç©ã¿éããŠãã£ãæ¹ããç®æšéæçãé«ãããšèããããšã¯ãããŸãããïŒããã¯çµç¹ã§ã®æ¹åã§ãèšããäºã§ãã ãããŠãŠãŒã¶ããªãã£ã¯ã广ïŒå¹çåã³æºè¶³ã䌎ã£ãŠç¹å®ã®ç®æšãéæãã床åãããªã®ã§ãéæãããã§ããªãã£ããã®1/0(ã€ããŒã)ã§ã¯ãªããæ¹åã®ã¹ããããæ®µéçã«èšå®ããããšãå¯èœã§ãã çãæéã§å°ããªæ¹åã瀺ãããšã«ãã£ãŠããªããããªãã®ããŒã ãã·ã¹ãã ããµãŒãã¹ã確å®ã«ãå€ãã£ãŠããããè¯ããªã£ãŠããããšããå°è±¡ãšä¿¡é Œãåšãã«æããŠããã ãããšãåºæ¥ãŸãã ãããšä¿¡ããããªããããããŸãããããã®ä»ã®æ¹å掻åãè¡ãéãããã®äººã¯ããã®ããŒã ã¯ãæèšå®è¡ã®å®çžŸããããããããããããããšæã£ãŠå¿«ãååããŠãããããšãå¢ããŠããã®ã§ãã ã客æ§ã«äžæºãæ±ãããªããæŽã«ã¯æºè¶³ããã ããã·ã¹ãã ããµãŒãã¹ãæäŸãç¶ããã«ã¯ã客æ§ãžã®æ·±ãçè§£ãšäžæã®å質åäžãå¿
èŠã§ããããããå
宿ãšå
±ã«å®æœã§ããã®ãããŠãŒã¶ããªãã£æ¹åããšããåãçµã¿ã§ãã æ¯éçãããããŠãŒã¶ããªãã£æ¹åãããå質æ¹åãå§ããŠã¿ãŸãããïŒ The post ããŠãŒã¶ããªãã£ãåŸåãã«ãªã£ãŠããŸãããïŒâ å質æ¹åã¹ãã«åäžã«ã圹ç«ã€ããŠãŒã¶ããªãã£ãã¹ããããçŽ¹ä» first appeared on Sqripts .