å°ãåãŸã§ãç§ã¯ããªãåçŽã§è峿·±ãä»äºã«åºããããŸãããèªã¿åãå°çšç«¯æ«ãWebã¢ããªã±ãŒã·ã§ã³ã«å®è£
ããããšã§ãã ã¿ã¹ã¯ãžã®é¢å¿ã¯ã3ã€ã®éèŠãªåŽé¢ã«ãã£ãŠäžããããŸããã
ãã®èšäºã§ã¯ãã©ã®ããã«å®è£
ããã©ã®ããã«æé©åããã®ãã«ã€ããŠèª¬æããŸãã
å
責äºé
ïŒç§ã¯çµéšè±å¯ãªãŠã§ãéçºè
ã§ã¯ãªãã®ã§ãããã€ãã®ããšã¯ããªãã«ã¯æããã§ãããšæããããããããŸããã èšæ£ãšèª¬æã«ã€ããŠã¯ãæè¬ããŸãã
ãªããããŸã§
å
šäœã®ã¿ã¹ã¯ã¯æ¬¡ã®ãšããã§ããã¹ã¯ãªããã¯ãµãŒããŒïŒbashãpythonãªã©ïŒã§å®è¡ãããstdoutã«äœããæžã蟌ã¿ãŸãã ãããŠããã®çµè«ã¯ãå°çæã«WebããŒãžã«è¡šç€ºããå¿
èŠããããŸãã åæã«ã端æ«äžã§ã®ããã«èŠããã¯ãã§ãïŒãã©ãŒããããã«ãŒãœã«è»¢éãªã©ã䜿çšïŒ
ã¹ã¯ãªããèªäœãšãã®åºåã¯äžåå¶åŸ¡ãããçŽç²ãªåœ¢åŒã§è¡šç€ºããŸãã
ãã¡ãããWebã€ã³ã¿ãŒãã§ã€ã¹ãšã¹ã¯ãªããã®éã«ã¯ã仲ä»è
ïŒWebãµãŒããŒïŒãå¿
èŠã§ãã ãããŠãè§£æ£ããªãå Žå-ç§ã¯ãã§ã«ãŠã§ãã¢ããªã±ãŒã·ã§ã³ãšãµãŒããŒãæã£ãŠãããäœããã®åœ¢ã§åäœããŸãã ã¹ããŒã ã¯æ¬¡ã®ããã«ãªããŸãã

ããã以åã¯ããµãŒããŒãåŠçãšãã©ãŒããããæ
åœããŠããŸããã ãããŠãç§ã¯å€ãã®çç±ã§ãããæ¹åãããã£ãïŒ
- ããã«ããŒã¿åŠç-æåã«ãµãŒããŒã§è§£æããæ¬¡ã«ã¯ã©ã€ã¢ã³ãã§htmlã³ã³ããŒãã³ãã«å€æããŸã
- ã¯ã©ã€ã¢ã³ãã®ããŒã¿æºåã®ããã®æé©ã§ãªãã¢ã«ãŽãªãºã
- ãµãŒããŒã®è² è·ãéã-åäžã®ã¹ã¯ãªããããã®åºåãåŠçãããšããµãŒããŒã«åäžã®ã¹ããªãŒã ãå®å
šã«ããŒããããå¯èœæ§ããããŸã
- ANSI Escapeã·ãŒã±ã³ã¹ã®äžå®å
šãªãµããŒã
- 埮åŠãªãã°
- ã¯ã©ã€ã¢ã³ãã¯1äžè¡ã®ãã©ãŒããããããè¡ã衚瀺ããããšã§ãéåžžã«æªãçµæãåºããŸãã
ãã®ãããè§£æããžãã¯å
šäœãWebã¢ããªã±ãŒã·ã§ã³ã«è»¢éããã¹ããªãŒãã³ã°çããŒã¿ã®ã¿ããµãŒããŒã«æ®ãããšã«ããŸããã
åé¡ã®å£°æ
ããã¹ãã®äžéšãã¯ã©ã€ã¢ã³ãã«å±ããŸãã ã¯ã©ã€ã¢ã³ãã¯ãããããã³ã³ããŒãã³ãã«è§£æããå¿
èŠããããŸãïŒãã¬ãŒã³ããã¹ããã©ã€ã³ãã£ãŒãããã£ãªããžãªã¿ãŒã³ãããã³ç¹å¥ãªANSIã³ãã³ãã éšåã®å®å
šæ§ã«ã¯ä¿èšŒããããŸããã1ã€ã®ã³ãã³ããŸãã¯åèªãç°ãªãããã±ãŒãžã«å«ãŸããå ŽåããããŸãã
ANSIã³ãã³ãã¯ãããã¹ãã®åœ¢åŒïŒè²ãèæ¯ãã¹ã¿ã€ã«ïŒãã«ãŒãœã«ã®äœçœ®ïŒåŸç¶ã®ããã¹ãã衚瀺ããå ŽæïŒããŸãã¯ç»é¢ã®äžéšãã¯ãªã¢ããããã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
ã©ã®ããã«èŠãããã®äŸïŒ

