ç§ãã¡ã¯å€ããã¿ãŒã³ã«åŸããŸãïŒç§ã¯ããªãã®ããã«é£ç¶ããŠ10ã®ã¬ããŒããèŠãŠãããªãããããè峿·±ãæããããšãã§ããããã«å
容ã®çã説æãããŸãã ããã«ããµã€ãããã¹ã©ã€ããšèª¬æãžã®ãªã³ã¯ãåéããŸãã ç§ã¯ãããåé¡ããè©äŸ¡ãäžããé ã«ãããäžããŸã-ã€ãŸããäžçªäžã«æãã¯ãŒã«ãªã¬ããŒãããããŸãã è©äŸ¡ã¯YouTubeã§ã¯å¥œãã§ã¯ãããŸããããç¬èªã®è©äŸ¡ã·ã¹ãã ã§ããã奜ããããæ Œå¥œããã§ãã
åã®ããŒãïŒ JBreak 2017 ã JPoint 2017 ïŒäž¡æ¹ã®ã«ã³ãã¡ã¬ã³ã¹ã¯Javaã«ã€ããŠã§ããïŒã
ä»åã¯ããã¹ã¿ãŒïŒããã³ãµã€ãã®ã¡ã€ã³ããŒãžã«èšèŒãããŠããããã°ã©ããŒãšããŒã ãããŒãžã£ãŒïŒã®æåãªäŒè°ã§ããHeisenbug 2017 Moscowãç 究察象ãšããŸãã
æçš¿ã«ã¯èšå€§ãªæ°ã®ç»åãšYouTubeãžã®ãªã³ã¯ããããŸãã æ³šæãã©ãã£ãã¯ïŒ
å
責äºé
ïŒãã¹ãŠã®èª¬æã¯ç§ã®å人çãªæèŠã§ãã æžããããã®ã¯ãã¹ãŠç§ã®ç
æ°ã®æ³ååã®çµæã§ãããã¹ããŒã«ãŒã®æªãã åŒçšã§ã¯ãããŸããïŒãã®èŠåã¯ã¹ããŒã«ãŒãç§ãbeatããªãããã«æžãããŠããŸãïŒã 誰ãã誀ã£ãŠæ°åã害ããå Žå-å人çã«æžã蟌ã¿ããããææ¡ããŸãã ãããäžè¬çã«ã¯ããã®ããã«èããŠã¿ãŸããããBadComedianãæ¯åCinema Foundationã«äœãèšã£ããããã®ããäœãèšããªãã®ããå°ããããå°ãªããšã1æ¬ã®ãããªãäœãã§ããããïŒ
ã¹ããŒã«ãŒ ïŒã¢ã¬ã¯ã»ã€ã»ãŽã£ãã°ã©ãããã¢ã³ãã¬ã€ã»ãœã«ã³ãã§ãã æšå®å€ ïŒ4.31±0.14 ãã¬ãŒã³ããŒã·ã§ã³ãžã®ãªã³ã¯ ã
Puzzlersã¯ããã¹ãŠã®èŠèŽè
ãã·ã§ãŒã®çŽæ¥åå è
ã«ãªãã¯ã€ãºã¬ããŒãã§ãã ãã¬ãŒã³ã¿ãŒã¯ã6ã€ä»¥äžã®è峿·±ãã¿ã¹ã¯ãæãä»ããŸãããã®ã»ãšãã©ã¯ãå®éã®èšèšã®å®è·µããåãããŠããŸãã åã¿ã¹ã¯ã®ãªãã·ã§ã³ã®ãªã¹ãã瀺ãããŠãããããããã«æå©ãªèª¬åŸåã®ããåŒæ°ãäžããããŠããŸãã
ãã®ããºã«ã®ããŒãã¯ãSelenide UI Testing Frameworkã§ãã ãã¬ãŒã ã¯ãŒã¯ã®è¡šé¢çãªç¥èãæã€åå¿è
åãã®è³ªåãçšæãããŠããŸãããäžéšã®å°éå®¶ã§ããããããã®äžéšã«ã€ããŠæ¯ãæãã§ãããã
ãšããã§ãAndrey Solntsevã¯Selenideã®äœæè
ã§ãããAlexey Vinogradovã¯Radio QAã®Vinogradovãšåãã§ãããèªäœãé
ä¿¡ããŸãã

ããã§ã¯ããºã«ã®ããŒã¹ã®çããå°ç¡ãã«ããŸããããããã€ãã®ã¿ã¹ã¯ãæäŸããŸãã
æåã®ããºã«ã¯éåžžã«ç°¡åã§ãïŒçããèŠããªãïŒïŒ

ããããããã§ã¯ããã»ã©æçœã§ã¯ãããŸããã

æåŸãŸã§åãã§èããã ããºã«ãããã°ã©ãã³ã°äŒè°ã§ãã°ãã°åœ¹ã«ç«ããªãå ŽåïŒããããéæ³ã®ç¥èãããã°ã©ããŒã«ä¿¡ããããªãã»ã©ã®åã³ãäžããå ŽåïŒããã®ã¬ããŒãã«ã¯çŽæ¥çãªå®çšçãªäŸ¡å€ãããã®ã¯é¢çœãã§ãã èè
ãStackOverflowã䜿çšããŠæãå¥åŠãªäžäœ10ã®è³ªåãGoogleã§æ€çŽ¢ããã ãã§ãªããå®è·µããã¿ã¹ã¯ãååŸããã ãã§ããããšã¯ããã«ããããŸãã
ã¹ããŒã«ãŒ ïŒãµã€ã¢ã³ã»ã¹ãã¥ã¯ãŒãã æšå®å€ ïŒ4.33±0.13ã ãã¬ãŒã³ããŒã·ã§ã³ãžã®ãªã³ã¯ ã
ãµã€ã¢ã³ã»ã¹ãã¥ã¯ãŒãã¯ãæ§ããã«èšã£ãŠãæå人ã§ãã æåã«WebDriverãäœæããSeleniumãåŒãããç¶ããã®ã¯åœŒã§ããã
ã¬ããŒãã¯ããã±ãŒã¿ãŒãé·ãXPathãããã³ã¹ãªããã«é¢ããããã€ãã®éåžžã«åºæ¬çãªããšããå§ãŸããŸãã ãµã€ã¢ã³ã¯ãäžè¬çãªåé¡ãåé¿ãããããªæ¹æ³ã§ãã¹ããšã¢ããªã±ãŒã·ã§ã³ãäœæããæ¹æ³ã«ã€ããŠè©±ããŸãã