ããã«ãããã¹ãã«ã¯ãèªèããã³åŒ·èª¿è¡šç€ºããå¿
èŠãããURLãå«ãŸããŠããå ŽåããããŸãã
宿ããã©ã€ãã©ãªãŒãåãåã...
ãã¹ãŠã®ã³ãã³ããæ£ããé«éã«åŠçããããšã¯ç°¡åãªããšã§ã¯ãªãããšãçè§£ããŸããã ãããã£ãŠãç§ã¯æ¢è£œã®ã©ã€ãã©ãªãæ¢ãããšã«ããŸããã ãããŠã èŠã ãæåéãããã«xterm.jsãèŠã€ããŸããã 端æ«ã®æ¢è£œã®ã³ã³ããŒãã³ãã¯ããã§ã«å€ãã®å Žæã§äœ¿çšãããŠãããããã«ãéåžžã«é«éã§ãGPUã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ã¬ã³ãã©ãŒãå«ãŸããŠããŸãã ã åŸè
ãç§ã«ãšã£ãŠæãéèŠã§ããããªããªãã ç§ã¯æçµçã«éåžžã«é«éãªã¯ã©ã€ã¢ã³ããååŸãããã£ãã
ç§ã¯èªåã®èªè»¢è»ãæžãã®ã奜ãã§ãããšããäºå®ã«ãããããããæéãç¯çŽã§ããã ãã§ãªãã䟿å©ãªæ©èœãç¡æã§ããããæã«å
¥ããããšãã§ããããšãéåžžã«å¬ããæããŸããã
端æ«ãæ¥ç¶ããããšããã®ã«ååŸ2æããããããã«å¯ŸåŠã§ããŸããã§ããã 絶察ã«ã
ããŸããŸãªè¡ã®é«ããæ²ãã£ãéžæã端æ«ã®é©å¿ãµã€ãºãéåžžã«å¥åŠãªAPIãå¥å
šãªããã¥ã¡ã³ãã®æ¬ åŠ...
ããããç§ã«ã¯ãŸã å°ãã€ã³ã¹ãã¬ãŒã·ã§ã³ãããããããã®åé¡ã«å¯ŸåŠã§ãããšä¿¡ããŠããŸããã
ç§ããã¹ã10kã©ã€ã³ãã¿ãŒããã«ã«éããŸã§...åœŒã¯æ»ã«ãŸããã ãããŠãç§ã®åžæã®æ®ããç§ãšäžç·ã«åããŸããã
æçµçãªã¢ã«ãŽãªãºã ã®èª¬æ
ãŸããPythonã§å®è£
ãããŠããçŸåšã®ã¢ã«ãŽãªãºã ãã³ããŒããjavascriptã«é©åãããŸããïŒäžæ¬åŒ§ãšå¥ã®æ§æãåé€ããã ãã§ãïŒã
å€ãã¢ã«ãŽãªãºã ã®äž»ãªé·æãšçæããã¹ãŠç¥ã£ãŠããã®ã§ããã®äžã®ç¡å¹ãªéšåãæ¹åããã ãã§ããã
審è°ã詊è¡é¯èª€ã®åŸã次ã®ãªãã·ã§ã³ã«æ±ºããŸãããã¢ã«ãŽãªãºã ã2ã€ã®ã³ã³ããŒãã³ãã«åå²ããŸãã
- ããã¹ããè§£æããã端æ«ãã®çŸåšã®ç¶æ
ãä¿åããããã®ã¢ãã«
- ã¢ãã«ãHTMLã«å€æãããããã³ã°
ã¢ãã«ïŒæ§é ãšã¢ã«ãŽãªãºã ïŒ
- ãã¹ãŠã®è¡ã¯é
åã«æ ŒçŽãããŸãïŒè¡çªå·=é
åã®ã€ã³ããã¯ã¹ïŒ
- ããã¹ãã¹ã¿ã€ã«ã¯å¥ã®é
åã«ä¿åãããŸãã
- çŸåšã®ã«ãŒãœã«äœçœ®ã¯ä¿åãããã³ãã³ãã§å€æŽã§ããŸã
- ã¢ã«ãŽãªãºã èªäœã¯ãå
¥åããŒã¿ãæåããšã«ãã§ãã¯ããŸãã
- ãããåãªãããã¹ãã®å ŽåãçŸåšã®è¡ã«è¿œå ããŸã
- æ¹è¡ã®å ŽåãçŸåšã®è¡ã€ã³ããã¯ã¹ãå¢ãããŸã
- ãããããŒã ãã£ã©ã¯ã¿ãŒã®1ã€ã§ããå Žåã¯ãããŒã ãããã¡ãŒã«å
¥ããŠæ¬¡ã®ãã£ã©ã¯ã¿ãŒãåŸ
ã¡ãŸã
- ã³ãã³ããããã¡ãŒãæ£ããå Žåã¯ããã®ã³ãã³ããå®è¡ããŸããããã§ãªãå Žåã¯ããã®ãããã¡ãŒãããã¹ããšããŠæžã蟌ã¿ãŸã
- ã¢ãã«ã¯ãçä¿¡ããã¹ãã®åŠçåŸã«ã©ã®è¡ã倿Žããããã«ã€ããŠãªã¹ããŒã«éç¥ããŸãã
ç§ã®å®è£
ã§ã¯ãã¢ã«ãŽãªãºã ã®è€éãã¯OïŒ n log n ïŒã§ããlognã¯ãéç¥ïŒäžææ§ãšäžŠã¹æ¿ãïŒã®ããã«å€æŽãããè¡ã®æºåã§ãã ãã®èšäºãæžããŠããæç¹ã§ãè¡ãæåŸã«è¿œå ãããããšãæãå€ããããç¹å¥ãªå Žåã«ã¯log nãåé€ã§ããããšã«æ°ä»ããŸããã
ãã£ã¹ãã¬ã€
- ããã¹ããHTMLèŠçŽ ãšããŠè¡šç€ºããŸã
- æååã倿ŽãããŠããå Žåãæååã®ãã¹ãŠã®èŠçŽ ãå®å
šã«çœ®ãæããŸã
- ã¹ã¿ã€ã«ã«åºã¥ããŠåè¡ãåå²ããŸããåæ§åŒåãããã»ã°ã¡ã³ãã«ã¯ç¬èªã®èŠçŽ ããããŸã
ãã®ãããªæ§é ã§ã¯ããã¹ãã¯éåžžã«ç°¡åãªã¿ã¹ã¯ã§ããããã¹ããïŒåäžã®ããã±ãŒãžãŸãã¯ããŒãã§ïŒã¢ãã«ã«è»¢éãããã®äžã®ãã¹ãŠã®è¡ãšã¹ã¿ã€ã«ã®çŸåšã®ç¶æ
ã確èªããã ãã§ãã ãããŠãããã€ãã®ãã¹ãã衚瀺ããããã 倿Žãããè¡ã¯åžžã«åæç»ãããŸãã
éèŠãªå©ç¹ã¯ããã£ã¹ãã¬ã€ã®ç¹å®ã®æ inessã§ããããŸãã 1ã€ã®ããã¹ãã§åãè¡ïŒããšãã°ãé²è¡ç¶æ³ããŒïŒãäžæžããããšãã¢ãã«ãæ©èœããåŸã衚瀺ã®ããã«1è¡å€æŽãããããã«èŠããŸãã
DOM vs Canvas
ç®æšã¯ããã©ãŒãã³ã¹ã§ãããããªãDOMãéžãã ã®ãã«ã€ããŠå°ã説æããããšæããŸãã çãã¯ç°¡åã§ã-æ inessã ç§ã«ãšã£ãŠã¯ãCanvasã§ãã¹ãŠãèªåã§ã¬ã³ããªã³ã°ããã®ã¯ãããªãå°é£ãªäœæ¥ã®ããã«æããŸãã 䜿ãããããç¶æããªããããã€ã©ã€ããã³ããŒãç»é¢ã®ãµã€ãºå€æŽãèŠãç®ãªã© xterm.jsã®äŸãããããã¯ãŸã£ããç°¡åã§ã¯ãªãããšãæç¢ºã«ç€ºãããŸããã ãã£ã³ãã¹ã§ã®ã¬ã³ããªã³ã°ã¯çæ³ãšã¯ã»ã©é ããã®ã§ããã
ããã«ããã©ãŠã¶ãŒã§DOMããªãŒããããã°ããåäœãã¹ããã«ããŒããæ©èœã¯éèŠãªå©ç¹ã§ãã
æçµçã«ãç§ã®ç®æšã¯5äžè¡ã§ãããå€ãã¢ã«ãŽãªãºã ã®äœæ¥ã«åºã¥ããŠãDOMãããã«å¯ŸåŠããå¿
èŠãããããšãç¥ã£ãŠããŸããã
æé©å
ã¢ã«ãŽãªãºã ã¯æºåãå®äºãããããã°ããããã£ãããšãããã確å®ã«æ©èœããŸããã ãããã¡ã€ã©ãŒãéããŠæé©åãããšããæ¥ãŸããã å°æ¥ãèãããšãã»ãšãã©ã®æé©åã¯ç§ã«ãšã£ãŠé©ãã§ããïŒéåžžã¯èµ·ãããŸãïŒã
ãããã¡ã€ãªã³ã°ã¯1äžè¡ã§å®è¡ãããåè¡ã«ã¯å®ååãããèŠçŽ ãå«ãŸããŠããŸããã DOMèŠçŽ ã®ç·æ°ã¯çŽ100kã§ãã
ç¹å¥ãªã¢ãããŒããããŒã«ã¯äœ¿çšãããŠããŸããã Chrome Dev Toolsãšãåæž¬å®ã®æ°åã®èµ·åã®ã¿ã å®éã«ã¯ãèµ·åæã«ã枬å®å€ã®çµ¶å¯Ÿå€ïŒå®äºãŸã§ã®ç§æ°ïŒã®ã¿ãç°ãªããã¡ãœããéã®æ¯çã¯å€ãããŸããã§ããã ãããã£ãŠããã®ææ³ã¯æ¡ä»¶ä»ãã§ååã§ãããšèããŸãã
以äžã§ã¯ãæãè峿·±ãæ¹åç¹ã«ã€ããŠè©³ãã説æããŸãã ãããŠããŸã第äžã«ãäœã®ã°ã©ãã§ãããïŒ