ãããããã®çŽåŸïŒ24å以å
ïŒã«ãã¬ããŒãã®äž»ãªãããã¯ã§ããã¹ã±ãŒãªã³ã°ã«ã€ããŠè©±ãåçž®ãããŸãã
圌ã¯ã static
ããã³ThreadLocals
ãæªãçç±ãšãã³ãŒããäžå®å®ã§ã¹ããŒãã¬ã¹ã§ããã¹ãçç±ã説æããŸãã ããã«ããããã®èª¬æã¯ã髿§èœã³ãŒããããã°ã©ãã³ã°ããããã®æšæºçãªã¢ãããŒãïŒããã§ã¯ãäžçæžåœããã°éç颿°ã®äœ¿çšã蚌æã§ããïŒããã§ã¯ãªãããã¹ãããæ¥ãŠããŸãã
ããã¯ãã¹ãŠã圌ã®Macbookã§ã®ã©ã€ããã¢ã«ãã£ãŠåŒ·åãããŠããŸãã

èè
ã¯äœç³»çã«åé¡ã«ã¢ãããŒããã ç¬ç«ããå Žæãããã¹ããéå§ããããšãæ€èšããŠããŸãã äžè¬çã«ããã®ãããªè³ªåã¯ã€ã³ã¿ãã¥ãŒã«æé©ã§ãäººãæžããŠåããã ããªã®ããåããã®ããããã«å€æã§ããããã«æããŸã:-)

å
žåçãªWebã¢ããªã±ãŒã·ã§ã³ãäŸãšããŠäœ¿çšããŠããã¹ãã倱æããå¯èœæ§ãããç¶æ³ãæ€èšããŸããããã£ããããããšããçç±ã§ã¯ãããŸããã

éäžã§ãSimonã¯Seleniumã¢ãŒããã¯ãã£ã®é©çšå¯èœæ§ã®è©³çްã«èžã¿èŸŒãããšãheããŸããã 圌ããããéçºããã®ãäžæè°ã§ã¯ãããŸããã

ããã§åœŒã¯ãSelenium Gridã䜿çšããŠãå®éã®ãã¢ã§ãããèŠããŠãããŸããã

ãã¡ãããDockerã§ãã Dockerã®æåã®ã«ãŒã«ïŒåžžã«Dockerã«ã€ããŠè©±ããŠãã ããïŒ

ãããŠãããã¯ãã¹ãŠã¯ã©ãŠããããã€ããŒã§çµãããŸãã
ã¬ããŒãã®æåŸã«ãçºçããå¯èœæ§ã®ããæšæºãšã©ãŒã®èª¬æããããŸãã

éå»ã«ãDevOpsãå®è£
ããŸããããã¬ããŒãã«èšèŒãããŠãããã«ã¹ã¿ãã¯ã®åé¡ã¯éåžžã«èŠªãã¿ãããã身è¿ãªãã®ã§ããã ç§èªèº«ã¯ããã¹ãã¹ã±ãŒãªã³ã°ã®ããã€ãã®åºæ¬çãªåé¡ã«é¢ããSimonã®å
¬åŒã®ç«å ŽïŒå®éã«ã¯ãSeleniumããŒã ã®ç«å ŽïŒãåãäžããŸãããããã«ãããå°æ¥ããŒã«ãããæ£ç¢ºã«åŠçã§ããããã«ãªããŸãã
ã¹ããŒã«ãŒ ïŒãããŒã¿ã»ãã«ããã æšå®å€ ïŒ4.34±0.07ã ãã¬ãŒã³ããŒã·ã§ã³ãžã®ãªã³ã¯ ã
Nikita Makarovã¯Odnoklassnikiã®èªåãã¹ãã°ã«ãŒãã®è²¬ä»»è
ã§ãã 圌ã¯ãã€ãŒã³ãã°ããã°ã©ã å§å¡äŒã®ã¡ã³ããŒã§ããããŸãã æã
ç§ãã¡ã¯ã€ã³ã¿ãŒãããã§ã³ãã¥ãã±ãŒã·ã§ã³ãåããŸããã圌ã®å ±åãèŠãã®ã¯ç¹ã«é¢çœãã£ãã§ãã
ãŸããã¬ããŒãã¯ããããŒã¿ãæ¢ã«ãã¬ãŒã³ããŒã·ã§ã³ãæçš¿ãããã®äžã«QRã³ãŒããäžãããšããäºå®ããå§ãŸããŸãã ãããçŽ æŽããããšèšãããšã¯ãäœãèšããªãããšã§ãã ç§èŠãããã¯ãã¹ãŠã®ã¹ããŒã«ãŒãäžè¬çã«ãã¹ãããšã§ãã YouTubeã§äŒè°ã®èšé²ãèŠãŠããç§ãã¡ã«ãšã£ãŠãããã¯ããã»ã©éèŠã§ã¯ãããŸããã
èŠããã«ããã¹ãæ¥çã¯ããã©ãã¯ããã¯ã¹ãã«ã€ããŠå€ããèªã£ãŠããŸãããããã¯ã€ããã«ã€ããŠèšåãããããšããããŸãã ããã¯ãããã¯ã€ãããã¯ã¹ãã®ãã¹ããåžžã«ããã°ã©ãã®ç¹æš©ã§ãããšèããããŠãããšããäºå®ã«ãããã®ã§ãã
ãã®ã¬ããŒãã¯ãããã€ãã®æžã蟌ã¿ã«é¢ãã質åã«çããŸãã
- ããã°ã©ããééã£ãã³ãŒããæžãã®ãé²ãæ¹æ³ã¯ïŒ
- ã³ãŒãã«ã¯ã©ãã·ã¥ãå®è£
ããŠãã²ã©ãå·ã€ããªãããã«ããæ¹æ³
- ãªããœãŒã¹ã³ãŒããè§£æããå¿
èŠããããããããäœãåŸãããšãã§ããŸããïŒ
- ãœãŒã·ã£ã«ã³ãŒãåæãšã«ãã¬ããž-ãªãããªãïŒ

åœåããããŒã¿ã¯ããã¯ã€ãããã¯ã¹ã«é¢ããæ
å ±ãã»ãšãã©ãªãã®ã§ã¯ãªãããšèããŠããŸãã 圌ã¯é¢é£ããæŽå²çèæ¯ãšãã®ãããã¯ã«é¢ãã圌ã®ç ç©¶ã«ã€ããŠè©±ããŸãã

ãã®åŸã詳现ã«é²ã¿ãŸãã NikitaããDevOpsã«é¢ããååã®è¬æŒã§äœ¿çšãããã®ãšåãã³ãŒã«ã¹ã¿ãã¯ã®ã¹ã¯ãªãŒã³ã·ã§ããã䜿çšããŠããã®ã¯é¢çœãããšã§ãã

ãã©ãã¯ããã¯ã¹ã®èгç¹ãããã®äžé£ã®åŒã³åºããå
¥åããããšãããšãå€ãã®ãã¹ããå®è¡ã§ããŸããã ãã¹ãŠã®Javaããã°ã©ããŒã¯ãããç¥ã£ãŠãããïŒæåŸ
ãããïŒãã¹ãŠã®Javaãã¹ã¿ãŒã§ãããããã¯éåžžã¯èããããªãããšã§ãã
ããã¯åæ©ä»ãã®éšåã§ããã æ¬¡ã«ç·Žç¿ããããŸãã ãããŒã¿ã¯ãæ¢æã®ãœãªã¥ãŒã·ã§ã³ã¯ãªãããšãäºåã«èŠåããååãäŒãå§ããŸãã

è§£æããã質åã¯ãJavaã³ãŒãã®ç¹å®ã®äŸã§èª¬æãããŠããŸãã

ããæç¹ã§ã圌ã¯ã¢ã€ãã¢ãçºèŠãããã¹ãŠãèŠãå§ããŸããã

ãã®ã¬ããŒãã§ã¯ãããŸããŸãªçš®é¡ã®ãã¹ããšãããã®ããŒã«ã«ã€ããŠèª¬æããŠããŸãã

ãããŠãããã¯ãã¹ãŠãã¹ããŒã«ãŒã®ã©ãããããã§ã®ã©ã€ããã¢ã§ç€ºãããŠããŸãã æ
å ±ã®éäžåºŠãéåžžã«é«ããããèšãçŽãã®ã¯ç¡æå³ã§ãã
å®éãã¬ããŒãã¯ãããã¯ã®ç¹å®ã®ã没å
¥ã¬ãã«ãã«åãããŠããŸãã ããã¯æãåçŽãªãã®ããå§ãŸããæãæããããã®ã§çµãããŸãã ããšãã°ããœãŒã¹è§£æãšæœè±¡æ§æããªãŒã«ã€ããŠããããŸãã
æåŸã«ããããŒã¿ã¯ããã¯ã€ãããã¯ã¹ã¯æŠç¥ã§ããããããã©ã®ããã«å®è£
ãããã¯ç§ãã¡ã®ããžãã¹ã§ãããç¹å®ã®ãããžã§ã¯ãã«äŸåããŠãããšèŠçŽããŠããŸãã ããªãã¯é ã§èããªããã°ãªããŸããã
ãããŠãç§ãç¹ã«æ°ã«å
¥ã£ãã®ã¯ãã¬ããŒãã人çãè¯å®ããã¡ã¢ã§çµããããšã§ããã³ãŒããèªãå¿
èŠããããŸãïŒ ïŒãã¹ã¿ãŒã«ââããããããæ¹æ³ãããããç§ã¯ãŸã çè§£ããŠããŸããïŒã

ã¹ããŒã«ãŒ ïŒããã³ã»ããã«ããŒã æšå®å€ ïŒ4.36±0.13ã ãã¬ãŒã³ããŒã·ã§ã³ãžã®ãªã³ã¯ ã
JBreakããã³JPointã«ã³ãã¡ã¬ã³ã¹ã®æºåäžã«Romanã«äŒããŸããã ãã®å°èª¬ã¯ãç§ã®ã¹ã©ã€ãïŒããã³ã¬ããŒãå
šè¬ïŒããç§ãäžäººã§ã§ããã»ã©ã ãããªãããã«ããã®ã«åœ¹ç«ã¡ãŸããã ãŸããRomanã«ã¯A / Bãã¹ããªã©ã®ãããã¯ã«é¢ããä¿¡ããããªãã»ã©ã®æ·±ãç¥èãããã圌ãè¬æŒããã®ã楜ãã¿ã«ããŠããŸããã 圌ã¯ããã«ããŸãã
ãã®å°èª¬ã§ã¯ããã¹ãã«é£æ¥ããé åã«ã€ããŠèª¬æããŠããŸãã æ©èœãæ£åžžã«å®è£
ãããŠããããšã確èªããåŸããŠãŒã¶ãŒãæ°ããããŒãžã§ã³ãæ°ã«å
¥ã£ãŠãããã©ããã調ã¹ãããã®å®éšã«ããŒã«ã¢ãŠããããŸãã
éåžžãå®éšã®è²¬ä»»è
ã¯ãããŒã¿ã解決ããã«ã¯äžååã§ãããšèšã£ãŠããããšã«æ°ã¥ããŸãããïŒ å€ãã®å Žåããã¯çå®ã§ãããå€ãã®å Žåãå®éšã·ã¹ãã ã®å
èš³ãšãŠãŒã¶ãŒçµ±èšã®èæ
®ã«ãã¹ãŠããããŸãã
ãã®ã¬ããŒãã§ã¯ãããã§çºçããå
žåçãªæ
éã«ã€ããŠèª¬æããŠããŸãããã®çµæãè·å Žã«æ»ã£ãŠãå°ãããŒã¿ç§åŠè
ã«ãªããèªå®
ã§ééããèŠã€ããããšãã§ããŸãã ãããã®ããã€ãã¯ããããããã«ãããŸãã
äžè¬ã«ãç§ã¯æ°åŠã®ç¥èãéåžžã«ä¹ãããããã«ãããã¹ã¿ããã®ç¥èãä¹ãããããŒãã®å ±åããäœãåŸãããªãã®ã§ã¯ãªãããšå¿é
ããŸããã IQãååã§ã¯ãªãããã§ãã ãããããããçè§£ã§ããªãæ¹æ³ã§ãã¬ããŒãã®å
容ã¯å®éã«éåžžã«çè§£å¯èœã§é©çšå¯èœã§ããããšã倿ããŸããã
ã¬ããŒãã¯ãèãããç·ã ã£ãææã«ãã€ã¯ããœãããè¡ã£ããã¹ãã®1ã€ã«é¢ãã話ããå§ãŸããŸãã