ãã¹ãŠã®ãããã¡ã€ãªã³ã°ã°ã©ãã£ãã¯ã¯ãã¡ã¢ãªããã³ãŒããæé©åè§£é€ããããšã«ãããå®è£
åŸã«æ§ç¯ãããŸããã
string.trim
ãŸã第äžã«ãéåžžã«é¡èãªéã®CPUãæ¶è²»ããäžå¯è§£ãªstring.trimã«åºäŒããŸããïŒããã¯çŽ10-20ïŒ
ã ã£ãããã§ãïŒ

trimïŒïŒã¯ãèšèªã®åºæ¬æ©èœã§ãã ãªãããã®çš®é¡ã®ã©ã€ãã©ãªã䜿çšãããŠããã®ã¯ãªãã§ããïŒ ãããŠããããäœããã®ããªãã£ã«ã§ãã£ãŠãããªãææ°ããŒãžã§ã³ã®ã¯ãã ããªã³ã«ããã®ã§ããïŒ
å°ãã°ãŒã°ã«ã§çããèŠã€ãããŸãïŒ https : //babeljs.io/docs/en/babel-preset-env ããã©ã«ãã§ã¯ãããªãå€ãã®ãã©ãŠã¶ãŒã§ããªãã£ã«ãæå¹ã«ããã³ã³ãã€ã«æ®µéã§ãããè¡ããŸãã ç§ã«ãšã£ãŠã®è§£æ±ºçã¯ã 'targets': '> 0.25%, not dead'
ãæå®ããããšã§ãã'targets': '> 0.25%, not dead'
ããããæçµçã«ã¯ãäžèŠãªããªã ã³ãŒã«ãå®å
šã«åé€ããŸããã
Vue.js
æšå¹Žãç§ã¯ç«¯æ«ã³ã³ããŒãã³ããVue.jsã«ç§»è¡ããŸããã ä»ãç§ã¯ãããããã©ã«æ»ãå¿
èŠããããŸãããçç±ã¯ä»¥äžã®ã¹ã¯ãªãŒã³ã·ã§ããã«ãããŸãïŒVue.jsãå«ãè¡ã®æ°ãåç
§ïŒïŒ