æå€§ã®ééãã¯ããã¹ãããŸã£ãããªãå Žåã補åã«äœããå±éã§ãããããåŸæããããšã§ãã

å€ãã®å Žåã人ã
ã¯ããã§äœãè€éãªã®ãçè§£ããŠããªã-ãŠãŒã¶ãŒã«ãã£ãŠãããå£ããã¿ããªã«èŠããŠãçµæãèšç®ããŠ-ããã§å®äºã ïŒ

å®éã«ã¯ãdofigãããè€éã«ãªãå¯èœæ§ããããšããäºå®ã«é¢ããããŒãã®å
šå ±åæžã
ããšãã°ã人ã¯ç§ãã¡ã®ãµãŒãã¹ã®å°ããªå€æŽãããèªåã®ç¿æ
£ã«äŸåããŠããŸãã
ãããã£ãŠãåé¢ç»åã¯ããã§ã¯ãããŸããïŒ

ãããŠããã«ãã®ãããªãã®ããããŸãïŒ

å®éãç§ãã¡ã®å®éšã«æ¥ã人ã¯éåžžã«å°ãªããç ç©¶ã®çµæã¯äžè¬ã®ãã¹ãŠã®äººã«é©çšããå¿
èŠããããŸãã ãããŠãããã¯å€å
žçãªçµ±èšã¿ã¹ã¯ã§ãã
ã¬ããŒãã®äžå¿çãªè¡ã¯ãããã€ãã®å€§ããªééãã§ãã
- ãŸã£ããå®éšããªãã§ãã ãã
- ãŠãŒã¶ãŒã®æã§ãã©ã¡ãŒã¿ãŒã確èªãã
- æªãå®éšãå€ããã
- åèšç®ã®å¯èœæ§ãããå®éšãã°ãä¿åããªãã§ãã ãã
- 枬å®ãããææšèªäœãæéãšãšãã«å€åããããšãèæ
®ããªãã§ãã ããïŒããã¯å£ç¯æ§ãšåŒã°ããŸãïŒ
çµæã¯ã»ãŒåãã§ãïŒãããŠããããã¯åè¿°ã®åé¡ããç¶ããŸãïŒã

ç§ã«ãšã£ãŠããã®ã¬ããŒãã¯çµæãšããŠã§ã¯ãªãã調åã®ãšããæšè«ã·ã¹ãã ãšããŠäŸ¡å€ãããããã®è³æãåºç€ãšããŠããã®æ¹åã§ç¬ç«ããŠèãç¶ããããšãã§ããŸããã
ãããŠãã¡ãããæ°åŠã¯ãŸã åŒãäžããå¿
èŠããããŸãã

1ã€ã®ã¹ã©ã€ãã§ã¬ããŒãå
šäœã衚çŸããããšãããšãããããæ¬¡ã®ããã«ãªããŸãã

ã¹ããŒã«ãŒ ïŒã¢ã¬ã¯ã»ã€ã»ã©ãã¬ãã¥ã¯ããã£ã ãŒã«ã»ãã«ãããã æšå®å€ ïŒ4.38±0.14ã ãã¬ãŒã³ããŒã·ã§ã³ãžã®ãªã³ã¯ ã
次ã®ã¬ããŒãã¯ãYandexã®2人ã®éçºè
ã宿œããŠããŸãã Alexeyã¯ã Yandex.Tank ã Pandora ã Overloadãªã©ã«é¢äžããŠããŸãã Timurã¯ãã¬ã³ã ã§4幎éãYandexã§æåŸã®4幎éåããŠããŸããã
ããã¯ãã©ã€ãã§ã®åå ã倿ããæ°å°ãªãã¬ããŒãã®1ã€ã§ããã ç§ã¯åœŒã«äžçŽãªåæ©ããæ¥ãŸãããçŸä»£ã®ã¢ããªã±ãŒã·ã§ã³ãã©ã®ããã«ããããªãŒãæ¶è²»ããããgloããŸãã ãã®å ±åæžã®å©ç¹ã¯ãå
šç€Ÿçã«ãããšåæ¢ã«æŠã£ãŠãã人ã
ããã®æ£ç¢ºãªãã®ã§ãã
倧ãŸãã«èšãã°ããµãŒããŒã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã®ã¿ããã¹ãããæ¹æ³ãç¥ãåã«ãä»ã§ã¯å
šäžçãæºåž¯é»è©±ã«åãæ¿ãã£ãŠããŸãã ç¹ã«ãYandexã¯é»è©±ã®ãšãã«ã®ãŒæ¶è²»éãæž¬å®ããŸãã AlexeyãšTimurã¯ããšãã«ã®ãŒã¡ããªãã¯ãããŒããŠã§ã¢ã§çµã¿ç«ãŠãæ¹æ³ãåŠãã æ¹æ³ã説æããŸããArduinoã«åºã¥ããŠé»æµã枬å®ããå°ããªåè·¯ãçµã¿ç«ãŠããããšé£æºããã©ã€ãã©ãªãäœæããŸããã 圌ãã¯ã©ã€ãã©ãªããªãŒãã³ãœãŒã¹ã«æçš¿ããŸãã ã ããã«ããã®ã¬ããŒãã§ã¯ãé»è©±ã®æºåæ¹æ³ããã¹ãããã¯ã¹ã®çµã¿ç«ãŠæ¹æ³ãããã³ã©ã€ãã©ãªã®äœ¿ç𿹿³ã«ã€ããŠèª¬æããŠããŸãã
ãã¡ãããããã¯ãã¹ãŠããŸã第äžã«ãŸã£ãããªè
ãæã£ãŠãã人ã«ãšã£ãŠè峿·±ããã®ã§ãã ç§ã¯ãå®çšŒåç°å¢ã§ãããæ¬åœã«å®è¡ã§ãããã©ããã¯ããããŸããã ããã«ã¯ãé¡èãªæç¶æ§ãšæèœãå¿
èŠã§ãã ããããå°éå®¶ããããã©ã®ããã«è¡ãã®ãäžæè°ã«æãããšã¯åžžã«è峿·±ãã
ã¬ããŒãã¯ããã¹ããå®éã®é»è©±ã§è¡ãããå Žåã®è€éãããå§ãŸããŸãã

誰ããããå¿
èŠãšããŠããã®ãããããŠåœŒãèªèº«ã®ãšãã«ã®ãŒãœãªã¥ãŒã·ã§ã³ã«ã¯ã©ã®ãããªç¹æ§ãããã®ãââã«ã€ããŠãããã€ãã®ç ç©¶ãè¡ã£ãŠããŸããã

ã¬ããŒãã®æŠèŠã¯æ¬¡ã®ãšããã§ãã

ã€ãŸããæåã«ãã«ãã¡ãŒã¿ãŒã䜿çšããªãã£ãçç±ã説æãããæ¬¡ã«ãã£ã ãŒã«ãç»å ŽãããªãŒãã³ãœãŒã¹ã®å
容ãšãã®äœ¿ç𿹿³ã瀺ããŸãã
é»è©±æ©ã§ã§ããããšãšã§ããªãããšã«é¢ããããã€ãã®åé¡ããããŸãïŒããã³iPhoneã®1/20ã¡ããªãã¯ã®æå³ïŒ


ã¿ãŒã³ããŒãœãªã¥ãŒã·ã§ã³ã®ç ç©¶æ¹æ³ã«ã€ããŠèª¬æããŸãã

ãããã£ãŠã圌ãã¯ããžãã¹ã«åãæãããŸããïŒ


äœæ¥äžã«çããçŽç²ãªããŒããŠã§ã¢ã®ãã€ããŒãªåé¡ã ãã§ãªãã


ãããããœãããŠã§ã¢éçºã®åé¡ïŒ


ã¬ããŒãã®2çªç®ã®éšåã¯ãæ¢è£œã®ãœãªã¥ãŒã·ã§ã³ã§ããVoltaãšVoltaBoxã«åœãŠãããŠããŸãã


ãœãããŠã§ã¢ã¯pip install volta
ã䜿çšããŠpip install volta
ãããŸãã ããã¯ãœãããŠã§ã¢ãå
éšã§ã©ã®ããã«èŠãããã§ãïŒ

å®éãå³ã¯ãå
éšã®ãã¹ãŠãéåžžã«ããèããããŠããããšã瀺ãããã ãã«ããã«ãããŸãã
Timurã¯ãããããã¹ãŠãå®éã«æ§æããŠäœ¿çšããæ¹æ³ã説æããŸãã ãã¹ãŠãJupyter Notebookã§æ©èœããããããããªãã®æã«åŸã£ãŠãã ããïŒ


äžè¬ã«ãçµæã¯æ¬¡ã®ããã«ãªããŸãã

å ±åæžã¯ããšãã«ã®ãŒæ¶è²»ã®æž¬å®ã¯ããçš®ã®ç©ºæ³ãé ãæªæ¥ã§ã¯ãªããšããæèŠãæ®ããŠããŸãããä»ããã«è¡ãããšãã§ããŸãã ãããŠãããããã¹ãŠã¯ãç©çç§åŠããã³æ°çç§åŠã®å»åž«ã§ããå¿
èŠã¯ãããŸããã ãã¡ãããããã¯ãã¢ã¬ã¯ã»ã€ããã£ã ãŒã«ã®ãããªäººã
ãç§ãã¡ã®ããã«ãã¹ãŠãããŠãããããããå¯èœã§ãããç§ãã¡ã¯æ¢è£œã®ãã®ãã䜿çšã§ããŸããã
ã¹ããŒã«ãŒ ïŒã¢ã³ãããŒãã»ããµã¡ããã£ããã æšå® ïŒ4.40±0.10ã ãã¬ãŒã³ããŒã·ã§ã³ãžã®ãªã³ã¯ ã
éåžžã®ããã°ã©ããŒïŒããã³ãã¹ã¿ãŒãïŒã¯ã幞ããªéã ãããã¹ãããããšã奜ã¿ãŸãã 幞ãã§ã¯ãªããã®ãã¹ãŠãç§ã®ç¥çµã«ä¹ããããŠããŸãã ãããã£ãŠãéåžžããšã©ãŒã·ããªãªã¯ã»ãšãã©æ³šç®ãããŸããã
å€ãã®å ŽåããŠãŒã¶ãŒãã©ã®ããã«æããããèããã«ãããšã©ãŒçªå·392904ããããã£ãšãäœããããããããªã©ã®åãçš®é¡ã®ã€ã³ã¿ãŒãã§ã€ã¹ãŠã£ã³ããŠãäœæããŸãã ãããã圌ã¯åæºãã補åã«å¯Ÿããèªä¿¡ã倱ããŸãã ããŠããŸãã¯è·¯äžã§è¿œãã€ããšããŒãã
ãã®ã¬ããŒãã¯ãæ®éã®äººã®ç®ãéããŠãšã©ãŒã瀺ããŠããŸãã ã¢ã³ãããŒãã¯ããŠãŒã¶ãŒãæãããªãããã«ããšã©ãŒãšã¯ã©ãã·ã¥ãæ£ããå ±åããããã«ã€ã³ã¿ãŒãã§ãŒã¹ãæããæ¹æ³ãæããŸãã
ã¹ããŒãªãŒã¯ããšã©ãŒã·ããªãªã®æŠèŠããå§ãŸããŸãã

ãã®ãããªã·ããªãªãåŠçããããžãã¹ãæ£åœåããæ¹æ³ã«ã€ããŠå°ãïŒ

ããã¯ãã¹ãŠå®éã®ãéã«å€æãããŸãã