Vueã³ã³ããŒãã³ãã«ã¯ã©ãããŒãã¹ã¿ã€ã«ãããã³ããŠã¹åŠçã®ã¿ãæ®ããŸããã DOMèŠçŽ ã®äœæã«é¢é£ãããã¹ãŠã®ãã®ã¯ãéåžžã®ãã£ãŒã«ããšããŠVueã³ã³ããŒãã³ãã«æ¥ç¶ãããŠããçŽç²ãªJSã«éãããŸããïŒãã¬ãŒã ã¯ãŒã¯ã«ãã£ãŠç£èŠãããŸããïŒã
created() { this.terminalModel = new TerminalModel(); this.terminal = new Terminal(this.terminalModel); },
ç§ã¯ãããVue.jsã®ãã€ãã¹ãŸãã¯æ¬ é¥ãšã¯èããŠããŸããã ãã¬ãŒã ã¯ãŒã¯ãšããã©ãŒãã³ã¹èªäœã®çµã¿åãããäžååãªã ãã§ãã ããŠãæ°äžããæ°åäžã®ãªããžã§ã¯ãããªã¢ã¯ãã£ããã¬ãŒã ã¯ãŒã¯ã«ãããããããšãæ°ããªç§ä»¥å
ã«ããããåŠçããããšãæåŸ
ããã®ã¯éåžžã«å°é£ã§ãã æ£çŽã«èšããšãVue.jsãéåžžã«ããŸããã£ãããšã«ãé©ããŸããã
æ°ããã¢ã€ãã ã远å ãã
ããã§ã¯ãã¹ãŠãç°¡åã§ããæ°åã®æ°ããèŠçŽ ãããããããã芪ã³ã³ããŒãã³ãã«è¿œå ããå ŽåãappendChildãå®è¡ããããšã¯ãå§ãã§ããŸããã ãã©ãŠã¶ã¯åŠçãããå°ãé »ç¹ã«å®è¡ããã¬ã³ããªã³ã°ã«ããå€ãã®æéãè²»ããå¿
èŠããããŸãã ç§ã®å Žåã®å¯äœçšã®1ã€ã¯ãèªåã¹ã¯ããŒã«ã®é床äœäžã§ããã 远å ããããã¹ãŠã®ã³ã³ããŒãã³ãã®åã«ãŠã³ãã匷å¶ããŸãã