ããã¯è¯ããšã©ãŒã¡ãã»ãŒãžã§ãïŒ
- ãµããŒãè² è·ã軜æž
- ãŠãŒã¶ãŒãã³ã³ããŒãžã§ã³ãã¡ãã«ã§è¿·åã«ãªããªãããã«ãã
- 補åã®æäœæ¹æ³ããã°ããæããŸãã
- å°é£ãªææã«ãµãŒãã¹ã«å¯Ÿããä¿¡é Œãç¶æããã®ã«åœ¹ç«ã¡ãŸã
ããã«ãããŸããŸãªã¿ã€ãã®ãšã©ãŒããããã«å¯ŸãããŠãŒã¶ãŒã®åå¿ïŒWorld of Tanksã®äŸãå«ãïŒïŒãããã³ãšã©ãŒã¡ãã»ãŒãžã®åœ¢æã«å¯äžãããã¹ãŠã®ãã¥ã¢ã³ã¹ãäœç³»çã«èª¬æãããŠããŸãã


ãŠãŒã¶ãŒã®é£çµ¡å
ãã£ãã«ãšããšã©ãŒã«ã€ããŠãŠãŒã¶ãŒã«æ£ããéç¥ããæ¹æ³ã«ã€ããŠå°ã説æããŸãã

ãã§ãã¯ãªã¹ãã®åœ¢åŒã§ãã¢ããªã±ãŒã·ã§ã³ãæ¹åããããã®å
·äœçãªãã³ããæäŸãããŠããŸãã

ããã¯ãã¹ãŠãéåžžã«å€ãã®å®äŸã§ç€ºãããŠããŸãã

èŠèŠé害è
åãã®ã€ã³ã¿ãŒãã§ãŒã¹ãªã©ãéåžžã«çããã¢ããªã±ãŒã·ã§ã³ã§ãèæ
®ãããŸãã

äžè¬ã«ããã®ã¬ããŒãã¯åã«éäžããæ
å ±ã«å§åããããã¹ãŠããã®çµã蟌ã¿ã®åœ¢ã§äŒããããšã¯äžå¯èœã§ãã
ãã ããç¹å®ã®äžå€®èšç»ãæããããšãã§ããŸãã
- ã°ããŒãã«ã¯ã©ãã·ã¥ãå ±åããæ¹æ³
- ç¹å®ã®ãã°
- ãŠãŒã¶ãŒãšã©ãŒ
- æ¥ç¶ãµãŒãã¹ã®åé¡
- å€éšã®åé¡
- éåžžã«çãããŠãŒã¶ãŒãŸãã¯ãµãŒãã¹ã®åäœ
æåŸã«ãçåœã®å®å®ã®äž»ãªåé¡ãæèµ·ãããäžè¬çã«ïŒ

ãŸããããããã¹ãŠãã©ãåŠçãããããããã¯ã§äœãèªãã¹ããã«ã€ããŠã®æç¢ºãªãã§ãã¯ãªã¹ãããããŸãã


ãèªã¿æ¹ãã«é¢ããã¹ã©ã€ã-90åã®3ã 93æã®ã¹ã©ã€ããã«ãŒã«ïŒ
ãããªãèŠãåŸãããã¯åãªãã¬ããŒãã§ã¯ãªããã¹ããŒãã§é«åºŠãªç ç©¶ã®æ¬ã§ããæ¬ã ãšæããŸããã ãã¶ããã€ãåœŒå¥³ã¯æ¬ãæžãã§ããããïŒ ããã§ããã
確ãã«ãããã«ãããšèšãããããšã¯ãã¹ãŠãæããã«ããããŠããžãã¹äžãéåžžã«æçšã§ãã 146ïŒ
ã§é©çšãããæ°å°ãªãã¬ããŒãã®1ã€ã
ã¹ããŒã«ãŒ ïŒArtyom Eroshenko; æšå®å€ ïŒ4.45±0.08ã ãã¬ãŒã³ããŒã·ã§ã³ãžã®ãªã³ã¯ ã
Artyomã¯ãAllureããã³HtmlElementsã®èè
ãšããŠç¥ãããŠããŸãã Webãã¹ãã®èªååã«é¢é£ãããããžã§ã¯ãã«é·ãéæºãã£ãŠãã圌ã¯ãæåã®ãã¹ãããæ°åãŸã§ã®ãããžã§ã¯ãå
šäœãéããŠã圌ãšåœŒã®ããŒã ã«ãšã£ãŠå¿«é©ãªäœæ¥ãä¿èšŒããäžé£ã®ã«ãŒã«ãäœæããŸããã ãã®äžé£ã®ã«ãŒã«ã¯ããéçºã®ãããããããçµæãžã®ä¿¡é Œãããå質管çãã®3ã€ã®ã°ã«ãŒãã«æ¡ä»¶ä»ãã§åå²ãããŠããŸãã
ãã®ã¬ããŒãã¯ãArtemãšããŒã ããã¹ããã§ããã ãç°¡åãã€æç¢ºã«äœæããã³ç·šéã§ããããã«ããããŒã«ãæ±ã£ãŠããŸãã ããŒã å
šäœã§ãã¹ãã«åæ Œããçµæããã¹ãã®å質管çãã©ã®ããã«å®è¡ããããã«ã€ããŠã®ä¿¡é ŒãåŸãã®ã«åœ¹ç«ã€ã¢ãããŒããæ€èšãããŸãã
æãæ£ããã®ã¯ããã®ã¬ããŒããèšç»ã®åœ¢åŒã§æç€ºããããšã§ãã
å®éããã®ã¬ããŒãã§ã¯170æä»¥äžã®ã¹ã©ã€ãã䜿çšãããŠããŸã ã ããã«ã€ããŠè©³ãã説æãå§ããå Žåã¯ãå¥ã®ãããã¹ããå¿
èŠã«ãªããŸãããããã¹ãã¯å¿
èŠãããŸããã

å
šäœãšããŠã次ã®ããã«ãªããŸãïŒäŒè©±ãã¹ã ãŒãºã«é²ããããå
¥ãåã®ã¬ãã«ãšã©ããã§æ··åããå Žåã¯ç³ãèš³ãããŸããïŒïŒ
- ã·ã³ãã«ã
- éçºããŒã«
- ãã©ãŠã¶ã§äœæ¥ãã
- PageElements
- ã¢ã€ãã æ§æ
- ããŒãžæ§é
- ãã¹ãã¯ã©ã®ããã«èŠããŸããïŒ
- HtmlElementsã®ãã¡ãªãã
- AjaxããŒãžã®çã¿
- ãµã€ããã§ãã¯
- ãã©ã¡ãŒã¿åã®æ¬ åŠ
- ãã®ã³ã°ã®æ¬ åŠ
- ã¯ã©ã¹ã§ã¯ãªãã€ã³ã¿ãŒãã§ãŒã¹
- ãã©ã¡ãŒã¿å
- æ€èšŒè©Šéš
- ããŒãžãã³ãã¬ãŒã
- ã¢ã€ãã 説æ
- æé ã¯å®è³ªçã«å¿
èŠãããŸãã
- ããŒã¿æºå
- éåžžã®HTMLãªã¯ãšã¹ã
- ãã¹ãã©ã¡ãŒã¿ãŒ
- ã¯ãšãªãªãã·ã§ã³
- ãªã¯ãšã¹ãæ¬æ
- ããããŒãæäœãã
- ãã¹ãUserServiceã§ã®èª¬æãäœæãããã³äœ¿çš
- ãã¹ãæ§æ
- ãã¹ããå®è¡ãã
- ãã¹ãæ§æ
- æ§æã®èª¬æ
- ããªããã£ãå
- æ¡åŒµã¿ã€ã
- ãªã¹ããšé
å
- è€æ°ã®ãœãŒã¹
- å€ã®ãªãŒããŒã©ã€ã
- WebConfigèšå®
- ApiConfigã®æ§æ
- æ§æã®åæå
- ãã¹ãã§äœ¿çšãã
- äŸåæ§æ³šå
¥
- äŸåã°ã©ã
- åºæ¬ã¯ã©ã¹ãæªã
- éçãã£ãŒã«ããæªã
- æ¬åœã«å¿
èŠãªãã®ã¯äœã§ããïŒ
- ProviderWebConfig
- ProviderWebDriver
- MainPageãããã€ããŒ
- ã¢ãžã¥ãŒã«æ§æ
- ãŠãŒã¶ãŒãããã€ããŒ
- JUnitãšã®çµ±å
- ãã¹ãã¯ã©ã®ããã«èŠããŸããïŒ
- ä¿¡é Œ
- ãã¹ãã«ãããããŒã ã®ä¿¡é Œ
- ã·ã§ãŒããã¹ã
- ãã£ãŒãã®äŸ
- ãµãŒãã¹ã¯ã©ã®ããã«èŠããŸãã
- ãã¹ãå®è¡ã¯ã©ã®ããã«èŠããŸããïŒ
- æ¬åœã«
- ãªããããèµ·ãã£ãŠããã®ã§ãã
- ç°ãªããšã³ããªãã€ã³ã
- è¡åããæ¹æ³
- ã¹ã¿ããµãŒããŒ
- åºåã確èªããæ¹æ³
- ãã£ã«ã¿ãŒã®ç¢ºèªæ¹æ³
- å®è£
ã¯äœã§ãã
- ãµãŒãã¹ã¯ã©ã®ããã«é
眮ãããŠããŸãã
- ã¹ã¿ããµãŒããŒ
- ãããã·ã¢ãŒã
- ãã¹ãã®ä»çµã¿
- ãã¹ãã§ã¯ã³ãŒãã¯ã©ã®ããã«èŠããŸãã
- ãããŠãè€æ°ã®ã¹ã¬ããã«ããå Žåã¯ïŒ
- ãã¹ãID
- HTTPãªã¯ãšã¹ãããããŒ
- å¶åŸ¡
- ã¿ã€ããèµ·åããŸã
- ã°ã©ãã¡ã
- ãã£ãŒãã®äŸ
- ãã¹ãæ°
- ãã¹ãå®è¡ã¹ããŒã¿ã¹
- ãã¹ãã¹ããŒã¿ã¹
- ãã¹ãéå§æé
- åèµ·åã®åæ°
- åèµ·åãšã¹ããŒã¿ã¹
- åèµ·åãšæé
- èµ·åã®åé¡
- ãã¡ã€ã«ãcategories.jsonã
- åé¡ã®ã«ããŽãª
- èšå®æ¹æ³
- ã©ã®ããã«æ©èœããŸããïŒ
- InfluxDBãžã®ãšã¯ã¹ããŒã
- InfluxDBããŒã¿åœ¢åŒ
- ã¢ãªã¥ãŒã«ãã©ã°ã€ã³
å®éãããã¯ãã®ãããã¯ã«é¢ããæãå
æ¬çãªãªãã¡ã¬ã³ã¹ã¬ããŒãã®1ã€ã§ããã远å ããç¹å¥ãªãã®ã¯ãããŸããã ããã¯éåžžã«å€§ããªãã§ãã¯ãªã¹ãã§ãããããäžè²«ããŠåŸãå¿
èŠããããŸãã
TOP-3
ã¹ããŒã«ãŒ ïŒã¢ã¬ã¯ãµã³ããŒãã¹ãããã³ã©ã€ã³ãºããã æšå®å€ ïŒ4.57±0.10ã ãã¬ãŒã³ããŒã·ã§ã³ãžã®ãªã³ã¯ ã
ãã±ãŒã·ã§ã³ã®æäœã¯éåžžã«éèŠã§ããããã®ããã»ã¹ã«ã¯äºåã«äºæž¬ããã®ãé£ãããã€ã³ãããããããããŸãã ã¹ããŒã«ãŒã¯ããã®ãããã¯ã®åé¡ãšãã¥ã¢ã³ã¹ã匷調ãã圹ç«ã€ãã³ããæäŸãã䜿çšããããŒã«ã«ã€ããŠè©±ããŸãã ãã®ãããã¯ã«é¢ããæ
å ±ã¯ããã»ã©å€ããªãã®ã§ããã®ã¬ããŒãã¯ã»ãšãã©ã®äººã«åœ¹ç«ã¡ãŸãã
æåã«ãã¹ããŒã«ãŒã¯Badoo
ã§ã©ãã ãã¯ãŒã«ã§å€§ããããšãããããã¯ã«ã€ããŠäžé£ã®Badoo
ãŸãã ç§èªèº«ã¯ãã®ãµãŒãã¹ã䜿çšããŠããªãã®ã§ãæ°åã¯ç§ã«è»œãã·ã§ãã¯ãäžããŸããã