ãã®åé¡ã解決ããããã«ãDocumentFragmentããããŸãã ãŸãããã¹ãŠã®èŠçŽ ã远å ããŠããã芪ã³ã³ããŒãã³ãã«è¿œå ããŸãã ãã©ãŠã¶ã¯ãçä¿¡ã³ã³ããŒãã³ãã®ã€ã³ã©ã€ã³ãåŠçããŸãã
ãã®ã¢ãããŒãã¯ããã©ãŠã¶ãŒãèŠçŽ ã®ã¬ã³ããªã³ã°ãšé
眮ã«è²»ããæéãåæžããŸãã
ãŸããèŠçŽ ã®è¿œå ãé«éåããä»ã®æ¹æ³ã詊ããŸããã DocumentFragmentã®äžã«äœãã远å ããããšã¯ã§ããŸããã§ããã
ã¹ãã³vs div
å®éã«ã¯ã display:inline
ïŒspanïŒvs display:block
ïŒdivïŒãšåŒã°ãdisplay:inline
ã
æåã«ãç§ãæã£ãŠããåè¡ã¯ã¹ãã³ã«ãããæ¹è¡æåã§çµäºããŸããã ãã ããããã©ãŒãã³ã¹ã®ç¹ã§ã¯ãããã¯ããŸã广çã§ã¯ãããŸããããã©ãŠã¶ãŒã¯ãèŠçŽ ã®éå§äœçœ®ãšçµäºäœçœ®ãææ¡ããå¿
èŠããããŸãã displayïŒblockã䜿çšãããšããã®ãããªèšç®ã¯ã¯ããã«ç°¡åã«ãªããŸãã
divã«çœ®ãæãããšãã¬ã³ããªã³ã°ãã»ãŒ2åå éãããŸããã
æ®å¿µãªããã display:block
å Žåãè€æ°è¡ã®ããã¹ãã匷調衚瀺ããã®ã¯æªãèŠããŸãïŒ

é·ãéãã©ã¡ããè¯ããã倿ã§ããŸããã§ãã-äœåãª2ç§ã®ã¬ã³ããªã³ã°ãŸãã¯äººéã®éžæã ãã®çµæãå®çšæ§ã¯çŸãæã¡è² ãããŸããã
ã¬ãã«10 CSSãŠã£ã¶ãŒã
ããã¹ãã®æžåŒèšå®ã«äœ¿çšããCSSããæé©åãããããšã«ãããã¬ã³ããªã³ã°æéã®ãã10ïŒ
ãåæžãããŸããã
Webéçºã®çµéšãæµ
ããåºæ¬çãªããšãçè§£ã§ããªãã£ãããšãç§ã«åè«ããŸããã ã»ã¬ã¯ã¿ãæ£ç¢ºã§ããã°ããã»ã©è¯ããšæããŸããããç¹ã«ç§ã®å Žåã¯ããã§ã¯ãããŸããã§ããã
ã¿ãŒããã«ã§ããã¹ãããã©ãŒãããããã«ã¯ã次ã®ã»ã¬ã¯ã¿ãŒã䜿çšããŸããã
#script-panel-container .log-content > div > span.text_color_green,
ãããïŒã¯ãã ã§ïŒã次ã®ãªãã·ã§ã³ã¯å°ãéãã§ãïŒ
span.text_color_green
ç§ã¯ãã®ã»ã¬ã¯ã¿ãŒãããŸã奜ãã§ã¯ãããŸããããªããªã ã°ããŒãã«ãããŸãããããã©ãŒãã³ã¹ã¯ããé«ããªããŸãã
string.split
åã®ç¹ã®ããããã«èµ·å ããdeja vuãããå Žåãããã¯falseã§ãã ä»åã¯ããªãã£ã«ã§ã¯ãªããã¯ãã ã®æšæºå®è£
ã«ã€ããŠã§ãã

ïŒstring.splitãdefSplitã§ã©ããããŠããããã¡ã€ã©ãŒã«é¢æ°ã衚瀺ãããããã«ããŸããïŒ
1ïŒ
ã¯äºçްãªããšã§ãã ããããç§ã®çæ³äž»çŸ©çãªãµã€ã¯ãªã¹ãã¯å¹œéãåºãŸããã ç§ã®å Žåãåå²ã¯åžžã«äžåºŠã«1æåãã€è¡ãããæ£èŠè¡šçŸã¯ãããŸããã ãããã£ãŠãåçŽãªãªãã·ã§ã³ãå®è£
ããŸããã çµæã¯æ¬¡ã®ãšããã§ãã

fastSplit function fastSplit(str, separatorChar) { if (str === '') { return ['']; } let result = []; let lastIndex = 0; for (let i = 0; i < str.length; i++) { const char = str[i]; if (char === separatorChar) { const chunk = str.substr(lastIndex, i - lastIndex); lastIndex = i + 1; result.push(chunk); } } if (lastIndex < str.length) { const lastChunk = str.substr(lastIndex, str.length - lastIndex); result.push(lastChunk); } return result; }
ãã®åŸã圌ãã¯ã€ã³ã¿ãã¥ãŒãªãã§ç§ãGoogle ChromeããŒã ã«é£ããŠè¡ã矩åããããšæããŸãã
æé©åãããšãã
æé©åã¯çµããã®ãªãããã»ã¹ã§ãããäœããç¡æéã«æ¹åã§ããŸãã ç¹ã«ãç°ãªããŠãŒã¹ã±ãŒã¹ã§ã¯ç°ãªãïŒããã³ç«¶åããïŒæé©åãå¿
èŠã§ããããšãèæ
®ããŠãã ããã
ç§ã®å Žåãäž»ãªãŠãŒã¹ã±ãŒã¹ãéžæãããã®åäœæéã15ç§ãã5ç§ã«æé©åããŸããã ããã§ç§ã¯ãããããšã«ããã