ãããŠããããã¯ãã¹ãŠä¿è·ããã圢åŒã§æ£ããä¿åãããŸãã
ã¬ããŒãã®å
å®¹ã¯æ¬¡ã®ãšããã§ãã


æåã«ãææ°ã®ãžãªãã±ãŒã·ã§ã³ãã©ã®ããã«æ©èœãããã«ã€ããŠã®ããã€ãã®å
¥éæ
å ±ã瀺ããŸãã

次ã«ãããã€ãã®ã¿ã¹ã¯ïŒãã§ããã ãå°ãªãé»åã§å€§éã®ãžãªããŒã¿ãåŠçããããªã©ïŒãèšå®ããããããã®åããžãªããŒã¿ã䜿çšãããå€ãã®äŸã瀺ãããŠããŸãã
åé¡ã¯ãã¢ããªã±ãŒã·ã§ã³ãèµ·åããŠããæå®ã®ç²ŸåºŠã§ãžãªããŒã¿ãåéãããŸã§ã«æéããããå Žåãããããšã§ãã

åŸãããããŒã¿ã¯å®å
šã«æ£ç¢ºã§ã¯ãªãããã¹ãã§ããå¿
èŠããããšèšãããŠããŸãã ãã¹ãã«ã¯ãAndroidãšãã¥ã¬ãŒã¿ãŒãšXcodeã·ãã¥ã¬ãŒã¿ãŒã䜿çšãããã©ãã«ã§ããã°ããããŸãã

ããŸããŸãªè峿·±ããŠãŒãã£ãªãã£ïŒ

ããã§ãã·ã¹ãã ã¯ãã§ã«ããŒã¿ãåä¿¡ããŠââããŸãïŒäžèšã®ãããã§ãïŒãéåžžã¯äœããã®åœ¢ã§æ©èœããããšã確èªããå¿
èŠããããŸãã

æ
å ±ãã€ãºã®åé¡ãè°è«ãããŠãããæã«ã¯ã©ã®æ¹æ³ãæããããæç¢ºã§ã¯ãããŸããïŒ

åœç¶ãããã«ãã°ã®è¡ããããŸãã è¯å¥œãªãã°ã®åºæºãå®åŒåãããŸãã


次ã«ãåªãããããã°ã¡ãã¥ãŒãäœæããæ¹æ³ã«ã€ããŠã®è°è«ã®ãããã¯å
šäœãæ¥ãŸãã

ããããé»åæ¶è²»ãã°ã¯ã©ãã§ããããïŒ Yandexã®ä»¥åã®ã¬ããŒããžã®çŽ æŽãããåç
§ïŒ

ãã ããã¹ããŒã«ãŒã«ã¯ç¬èªã®äžæ£è¡çºã®ãã¯ããã¯ããããŸããããšãã°ãBadooã«ã¯éåžžã«åŒ·åãªç£èŠããŒã ããããããããã¹ãŠãéåžžã«ããŸãè¡ã£ãŠããŸãã

ã©ã³ãã ãªæ¥œããäºå®ïŒ

ãšãã«ã®ãŒæ¶è²»ã®æå°åã«é¢ããäžé£ã®çµè«ã¯äœã§ããïŒ

ããã«ããã®ã¬ããŒãã«ã¯ããã©ã¢ã°ã©ãŠã³ãã§ã®äœçœ®ã®æç¢ºåã座æšã®å€§å¹
ãªå€åãžã®åå¿ããããã¯ãŒã¯ã§ã®äœæ¥æã®ã¿ã€ã ã¢ãŠããäœçœ®ããŒã¿ã®èåãªã©ãéåžžã«å€ãã®è峿·±ããã®ããããŸãã
ããªããæ¬åœã«ãããçå£ã«åãããšã«æ±ºãããªããããªãããžãªãã±ãŒã·ã§ã³ãµãŒãã¹ã§ã©ã®ããã«ã§ãããããããŠåãã¹ããã«ã€ããŠã®åªãããçãçããšããçè§£å¯èœãªç©èªïŒ
ã¹ããŒã«ãŒïŒã¢ã³ãã¬ã€ã»ãœã«ã³ãã§ããæšå®å€ïŒ4.57±0.06ããã¬ãŒã³ããŒã·ã§ã³ãžã®ãªã³ã¯ã
äžå®å®ãªãã¹ã-èªåãã¹ãã®é çã æšæ¥ããã¹ãã¯ç·è²ã§ãããã仿¥ã¯çªç¶èµ€è²ã«å€ãããŸãã-çç±ã¯ãããŸããã 誰ãäœãå€ããŸããã§ããã æãééã£ãäœçžã«ãããšããã ãã§ãã , . â , .
- , :

Flaky- â , .
. , , .

1,5% â . .
:

, . , :

, - :

nbob
( , !), , Java, « » ( , ), Chrome .
, - :


:

: ; : 4,61 ± 0,11. .
, : « , ». - , ?
GameDev World of Tanks. , , ( -), «bot-net» â «World of Tanks» Python. .
, .
, â . -, , , - ( Overwatch, ). -, MMO-, , , , .
â World of Tanks.

:

, MMO . , , , ⊠, :)

â .

, PHP, , â .
.

, -. , .

, , , , . , .

. !

( , ) â . WoT , .

, â . , , , . : , , .., , .

, . !
(, , ):

( , , , ):

, , .

, , . , . , . .
, .

, - , , . !


:

headless-.

, ? XML, : C, C++, C#, Python, LUA.
. , . , , .. , â .
: ( â 1 , 100 headless, ) .



, (, , ) :


, .
, !



以äžã§ãã , . : , , , , , , - «-».
åºåã®åã ãããããåç¥ã®ããã«ãäŒè°ãè¡ã£ãŠããŸãã â Heisenbug 2018 Piter , 17-18 2018 . , ( â ), . èŠããã«ãç§ãã¡ã¯ããªããåŸ
ã£ãŠããŸãã