æ¹åããäºå®ã®å Žæã¯ãŸã ããã€ããããŸãããããã¯åŸãããçµéšã®ãããã§ãã
ããŒãã¹ çªç¶å€ç°ãã¹ãã
é廿°ã¶æéãç§ã¯ãã°ãã°ãçªç¶å€ç°ãã¹ãããšããçšèªã«åºããããŸããã ãããŠãç§ã¯ãã®ä»äºããã®ç£ã詊ãçŽ æŽãããæ¹æ³ã§ãããšæ±ºããŸããã ç¹ã«ãã«ã«ãã®ãã¹ãã®ããã«ãWebstormã§ã³ãŒãã«ãã¬ããžãååŸããªãã£ãåŸã
ãã¯ããã¯ãšã©ã€ãã©ãªã®äž¡æ¹ãç§ã«ãšã£ãŠæ°ããã®ã§ãç§ã¯å°ãã®è¡ã§ããŸãããããšã«æ±ºããŸããïŒ1ã€ã®ã³ã³ããŒãã³ãã ãããã¹ããã-ã¢ãã«ã ãã®å Žåãã©ã®ãã¡ã€ã«ããã¹ãããŠããããã©ã®ãã¹ãã¹ã€ãŒããããã察象ãšããŠããããæç¢ºã«ç€ºãããšãã§ããŸãã
ãããããšã«ãããç§ã¯ã«ã«ããšwebpackãšã®çµ±åãéæããããã«å€ãããããå¿
èŠããããŸããã
çµå±ããã¹ãŠãèµ·åãã30ååŸã«æ²ããçµæãèŠãããŸããïŒãã¥ãŒã¿ã³ãã®çŽååãçãæ®ããŸããã äžåºŠã«ããã€ããæ®ºããå°æ¥ã®ããã«ããã€ããæ®ããŸããïŒæ¬ èœããŠããANSIã³ãã³ããå®è£
ãããšãïŒã
ãã®åŸãæ lazãåã¡ãçŸåšã®çµæã¯æ¬¡ã®ãšããã§ãïŒ128ãã¹ãã®å ŽåïŒã
Ran 79.04 tests per mutant on average. ------------------|---------|----------|-----------|------------|---------| File | % score | # killed | # timeout | # survived | # error | ------------------|---------|----------|-----------|------------|---------| terminal_model.js | 73.10 | 312 | 25 | 124 | 1 | ------------------|---------|----------|-----------|------------|---------| 23:01:08 (18212) INFO Stryker Done in 26 minutes 32 seconds.
äžè¬ã«ããã®ã¢ãããŒãã¯ç§ã«ãšã£ãŠéåžžã«æçšã§ããïŒã³ãŒãã«ãã¬ããžããæããã«åªããŠããïŒããããããããã«æããŸããã å¯äžã®ãã€ãã¹ã¯ãéåžžã«é·ãæéã§ãã1ã€ã®ã¯ã©ã¹ã§30åãé·ãããŸãã
ãããŠæãéèŠãªããšã¯ããã®ã¢ãããŒãã«ããã100ïŒ
ã®ã«ãã¬ããžãšããã¹ãŠããã¹ãã§ã«ããŒãã䟡å€ããããã©ããã«ã€ããŠèãçŽããããšã§ãã
ãããã«
ç§ã®æèŠã§ã¯ãããã©ãŒãã³ã¹ã®æé©åã¯ãããæ·±ãããšãåŠã¶è¯ãæ¹æ³ã§ãã è³ã«ãšã£ãŠãè¯ããã¬ãŒãã³ã°ã§ãã ãããŠããããæ¬åœã«å¿
èŠãªããšã¯ãã£ãã«ãããŸããïŒå°ãªããšãç§ã®ãããžã§ã¯ãã§ã¯ïŒã
ãããŠããã€ãã®ããã«ããæåã®ãããã¡ã€ãªã³ã°ãæ¬¡ã«æé©åãã¢ãããŒãã¯çŽæãããã¯ããã«ããŸãæ©èœããŸãã
åç
§è³æ
å€ãå®è£
ïŒ
æ°ããå®è£
ïŒ
æ®å¿µãªãããWebã³ã³ããŒãã³ãã®ãã¢ã¯ãããŸããã®ã§ãããªãã¯ãããçªãããšãã§ããŸããã äºåã«è¬çœªããŸã
ãæéãããã ãããããšãããããŸããã³ã¡ã³ããææ¡ãåççãªæ¹å€ãæè¿ããŸãã