Petyaã¯çµéšè±å¯ãªããã°ã©ããŒã§ãã å®åŒåãåããŠã圌ã¯åæ§ã®åé¡ã解決ãããœãŒã¹ã³ãŒããæ€çŽ¢ããŸãã Petyaã¯è³æãèªãã§ä»ã®äººã®ã¢ãžã¥ãŒã«ãç解ããã®ã«2ã3æ¥è²»ããã3æ¥ç®-æ¢åã®ã³ãŒãã«åºã¥ããŠãœãªã¥ãŒã·ã§ã³ãç«ã¡äžããŸãã ããã€ãã®è»œåŸ®ãªãšã©ãŒããããããã«ä¿®æ£ã§ããŸãã ãã£ãïŒ 3æ¥ç®ã«ãã¹ãŠãæ£åžžã«æ©èœããŸãã
å¿ èŠãªãœãŒã¹ã³ãŒããèŠã€ããæ¹æ³ 圌ãç解ããæ¹æ³ã¯ïŒ ãããŠæãéèŠãªããš-ãªãããããã¹ãŠè¡ãã®ã§ããïŒ ãããã®è³ªåã«å¯Ÿããçããæ¢ããŠãç«ãžããããã
ã³ãŒããæ€çŽ¢ããŠèªã¿åãããšãéèŠãªã®ã¯ãªãã§ããïŒ
D. ThomasãšD. Spinellisã¯ã ããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®äŸã«é¢ããããã°ã©ã ã³ãŒãã®åæããšããæ¬ã§ãããã€ãã®éèŠãªãã€ã³ããå®åŒåããŠããŸãã
ã³ãŒããèªãããšã¯ããã°ã©ããŒã®æ¯æ¥ã®ã«ãŒãã³ã§ãã
åŽããèŠããšãããã°ã©ããŒã®äž»ãªä»äºã¯ãœãŒã¹ãæžãããšã ãšæãããŸãããããã§ã¯ãããŸããã ã»ãšãã©ã®å Žåãã³ãŒãã¯æžã蟌ãŸããã®ã§ã¯ãªããèªã¿åãããå¿ èŠããããŸãã æšæ¥ããªãã®å人ã¯ã¢ãžã¥ãŒã«ãæžããŸããããããŠä»æ¥ãããªãã¯ãããæ¹åããããããªãã®å人ã®äœåã®äºåç 究ãªãã§ã¯äžå¯èœã§ããééããä¿®æ£ããä»äºã«çŽé¢ããŠããŸãã
ã³ãŒãã®èªã¿åãæã«ãšã©ãŒã®90ïŒ ãæé€ã§ããŸãã
90ïŒ ãšããæ°åã§ã¯ãè°è«ã®äœå°ãããããã«æããŸãããäž»ãªã¢ã€ãã¢ã¯æ確ã§ãïŒããã°ã©ã ãèªãã§ããïŒãã®å Žåã¯ã¬ãã¥ãŒããŠããïŒãšãããšã©ãŒãç¹å®ããŠæé€ããããšãå¯èœã§ãïŒãããŠå¿ èŠã§ãïŒã
ç§ãã¡ã¯ãã°ãã°ã³ãŒããæžãããšãæããããŸããããã£ãã«-ãããèªãããšãæããããŸããã
ãŸããæ¢åã®ãœãŒã¹ãèªãããšãªããåžžã«è»èŒªãåçºæããå¿ èŠããããããç¡é§ã§ãã ãŒãããäœããæžãããšãã§ãããšããŠããä»ã®äººã®ãœãŒã¹ã³ãŒããçŽæ¥ããŸãã¯é¡æšããŠèŠãŠåãæ¹ãã¯ããã«å¹ççã§ãã å€éšã³ãŒãã¯ãã§ãã¯ããããã°ãããŠãããã»ãšãã©ã®å Žåããã§ã«åé¡ã®è§£æ±ºã«åœ¹ç«ã€ããã€ãã®ãæ©èœããå«ãŸããŠããŸãã
ã ãããèªè»¢è»ãæžããªãããã«ã³ãŒããèªãã§ãã ããã ã³ãŒããèªãã§ãå€æŽãé«éåããŠãã ããã ããã°ã©ã ã®ãšã©ãŒãå°ãªããªãããã«ã³ãŒããèªãã§ãã ããã
ãã®èšäºã¯äœã«ã€ããŠã§ããïŒ
ãã®èšäºã®äž»ãªç®æšã¯ãã³ãŒãã®æ€çŽ¢ãšèªã¿åãã«å¯Ÿããæ¢åã®ã¢ãããŒããäœç³»åããããšã§ãã ç¹å®ã®ã¢ãããŒãã®ç¥èã«ãããç¹å®ã®ã±ãŒã¹ã§æãåãå ¥ããããã¢ãããŒããé©çšã§ããŸãã ããã«ããã®èšäºã§ã¯ããã®èšäºã§èª¬æãããŠããã¢ãããŒããå¹æçã«é©çšããããŒã«ã®æŠèŠãæäŸããŸãã ç¹å¥ãªããŒã«ããªããŠããœãŒã¹ã³ãŒããæ€çŽ¢ããŠç解ã§ããããšã¯æ³šç®ã«å€ããŸããããã®äœ¿çšã«ããããã»ã¹ãããèŠèŠçã«ãªããã«ãŒãã³ãå°ãªããªããŸãã
æãæ®éçãªæŠå¿µã«ã€ããŠèª¬æããŸããã€ãŸãããããã®æŠå¿µã¯ããã¹ãŠãŸãã¯ã»ãšãã©ãã¹ãŠã®ããã°ã©ãã³ã°èšèªã«é©çšãããŸãã ãœãŒã¹ã®æ€çŽ¢ãšèªã¿åãã容æã«ããããŒã«ãæ®éçã§ããããããã®ã»ãšãã©ã¯Visual Studioãš.NETã«ã®ã¿é¢é£ããŠããŸãã ããã«ãããããããã»ãšãã©ã®ããŒã«ãVSã§ã®ã¿äœ¿çšãããŠãããšããäºå®ã¯ãä»ã®IDEã«ãã®ãããªããŒã«ããªãããšãæå³ãããã®ã§ã¯ãããŸããã ãŸãã説æãããŠãããã¹ãŠã®ããŒã«ãç¡æã§ããããšãäºçŽããŸããäŸå€ã¯ReSharperã®ã¿ã§ãã
ãã®èšäºã®ã³ãŒãäŸã¯ã2015幎6æ30æ¥æç¹ã®ShareXãªããžããªããã®ShareXããã³Greenshot ã¢ããªã±ãŒã·ã§ã³ ïŒäž¡æ¹ãšãGNU GPLã©ã€ã»ã³ã¹ã§é åžãããŠããŸã ïŒããåããããã®ã§ãã ååãç¹ã«ããã¹ã»ã¬ãŽãªãããšãŽã©ãã£ã¹ã©ãã»ã€ãªãã§ã«ããèšäºã®å·çäžã«ã³ã¡ã³ãããŠãããããšã«æè¬ããŸãã
ã³ãŒãæ€çŽ¢
ã³ãŒãæ€çŽ¢ã¯ããã»ã¹ã§ããããã®çµæã¯è§£æ±ºãããåé¡ã®äž»é¡ã«é¢é£ãããœãŒã¹ã³ãŒãã®äžéšã§ãã
ã³ãŒãå€æ€çŽ¢
ã³ãŒãããŒã¹å€ã®ãœãŒã¹ã³ãŒãã®æ€çŽ¢ãéå§ããããšã¯å¯èœã§ãããå¿ èŠã§ãã ããŒã ãšã®äºåçãªã³ãã¥ãã±ãŒã·ã§ã³ãããã¥ã¡ã³ãã®èªã¿åãããã°ãã©ãã«ãŒã«ãããã³ãŒãã®çŽæ¥æ€çŽ¢ãå€§å¹ ã«ç°¡çŽ åãããŸãã ã¢ãŒãã£ãã¡ã¯ãã®æäœã«é¢ãã詳现ã«ã€ããŠã¯ãDãGavrilovã«ããã¯ãŒã¯ã·ã§ãããããŒã äœæ¥ã®å®è·µïŒã¢ãŒãã£ãã¡ã¯ãã®èšè¿°ã®å©ç¹ããåç §ããŠãã ãã ã ããã¥ã¡ã³ããèªãã§ããŒã ãšããåãããããšã«å ããŠããŸã çºèŠãããŠããªããã®ã«ã€ããŠæ¢ã«ç¥ã£ãŠããããšãæãåºããŠãããšäŸ¿å©ã§ãã ããšãã°ãç»é¢ãã©ãŒã ãæ€çŽ¢ããå¿ èŠãããå Žåããããžã§ã¯ãå ã®ç»é¢ãã©ãŒã ã®ååã¯éåžžFormã§çµããããã¹ãŠã®ãã©ãŒã ã¯ãUIãã§çµã¿ç«ãŠãããããšãèŠããŠãã䟡å€ããããŸãã
å®è¡ã®ããã«ã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããã«ãŒããã©ãŒã¹ã§ç»é¢ãã©ãŒã ãæ€çŽ¢ã§ããŸãã ç¹°ãè¿ãåŠçãè¡ããšããããã°ã©ãã¯ããŠã£ã³ããŠããã¿ã³ãã¡ãã¥ãŒé ç®ããŸãã¯ç®çã®æ©èœã䜿çšããŠãããšæããããã®ä»ã®ã€ã³ã¿ãŒãã§ã€ã¹èŠçŽ ãèŠã€ãããŸã§ããã©ãŒã ã®ã©ã³ãã ãªïŒãŸãã¯ããã»ã©ã§ã¯ãªãïŒé åºã§éããŸãã æ€çŽ¢ã¿ã¹ã¯ããŒãããŠããããããã°ã©ããŒãã·ã¹ãã ãåããŠäœ¿çšããå Žåããã¹ãã£ã³ã°ãé©çšãããŸãã ããšãã°ãã¢ããªã±ãŒã·ã§ã³ã䜿çšããããšããªããéããŠãããã¹ãŠã®ç»åãã¯ãªããããŒãã«ãšã¯ã¹ããŒãããé¢æ°ãè¿œå ããå¿ èŠããããŸãã ãããããã¢ããªã±ãŒã·ã§ã³ã調ã¹ãã®ã¯çã«ããªã£ãŠããããã§ããäžåºŠã«1ã€ãã€ã¯ãªããããŒãã«ç»åããšã¯ã¹ããŒãã§ãããã©ããããããã¡ãŒããšã¯ã¹ããŒãã«é¢é£ããèšå®ããããã©ãããªã©ã確èªããŠãã ããã
ããŒã¯ãŒãæ€çŽ¢
ããŒã¯ãŒãã¯ãæ å ±æ€çŽ¢ã®èŠ³ç¹ããéèŠãªæå³çè² è·ãéã¶ææžãŸãã¯ãªã¯ãšã¹ãã®ããã¹ãããã®åèªãŸãã¯ãã¬ãŒãºã§ãã æ€çŽ¢ã«å¿ èŠãªããŒã¯ãŒãã®éžæã¯ããŠãŒã¶ãŒãšã®ã³ãã¥ãã±ãŒã·ã§ã³ããã«ãŒããã©ãŒã¹ã«ããç»é¢ãã©ãŒã ã®è¡šç€ºãããã³ãã³ãŒãå€ãã®æ€çŽ¢ãšããŠäžèšã§èª¬æããä»ã®æ¹æ³ã«ãã£ãŠåœ¢æãããŸãã ããŒã¯ãŒãã¯ãã¿ã¹ã¯ã®èª¬æãç»é¢ã®ãã©ãŒã ããã³ãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ããšã©ãŒãŸãã¯ã¡ãã»ãŒãžã®ããã¹ããSQLã¯ãšãªãã€ãŸãã解決ãããã¿ã¹ã¯ã«é¢é£ããã¢ãŒãã£ãã¡ã¯ãããååŸã§ããŸãã
ããŒã¯ãŒãã«ããæ€çŽ¢ãå¯èœãªéãå¹æçã§ããããã«ã¯ããŸããªããŒã¯ãŒããéžæããå¿ èŠããããŸãã ããšãã°ãå€ãã®ç°ãªãããã¥ã¡ã³ãïŒããã¥ã¡ã³ãïŒããããããžã§ã¯ãã§äœæ¥ããŠããå Žåããããã¥ã¡ã³ãããšããåèªãæ€çŽ¢ãããšãå€ãã®äžèŠãªçµæãåŸãããŸãã ãã ãããŸããªããŒã¯ãŒããèŠã€ããããšãã§ããªãå ŽåããããŸãã ãã®å Žåãæåã«å€ãã®æœåšçã«æçšãªæ å ±ãèŠã€ããŠãããæ€çŽ¢ãçµã蟌ãå¿ èŠããããŸãã ããšãã°ãDocumentãžã®ãã¹ãŠã®æ¢åã®åç §ãèŠã€ããŠãçµæãããã¹ããé€å€ããèŠã€ãã£ããã¡ã€ã«ã§è¿œå ã®ããŒã¯ãŒããæ¢ããŸããäžè¬ã«ãããã ãã§ãªããå°ãªããšãäœãïŒå°ãå€ããå°ãªããïŒãèŠã€ããããšããå¿ èŠããããŸããå¿ èŠãªãã®ã
ã»ãšãã©ã®å ŽåãIDEã«çµã¿èŸŒãŸããŠããæ€çŽ¢ã¯ããŒã¯ãŒãã§æ€çŽ¢ããã®ã«ååã§ãïŒéåžžã¯Ctrl + Fã§åŒã³åºãããŸãïŒã ãã¡ã€ã«ãããŒãžã£ãŒã¯ããœãããŠã§ã¢ãœãªã¥ãŒã·ã§ã³ã«å«ãŸããŠããªããã©ã«ããŒãæ€çŽ¢ããå Žåãã OpenGrokãDocFetcherãªã©ã®æ€çŽ¢ãšã³ãžã³ãæ€çŽ¢ããå Žåã«åœ¹ç«ã¡ ãŸã ïŒä»¥äžã§èª¬æããŸãïŒã ãããã£ãŠãReSharperã«ã¯äŸ¿å©ãªãã¿ãŒã³ã«ããæ€çŽ¢æ©èœãå«ãŸããŠãããããšãã°ããŒãåæãšããŠå®£èšããããã¹ãŠã®ã¯ã©ã¹ããããã£ïŒpublic TEnumïŒEnum {get; set;}ïŒãèŠã€ããããšãã§ããŸãã ãã¡ãããæ£èŠè¡šçŸã®åŒ·åãªã¡ã«ããºã ãå¿ããªãã§ãã ããã ã¯ããå¿ èŠã«ãªãããšã¯ãã£ãã«ãããŸããããæã«ã¯å€§ãã«åœ¹ç«ã¡ãŸãã
ãœãŒã¹ã³ãŒãã§åäœããæ€çŽ¢ãšã³ãžã³ã«ã€ããŠããå°ã話ããŸãããã æ€çŽ¢ãšã³ãžã³ã®äž»ãªå©ç¹ã¯ãæè»ãªæ€çŽ¢ãå¯èœãªããšã§ãã ããšãã°ãã¯ãªããããŒããšç»åã«èšåãããã¹ãŠã®ã¯ã©ã¹ãèŠã€ããå¿ èŠããããŸãã IDEã«çµã¿èŸŒãŸããåŸæ¥ã®ããŒã«ã䜿çšãããšãã¯ãªããããŒããã¡ã€ã«ãŸãã¯ã€ã¡ãŒãžãã¡ã€ã«ãèŠã€ããããšãã§ããŸãã ããã§ãæªåé«ãæ£èŠè¡šçŸã¡ã«ããºã ãæ¬åŒ§ã®å€ã«æ®ããŸããããã¯åœ¹ç«ã¡ãŸãããæ€çŽ¢ã³ã³ã¹ãã©ã¯ãã¯é¢åã§ãã çµã¿èŸŒã¿ã®æ€çŽ¢ããŒã«ã§ã¯å¯ŸåŠã§ããªãããè€éãªäŸïŒå±æ§Aã§ããŒã¯ãããŠãããå±æ§Bã§ããŒã¯ãããŠããªãã¯ã©ã¹ããããã£ãèŠã€ããå¿ èŠæ§ãæ€çŽ¢ãšã³ãžã³ã¯æè»æ§ã«å ããŠãæ€çŽ¢é床ãåäžãããŸãã IDEããããžã§ã¯ãã®ãã¹ãŠã®ãã¡ã€ã«ãåŠçããã®ã«æ°åãå Žåã«ãã£ãŠã¯12ç§ä»¥äžå¿ èŠãªå Žåãæ€çŽ¢ãšã³ãžã³ã«ã¯ã€ã³ããã¯ã¹ãããã1ç§ã§åãããšãã§ããŸãã
ãœãŒã¹ã³ãŒãã«ã¯ããŸããŸãªæ€çŽ¢ãšã³ãžã³ããããŸããStackOverflowã®èª¬æãèªãããWebãµã€ãbeyondgrep.comã§éžæå 容ã確èªããŠãã ããã ç§ã®ä»äºã§ã¯OpenGrokã䜿çšããŠããŸã ãããã¯ç¡æã§ãããCïŒãCãPHPãSQLãªã©ã®ããŸããŸãªèšèªã§åäœããŸãã ãã®ãšã³ãžã³ã¯ããœãŒã¹ã€ã³ããã¯ã¹ã¢ãžã¥ãŒã«ãšãã³ãŒããæ€çŽ¢ããŠããã²ãŒãããããã®Webã¢ããªã±ãŒã·ã§ã³ã®2ã€ã®ã¢ãžã¥ãŒã«ã§æ§æãããŠããŸãã æåã®ã¢ãžã¥ãŒã«ã¯ããã¡ã€ã«ã·ã¹ãã å ã®ãããžã§ã¯ããã©ã«ããŒã«ã€ã³ããã¯ã¹ãä»ããŸãã Webã¢ããªã±ãŒã·ã§ã³ã¯Apacheã§å®è¡ãããããŸããŸãªæ€çŽ¢ã¯ãšãªãå ¥åããŠçµæã衚瀺ã§ããŸãã OpenGrokã¯Javaã§æžãããŠããããããžã§ã¯ãã®å ¬åŒWebãµã€ãããããŠã³ããŒãã§ããŸããé¢é£èšäºã§ã¯ã Windowsããã³Linux㧠ãšã³ãžã³ãã€ã³ã¹ããŒã«ããæ¹æ³ã«ã€ããŠèªãããšãã§ããŸãã
OpenGrokã¯ããŸããŸãªã¿ã€ãã®æ€çŽ¢ããµããŒãããŸããããã¥ã¡ã³ãå šäœã®ããã¹ãã§ããŸãã¯å®çŸ©ã®ã¿ãã€ãŸãã¯ã©ã¹ãšé¢æ°ã®ååã§ã ããã«ããã©ã«ããŒã®ãã£ã«ã¿ãªã³ã°ãšãæ¢ããŠãããã¡ã€ã«ã®ååãèšå®ããããã³ãŒããèšè¿°ããèšèªãéžæãããã§ããŸãããã®ãšã³ãžã³ã¯ããã¡ã€ã«ããšã«ã°ã«ãŒãåãããèŠèŠçãªåœ¢åŒã§çµæã衚瀺ããã¯ã³ã¯ãªãã¯ã§ç®çã®è¡ã«ç§»åããããšãã§ããŸããã¡ã€ã«ãããã¯ã©ã€ãä»ããŸãã¯ãçã®ã圢åŒã§è¡šç€ºã§ããŸãã
ShareXã«ããOpenGrokæ€çŽ¢ã¯ãšãªãšæ€çŽ¢çµæ
OpenGrokã«ã¯ããã€ãã®å¶éããããŸãã1ã€ç®ã¯Visual Studioãšã®çµ±åããªãããšã2ã€ç®ã¯ããªã«æåã®äœ¿çšæ¹æ³ãããããªãããšã§ãïŒå°ãªããšããèšå®ã䜿çšããŠãããå®çŸã§ããŸããã§ããïŒã é »ç¹ã«ãã·ã¢èªã®ããã¹ããæ€çŽ¢ããå¿ èŠãããå Žåã¯ã DocFetcherã䜿çšã§ããŸãããã®ããŒã«ã¯ããœãŒã¹ãæ€çŽ¢ããŠçŽæ¥ã·ã£ãŒãã«ããããšã¯ã§ããŸããããããã¹ããã¡ã€ã«ã®ã€ã³ããã¯ã¹ãäœæã§ãããã·ã¢èªã«å®å šã«å¯Ÿå¿ããŸãã
以äžã®è¡šã¯ãæ€çŽ¢ãšã³ãžã³OpenGrokãšDocFetcherã®æ©èœãæ¯èŒããŠããŸãã
æ€çŽ¢ãšã³ãžã³ã®æ¯èŒ
ãã®è¡šã䜿çšããŠãå¿
èŠãªæ€çŽ¢ãã©ã¡ãŒã¿ãŒãèªåã§éžæããæé©ãªããŒã«ãéžæã§ããŸãã
ãã©ã¡ãŒã¿ | Opengrok | Docfetcher |
---|---|---|
æ€çŽ¢ã®æè»æ§ïŒæ€çŽ¢èšèªã®ãµããŒãã«ããïŒ | ã¯ã | ã¯ã |
æ€çŽ¢é床ïŒã€ã³ããã¯ã¹äœæã«ããïŒ | ã¯ã | ã¯ã |
ç¹å¥ãªã³ãŒãæ€çŽ¢ããŒã« | ã¯ã | ãã |
ããªã«æåã䜿çšãã | ãã | ã¯ã |
Visual Studioã®çµ±å | ãã | ãã |
ãã«ããã©ãããã©ãŒã | ã¯ã | ã¯ã |
å èš± | CDDL | Eclipse Public License |
åé¡åã«ããæ€çŽ¢
åé¡åã¯ãååä»ããªããžã§ã¯ãã®äœç³»çãªãªã¹ãã§ãã ç§ã®æèŠã§ã¯ãããã°ã©ãã«æã人æ°ã®ããåé¡åã¯ããœãããŠã§ã¢ãœãªã¥ãŒã·ã§ã³ã®ãã¹ãŠã®ã¯ã©ã¹ã®ãªã¹ãã§ãã ä»ã®åé¡åã®äŸãšããŠã¯ãã¯ã©ã¹ã§ãœãŒããããã¯ã©ã¹ã®ã¡ã³ããŒã®ãªã¹ãããã©ã«ããŒã§ãœãŒãããããã¡ã€ã«ã®ãªã¹ããªã©ããããŸãã
ShareXã¢ããªã±ãŒã·ã§ã³ã¯ã©ã¹
äžæ¹ã§ã¯ãåé¡åã¯ããªãŒãªã¹ããæäœããããã®ããŒã«ãšããŠäœ¿çšã§ããŸãã ãœãããŠã§ã¢ãœãªã¥ãŒã·ã§ã³ã®ããŒã¹ããŒã ã¹ããŒã¹ããæ¡åŒµãããç®çã®ã¢ãžã¥ãŒã«ã®ããŒã ã¹ããŒã¹ããæ¡åŒµãããæçµçã«ç®çã®ã¯ã©ã¹ã«å°éãããŸã§ç¶ããŸãã äžæ¹ããšã³ãããŒãšã³ãæ€çŽ¢ã¯åé¡åå ã§å®è¡ã§ããŸãã ããšãã°ã* Document *ãšå ¥åãããšãåé¡åã¯Documentãæ€åºãããååã®ãã¹ãŠã®ã¯ã©ã¹ã衚瀺ããŸãã
ReSharperã䜿çšããŠããå Žåã¯ãGo to Everythingé¢æ°ã«ã€ããŠããããç¥ã£ãŠããã§ããããããã«ããããœãããŠã§ã¢ãœãªã¥ãŒã·ã§ã³å šäœã®ä»»æã®ã¯ã©ã¹ãã¡ãœãããããããã£ããŸãã¯ãã¡ã€ã«ã«ç§»åã§ããŸãã Visual Studioã«ã¯ããœãªã¥ãŒã·ã§ã³ãšã¯ã¹ãããŒã©ãŒïŒã¢ã»ã³ããªããã©ã«ããŒããã¡ã€ã«ãã¯ã©ã¹ãããã³ãã®ã¡ã³ããŒãåé¡ïŒãã¯ã©ã¹ãã¥ãŒïŒåå空éãã¯ã©ã¹ãããã³ãã®ã¡ã³ããŒãåé¡ïŒãããã³ãªããžã§ã¯ããã©ãŠã¶ãŒïŒã¢ã»ã³ããªãåå空éãã¯ã©ã¹ãåé¡ïŒããã³ãã®ã¡ã³ããŒïŒã ãœãªã¥ãŒã·ã§ã³ãšã¯ã¹ãããŒã©ãŒãšã¯ã©ã¹ãã¥ãŒã¯ããœãªã¥ãŒã·ã§ã³å ã®ã¯ã©ã¹ã®ãªã¹ããããã³ãœãªã¥ãŒã·ã§ã³ãšäœ¿çšãããŠãããµãŒãããŒãã£ã¢ã»ã³ããªã®äž¡æ¹ã®ãªããžã§ã¯ããã©ãŠã¶ãŒãæäŸããŸãã OpenGrokã§ã¯ãã¯ã€ã«ãã«ãŒãïŒ*ããã¥ã¡ã³ã*ïŒã®äœ¿çšãå«ããå®çŸ©ïŒå®çŸ©ïŒã§æ€çŽ¢ã§ããŸãã å¥ã®åé¡åã¯ããã©ã«ããŒã«é 眮ãããã¢ãŒãã£ãã¡ã¯ãã衚瀺ããéåžžã®ãã¡ã€ã«ãããŒãžã£ãŒã§ãã
åé¡åã¯ãã€äœ¿çšããå¿ èŠããããŸããïŒ åé¡åãæ£åžžã«äœ¿çšããã«ã¯ãããã°ã©ããŒããœãããŠã§ã¢è£œåã«ã€ããŠååãªç¥èãæã£ãŠããå¿ èŠããããŸãã ç¹ã«ãåœåèŠåïŒããšãã°ã* Formã¯ãªã³ã¹ã¯ãªãŒã³ãã©ãŒã ã§ãããDocumentNameListFormã¯DocumentNameã¿ã€ãã®ããã¥ã¡ã³ãã®ãªã¹ããã©ãŒã ã§ãïŒãããã³ã¯ã©ã¹ããã©ã«ããŒããã³åå空éã«ç·šæãããååïŒãã£ã¯ã·ã§ããªãŒã«ãã£ã¬ã¯ããªããããŸãïŒãããã³ããã¥ã¡ã³ãå -ããã¥ã¡ã³ãïŒã åé¡åã«ããæ€çŽ¢ãé©çšããå¥ã®å¯èœæ§ã¯ãã¯ã©ã¹ãŸãã¯ãã®ã¡ã³ããŒã®æ£ç¢ºãªååãããã£ãŠããç¶æ³ã§ãã
ãšã©ãŒæ€çŽ¢
å®æçã«ãäœããã®ãšã©ãŒãçºçããã³ãŒãè¡ãèŠã€ããã¿ã¹ã¯ãçºçããŸãã ãŸãã¯ãæ¢ç¥ã®ãšã©ãŒçªå·ã§ç®çã®è¡ãèŠã€ããããšãã§ããŸãã ãã®å Žåããšã©ãŒçªå·ã¯ãæ€çŽ¢ãå®è¡ãããããŒã¯ãŒãã§ãïŒããŒã¯ãŒãã«ããæ€çŽ¢ã«ã€ããŠã¯äžèšã§èª¬æããŸããïŒã å¥ã®ç¶æ³ã§ã¯ããšã©ãŒã¹ã¿ãã¯ã®ãã¬ãŒã¹ãããã£ãŠããå ŽåããããŸãã ReSharperã«ã¯Stack TracesãšåŒã°ãã䟿å©ãªããŒã«ããããŸããããã«ãããã¹ã¿ãã¯ã衚瀺ãããšã©ãŒãçºçããåã«åŒã³åºãããã¡ãœãããããã²ãŒãã§ããŸãã ã¹ã¿ãã¯ãã¬ãŒã¹ã䜿çšããã«ã¯ããšã©ãŒã¹ã¿ãã¯ãã¯ãªããããŒãã«ã³ããŒããVisual Studioã§Shift + Ctrl + EãæŒãå¿ èŠããããŸãã
Stack Tracesã§ShareXã¹ã¿ãã¯ã衚瀺ããã³ããã²ãŒããã
ãšã©ãŒçªå·ãŸãã¯ã¹ã¿ãã¯ãã¬ãŒã¹ã«é¢ããæ å ±ããªãå Žåã¯ããããžã§ã¯ããéå§ãã誀ã£ãŠå²ã蟌ã¿ãæå¹ã«ããããšãã§ããŸãã Visual Studioã¯ã Exception Breakerã®äŸ¿å©ãªã¢ããªã³ãäœæããŸãããããã«ãããã¯ã³ã¯ãªãã¯ã§èª€ã£ãŠå²ã蟌ã¿ããªã³ãŸãã¯ãªãã«ã§ããŸãã
ãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ã«ãã
ãã¿ã³ãæŒããããšãããŸãã¯å¥ã®ãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ãåŒã³åºããããšãã«ã©ã®ã¡ãœãããåŒã³åºããããã調ã¹ãããšãå¿ èŠãªå ŽåããããŸãã ãã®å ŽåãåŒã³åºãããã¡ãœãããååšããã¯ã©ã¹ãæåã«èŠã€ããŠïŒããšãã°ãããŒã¯ãŒããŸãã¯åé¡åã§æ€çŽ¢ããŠïŒã次ã«ãã®ã¯ã©ã¹ã®ãã¹ãŠã®ã¡ã³ããŒã«ãã¬ãŒã¯ãã€ã³ããèšå®ããŠãã¢ããªã±ãŒã·ã§ã³ãèµ·åã§ããŸãã Webã¢ããªã±ãŒã·ã§ã³ã§ã¯ãå Žåã«ãã£ãŠã¯Fiddlerã圹ç«ã€ããšããããŸããç¹ã«ãåŒã³åºãããWCFé¢æ°ã®ååãšããã«æž¡ããããã©ã¡ãŒã¿ãŒã®å€ã確èªã§ããŸãã
ãŸãšã
ã³ãŒãã®æ€çŽ¢ãéå§ããåã«ãããŒã ãšéä¿¡ããããã¥ã¡ã³ããèªã¿ãç»é¢ãã©ãŒã ã䞊ã¹æ¿ããã®ã«å°ãæéããããå¿ èŠããããŸãã ããã¯ãããŒã¯ãŒããåéããã¯ã©ã¹ãšã¡ãœããã®ååãèŠã€ããããã«å¿ èŠã§ããããããªããšããã以äžã®æ€çŽ¢ãå°é£ã«ãªããŸãã æãç°¡åãªãã®ããå§ãã䟡å€ããããŸãããå¿ èŠãªãã®ããå°ãå€ããå°ãå°ãªããã®ãèŠã€ããããšãã§ããŸãã ããŒã¯ãŒããŸãã¯åé¡åã䜿çšããŠãœãŒã¹ãæ€çŽ¢ããããšãã§ããŸãã ãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ã«ãã£ãŠåŒã³åºããããšã©ãŒãšæ©èœãæ€çŽ¢ããããã®ç¹å¥ãªææ³ããããŸãã
次ã®è¡šã¯ãäžèšã®ã³ãŒãæ€çŽ¢æ¹æ³ã瀺ããŠããŸãã
æ¹æ³ | 説æ | ããŒã« |
---|---|---|
ã³ãŒãå€æ€çŽ¢ | äºåæºå
çŽæ¥ã³ãŒãæ€çŽ¢ã ç¹ã«æ€çŽ¢ã¿ã¹ã¯ããŒãããŠããå Žå ãŸãã¯ããã°ã©ããŒãåã㊠ã·ã¹ãã ä»ã |
|
ããŒã¯ãŒãæ€çŽ¢ | ããããçºçããã³ãŒããæ€çŽ¢ãã
äžããããããŒã¯ãŒã |
|
åé¡åã«ããæ€çŽ¢ | ã¯ã©ã¹ãŸãã¯ä»ã®ãªããžã§ã¯ããæ€çŽ¢ãã
ã«ããŽãªãŒã§äžŠã¹æ¿ã ïŒäŸïŒåå空éïŒã ç¹ã«ããã°ã©ããŒããããšã ã¢ããªã±ãŒã·ã§ã³ã«ç²ŸéããŠããããæ¢ç¥ã® ã¯ã©ã¹ãŸãã¯ãã®ã¡ã³ããŒã®æ£ç¢ºãªåå |
|
ãšã©ãŒæ€çŽ¢ | 次ã®ã³ãŒãè¡ãæ€çŽ¢ããŸã
ãšã©ãŒãçºçãã |
|
ãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ã§æ€çŽ¢ | åŒã³åºãããŠããã¡ãœãããæ€çŽ¢ããŸã
ãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ã«ãã |
|
ã³ãŒãã®ç解
ã³ãŒãæ€çŽ¢ã¯ããã®ç解ãšå¯æ¥ã«é¢é£ããŠããŸãã æ€çŽ¢äžã«åŸãããçµæã®ä¿®æ£æ¹æ³ãšäœ¿çšæ¹æ³ãç解ããããã«ãåé¡ã解決ããã®ã«æ¬åœã«åœ¹ç«ã€çºèŠããããã¹ãŠã®ãœãŒã¹ãããã¯ããéžæããããã«ã¯ãç解ãå¿ èŠã§ãã
ã³ãŒããèªãŸãã«ç解ãã
ã³ãŒãããŒã¹ã®å€éšã§ã¯ãã³ãŒãã®æ€çŽ¢ãéå§ãããã ãã§ãªãããããç解ããããã»ã¹ãéå§ãããŸãã ã¢ããªã±ãŒã·ã§ã³ã®å®è¡ãããã¥ã¡ã³ãã®èªã¿åãããã°ãã©ãã«ãŒãã¢ããªã±ãŒã·ã§ã³ãã°ãŸãã¯ããŒãžã§ã³ç®¡çã·ã¹ãã ãããŒã ããã³ïŒãŸãã¯ïŒãŠãŒã¶ãŒãšã®éä¿¡ã«ãããã¢ããªã±ãŒã·ã§ã³å ã§äœãèµ·ãã£ãŠããããææ¡ã§ããŸãã ãœãŒã¹ãæ€çŽ¢ãããšããšåæ§ã«ãã³ãŒããçŽæ¥èªã¿åãåã«ãåæ察象ã®é åã«ã€ããŠãã§ã«ããã£ãŠããããšãèŠããŠããããšãéèŠã§ãã
ãã©ãã¯ããã¯ã¹ãªãŒãã£ã³ã°
ã³ãŒããããã©ãã¯ããã¯ã¹ããšããŠèªãããšã¯ãå€éšã®å åã«ãã£ãŠãé¢æ°ãŸãã¯ã¯ã©ã¹å ã§äœãèµ·ãã£ãŠãããã確ç«ããããšããŠããããšã瀺åããŠããŸãã ãªããžã§ã¯ãã®ååãåãå ¥ãããããã©ã¡ãŒã¿ãŒãããã³æ»ãå€ãèŠãããšã§ããªããžã§ã¯ãã®ç®çãæšæž¬ã§ããŸãã äŸãã°
public ResultOrError SetToClipboard(Image image)
ã»ãšãã©ã®å Žåãç»åã€ã¡ãŒãžãã¯ãªããããŒãã«é 眮ããè¿ãããResultOrErrorã§çºçãããšã©ãŒã«é¢ããæ å ±ãé 眮ããŸãã
ããã©ãã¯ããã¯ã¹ããèªãã«ã¯ãåœåèŠåãã€ãŸãããã¬ãã£ãã¯ã¹ããã¹ããã£ãã¯ã¹ãããã³ãããžã§ã¯ãã§åãå ¥ããããååã®ä»ã®éšåã«ã€ããŠç¥ãããšãéèŠã§ãã ããã©ãã¯ããã¯ã¹ããšã¯ãé¢æ°å ã®èª¬æãã³ã¡ã³ããèªãããšãæããŸãã
é¢æ°ã®ç®çã«é¢ããä»®å®ãæ£ããããšã確èªããããã«ããã®äœ¿çšæ³ã調ã¹ãããšãã§ããŸãã ãŸããé¢æ°åŒã³åºãã«ã€ãªãããŠãŒã¶ãŒã¢ã¯ã·ã§ã³ïŒããšãã°ããŠãŒã¶ãŒã[ã¯ãªããããŒãã«ã³ããŒ]ãã¿ã³ãã¯ãªãã¯ããïŒãèŠã€ãããã®ç¥èã«åºã¥ããŠãé¢æ°ã®çµæãšããŠãŠãŒã¶ãŒãåãåããã®ãç解ããŸãïŒãã®å Žåãæããã«ãã¯ãªããããŒãïŒã
ReSharperã«ã¯ãé¢æ°ã®åŒã³åºãå ã®å ŽæãèŠã€ããããšãã§ãã匷åãªInspect ThisããŒã«ãšFind UsagesããŒã«ããããŸãã æ€æ»ããã¯ãé¢æ°ãåŒã³åºãããå Žæãªã©ãåŒã³åºãããã³ãŒããã©ã°ã¡ã³ããç°¡åãã€æ確ã«ããã«æ€çŽ¢ã§ããããããã䟿å©ãªããã§ãã Visual Studioèªäœã§ã¯ã[éå±€ã®åŒã³åºã]ããŒã«ãããã«äœ¿çšã§ããŸãããã®ããŒã«ã«ã¯ã[Inspect This]ãšåæ§ã®æ©èœããããŸãã
é¢æ°ã䜿çšãããå ŽæïŒShareX.UploadManager.UploadFileïŒ66-80ïŒ
- Inspect ThisïŒå·ŠïŒ;
- çšéãæ€çŽ¢ïŒäžå€®ïŒ;
- åŒã³åºãéå±€ïŒå³ïŒã
ãã¯ã€ãããã¯ã¹ãèªã
ããã©ãã¯ããã¯ã¹ãå ã§ã¡ãœããã³ãŒãããéãããããå ŽåïŒå¢çããã³é¢æ°åšèŸºã®ãœãŒã¹ã調æ»ããå ŽåïŒãããã¯ã€ãããã¯ã¹ãã§ã¯èª¿æ»äžã®ã¡ãœããå ã®ã³ãŒãã調æ»ããããšã«ãªããŸãã
ããã¯ã€ãããã¯ã¹ãã§ã¯ããœãŒã¹ã³ãŒãã®èªã¿åãé åºãéèŠã§ãã äžæ¹ã§ã¯ãã³ãŒããç解ããããã«ãã³ãŒãå šäœãèªãå¿ èŠã¯ãããŸããããããã£ãŠãéèŠæ§ã®äœãè¡ãã¹ãããããŠãã³ãŒãã®æãéèŠãªéšåããèªã¿å§ããå¿ èŠããããŸãã äžæ¹ãç解ã®é床ã¯èªã¿ã®é åºã«äŸåããŸãã å·Šããå³ãäžããäžãžèªãããšã¯ããœãŒã¹ã«é£ã³èŸŒãæè¯ã®æ¹æ³ã§ã¯ãããŸããã
ããã¯ã€ãããã¯ã¹ããèªã¿åãæ¹æ³ã®1ã€ã¯ãã詳现ããèªã¿åãããšã§ããæåã«ç¬¬1ã¬ãã«ã®ã³ãŒããèªã¿åãã次ã«ã¬ãã«ã2çªç®ã«é²ã¿ãŸãã
ãã£ãŒããªãŒãã£ã³ã°ïŒShareX.UploadManager.UploadFileïŒ43-64ïŒ
Visual Studioã®å Žåã CïŒã¢ãŠãã©ã€ã³ã¢ããªã³ããããifãforãããã³ãã®ä»ã®å¶åŸ¡æ§é å ã®ããã¹ããæããããã ãå±éãããã§ããŸãïŒVisual Studioã¯ãåå空éãã¯ã©ã¹ãé åãã¡ãœãããæããããã§å±éã§ããŸãããifãforãªã©ã¯ã§ããŸããïŒå»ºèšïŒã
ããã¯ã€ãããã¯ã¹ããšããŠã³ãŒããèªã¿åããã1ã€ã®æ¹æ³ã¯ããããŒãã¬ãŒã¹ããããèªã¿åãããšã§ãã ååãšããŠããããã¯é¢æ°ãçµæãè¿ãããèšç®ããããäœããã®æ¹æ³ã§å ¥åãã©ã¡ãŒã¿ãŒã䜿çšãããããã¡ã€ã«ãç»é¢ããŸãã¯ä»ã®ããã€ã¹ã«åºåãããããå Žæã§ãã ç°ãªãæ©èœã®éèŠãªå Žæã¯ç°ãªãå ŽåããããŸãã æåã«ããããèŠã€ããŠèªãããšãã§ããããšãéèŠã§ãã
Visual Studioã«ã¯ãéžæãããããŒã¯ãŒãã®åºçŸç®æãèŠã€ãã£ããã¹ãŠã®å Žæããšãã£ã¿ãŒããã³ã¹ã¯ããŒã«ããŒã§åŒ·èª¿è¡šç€ºããRockMarginã¢ããªã³ããããŸãã ããšãã°ãtaskSettingsãããã«ã¯ãªãã¯ãããšãRockMarginã¯ãã¡ã€ã«å ã§taskSettingsãèŠã€ãã£ããã¹ãŠã®å Žæã匷調衚瀺ããŸãã
ShareX \ UploadManager.csã®RockMarginããã¯ã©ã€ã
ã¢ããªã±ãŒã·ã§ã³ã«ã¯ãå€ãã®å Žåãé¡äŒŒãããã³ãã¬ãŒããå€æ°ãããŸãã äžè¬çã«äœ¿çšããããã³ãã¬ãŒãïŒã·ã³ã°ã«ãã³ãªã©ïŒããŸãã¯ãããžã§ã¯ãåºæã®ãã³ãã¬ãŒãïŒUIæ§ç¯ã®äžéšã®æ©èœãªã©ïŒã®ããããã§ãã 2ã€ãŸãã¯3ã€ã®ããŒã¯ãŒãã«ãã£ãŠãã³ãã¬ãŒãã®æ©èœãç解ã§ããããããæåã解æãããããšãªããå®å šã«ããã³ãã¬ãŒããèªãæ¹æ³ãåŠã¶å¿ èŠããããŸãã ããšãã°ãäžã®å³-ã·ã³ã°ã«ãã³ã¯ã©ã¹ãèµ€ã§åŒ·èª¿è¡šç€ºãããŠãã2è¡ã®ã³ãŒãããæšæž¬ã§ããŸãã
ã¯ã©ã¹ã·ã³ã°ã«ãã³ïŒGreenshot.Drawing.Fields.Binding.DecimalFloatConverterïŒ29-52ïŒ
ãœãŒã¹ã³ãŒããèªããšãã«åŸãã¹ãå¥ã®ã·ãŒã±ã³ã¹ã¯ãåçŽãªãã®ããè€éãªãã®ãŸã§ãèªãããšã§ãã ãŸããäœãæ確ã§ããããç解ããŠãããããè€éãªèšèšã«é²ã¿ãŸãã
ããã¯ã€ãããã¯ã¹ãã®ã»ã¯ã·ã§ã³ã®çµããã«ãã³ãŒããã¬ãã¥ãŒãããšãã«èªãããšã«ã€ããŠãããã€ãã®èšèãè¿°ã¹ãããšæããŸãã çŽæ¥èªãåã«ïŒç¹ã«ããªã¥ãŒã ãªããžã§ã³ã確èªããŠããå ŽåïŒãå€æŽããããã¹ãŠã®ãã¡ã€ã«ã®ååã確èªããéèŠãªå€æŽãçºçãããã¡ã€ã«ãç解ããå¿ èŠããããŸãã èªã¿åãã¯ãéèŠãªå€æŽãå«ããã¡ã€ã«ããéå§ããå¿ èŠããããŸãããã®ãã¡ã€ã«ãããäžè¬çãªæ¬è³ªãææ¡ããä»ã®ãã¹ãŠã®æ¹åç¹ãããããç解ããŸãã
ã³ãŒãæ¹å
ãœãŒã¹ã³ãŒããç解ããã«ã¯ããããèªãã ãã§ãªããæ¹åããããšãã§ããŸãã ã³ãŒãã®èªèãæ¹åããæãç°¡åãªæ¹æ³ã¯ãæ£ããã€ã³ãã³ãããããšã§ãã èªã¿ããããæ¹åããå¥ã®æ¹æ³ã¯ããªãã¡ã¯ã¿ãªã³ã°ã§ãã æãåçŽãªé·ãé¢æ°ã®ååå€æŽãšããã€ãã®çãé¢æ°ãžã®åå²ã«ãããããã°ã©ã ã®ããã¹ããããç解ããããããããšãã§ããŸãã
è€éãªè«çæ§é ãç解ããããã«ããã¢ãŒã¬ã³ã®æ³åãé©çšã§ããŸãã
!(a && b) = (!a) || (!b) !(a || b) = (!a) && (!b)
ã³ãŒããæ¹åããããã®ããŒã«ãšããŠãReSharperããå§ãããŸããReSharperã¯ããŸããŸãªè€éãã®æ¹åã«å¯Ÿå¿ããŸãã
ãããã°ã¢ãŒã
ãããã°ã¢ãŒãã§ã¯ããœãŒã¹ã³ãŒãã®èªã¿åãäžã«è¡ãããä»®å®ã確èªã§ããŸãã ãããã°ã¢ãŒãã§ã®èªã¿åãã«ã¯ããã¬ãŒã¯ãã€ã³ããªã©ã®ããŒã«ã®äœ¿çšãå«ãŸããŸãïŒããšãã°ãç¹å®ã®å€æ°å€ã§ã®ã¿ããªã¬ãŒããããæ¡ä»¶ã«ããããã¬ãŒã¯ãã€ã³ããå«ãïŒãã¹ã¿ãã¯ãã¬ãŒã¹ã®è¡šç€ºãããã°ã©ã ã®ã¹ãããããšã®å®è¡ãå€æ°ã®å€ã®è¡šç€ºãšå€æŽã
å šäœå
èªããšãã¯ãå解ãããã¢ãžã¥ãŒã«ã§äœãèµ·ãã£ãŠãããã«ã€ããŠã®äžè¬çãªèãæ¹ãç¶æãããããºã«ãã®ããŸããŸãªå Žæããã°ãã移åã§ããããšãéèŠã§ãã
å šäœåã念é ã«çœ®ãããã«ããããžã§ã¯ãã«ååšããå³ãšæ°ããå³ã®äž¡æ¹ã䜿çšã§ããŸãã ç¹ã«SQLã¯ãšãªã®å Žåãäžéšã®ãã£ãŒãã¯èªåçã«äœæã§ããŸãã ããšãã°ãPL / SQL Developerã«ã¯ãã¯ãšãªã«é¢ä¿ããããŒãã«ãšãã®é¢ä¿ã瀺ãã¯ãšãªãã«ãããããŸãã ããšãã°ãVisual Studioã§ã¯ãã¯ã©ã¹å³ã®è¡šç€ºããŒã«ã䜿çšããŠã¯ã©ã¹å³ãèªåçã«äœæã§ããŸãã ãã ããå€ãã®å Žåãææãã®å³ã§ãååã§ãã
ReSharperãInspect ThisããŸãã¯Visual Studio Viewã«çµã¿èŸŒãŸããŠããCall HierarchyããŒã«ã䜿çšããŠãåŒã³åºãããã¡ãœãããèªããšäŸ¿å©ã§ãã ããã©ãã¯ããã¯ã¹ãã®ã»ã¯ã·ã§ã³ã§ã¯ããããã®ããŒã«ã¯æ¢ã«æ€èšãããŠããŸãããé¢æ°ãåŒã³åºãããå Žæã調æ»ãããŸããã ããã§ã¯ãé¢æ°å ã§åŒã³åºãããã¡ãœããã®è¡šç€ºã«ã€ããŠèª¬æããŠããŸãã ãããæ€æ»ããã³ãŒã«éå±€ã衚瀺ãããšãã³ãŒã«ããªãŒå šäœã衚瀺ãããå®å šãªç»åã衚瀺ããããã°ãã移åã§ããŸãã
ã³ãŒãã®ä»»æã®ãããã¯ããã°ãããžã£ã³ãããã«ã¯ãã¿ããåºå®ãïŒäœæ¥äžã«éãå¿ èŠããã£ãä»ã®20ãã100ãšãå¯æ¥ã«äœæ¥ãã5ãã10ã®ã¯ã©ã¹ãåºå¥ããããïŒããšãã£ã¿ãŒãããã¯ããŒã¯ããããæåã§æžã蟌ã¿ãŸããã¯ã©ã¹ãšãã®ã¡ã³ããŒã®ååãæžããŸãã
ãã¡ã€ã«å ã®ã¯ã€ãã¯ãã©ã³ãžã·ã§ã³ã«ã¯ãReSharper-ãã¡ã€ã«æ§é ïŒçŸåšã®ã¯ã©ã¹ã®ã¡ã³ããŒã衚瀺ïŒãVisual Studio-ã¡ã³ããŒïŒãã¡ã€ã«æ§é ã«é¡äŒŒïŒãŸãã¯RockMargin ïŒçž®å°ããããœãŒã¹ã³ãŒããå¹ ã®åºãã¹ã¯ããŒã«ããŒãè²åãã®ããã¯ããŒã¯ããã¬ãŒã¯ãã€ã³ãã«è¡šç€ºïŒã§äŸ¿å©ã§ãã
ãŸãšã
ãœãŒã¹ã³ãŒããçŽæ¥èªãåã«ãã³ãŒãããŒã¹ä»¥å€ã®ããŸããŸãªãœãŒã¹ã«ç®ãåããããšãéèŠã§ããããŒã ãšéä¿¡ããããã¥ã¡ã³ããèªã¿ãå®è¡ã®ããã«ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããŸãã ããã«ãããã¢ããªã±ãŒã·ã§ã³ã®åºæ¬çãªç解ãåŸãããã³ãŒããçŽæ¥èªãããšãã§ããŸãã ãœãŒã¹ã³ãŒããããã©ãã¯ããã¯ã¹ããšããŠèªã¿åããã¡ãœããã®ååãåãå ¥ãããããã©ã¡ãŒã¿ãŒãªã©ãããã¯ã€ãããã¯ã¹ããšããŠåæããã¡ãœããå ã®å 容ãåæã§ããŸãã ã³ãŒãã®èªèã容æã«ããããã«ãããšãã°ã€ã³ãã³ããæ¹åã§ããŸãã ã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããšããããã°ã¢ãŒãã§è¡ãããä»®å®ãæ€èšŒã§ããŸãã æåŸã«ãæ¬ãèªããšãã¯ãé ã®äžã§å šäœåãä¿ã¡ã調æ»äžã®ã¢ãžã¥ãŒã«ã®ããŸããŸãªéšåããã°ãã移åã§ããããšãéèŠã§ãã
次ã®è¡šã¯ãäžèšã®ã³ãŒããç解ããæ¹æ³ããŸãšãããã®ã§ãã
æ¹æ³ | 説æ | ããŒã« |
---|---|---|
ã³ãŒããèªãŸãã«ç解ãã | äžè¬çãªã¢ã€ãã¢ãåŸã
ãœãŒã¹ã衚瀺ããã«ã¢ãžã¥ãŒã«ã«ã€ã㊠|
|
ãã©ãã¯ããã¯ã¹ãªãŒãã£ã³ã° | å
éšã§äœãèµ·ãã£ãŠããã®ããç解ãã
äžéšã®é¢æ°ãŸãã¯ã¯ã©ã¹ å€åãã®ãµã€ã³ïŒæ®åœ±ããåå ãã©ã¡ãŒã¿ãæ»ãå€ ãªã©ïŒ |
|
ãã¯ã€ãããã¯ã¹ãèªã | 調æ»å¯Ÿè±¡ã®å
éšã®ã³ãŒãã調æ»ãã
æ¹æ³ | |
ã³ãŒãæ¹å | ã³ãŒãã®èªã¿ãããã®æ¹å |
|
ãããã°ã¢ãŒã | ãããã°ã¢ãŒãã§ã®ã¢ããªã±ãŒã·ã§ã³ã®å®è¡ |
|
å šäœå | äžè¬çãªãã¥ãŒã®ç¶æ
解æããããã®ã§äœãèµ·ãããã«ã€ã㊠ã¢ãžã¥ãŒã«; åãåã ã³ãŒãå ã®ããŸããŸãªå Žæãž |
|
ãããã«
ã³ãŒããèŠã€ããŠç解ããããšã¯ããœãããŠã§ã¢è£œåãæ±ãäžã§éèŠãªã¹ãããã§ãã æ€çŽ¢ãšç解ã¯ããªããžããªã®å€éšããå§ãŸããŸããããŒã ãšéä¿¡ããããã¥ã¡ã³ãããã°ãã©ãã«ãŒãèªãã§ãå®è¡ã®ããã«ã¢ããªã±ãŒã·ã§ã³ãèµ·åããŸãã æ€çŽ¢ãšç解ã¯ãæ¢åã®ã¢ãžã¥ãŒã«ãå®æããããšãïŒæ¢åã®ã¢ãžã¥ãŒã«ãå®æãããããã«ããããã©ã®ããã«æ©èœããããç解ããå¿ èŠããããŸãïŒãšãæ°ããæ©èœãéçºãããšãã«å¿ èŠã§ãïŒã¯ããæ°ããã¢ãžã¥ãŒã«ã¯ã³ãŒãã1è¡ãèªãŸãã«éçºã§ããŸããããããžã§ã¯ãã§ã¯ãåæ§ã®æ©èœãå®è£ ããåå¥ã®ãããã¯ããããé¢æ°ãšã¯ã©ã¹ã®å®è£ ã®ãã³ãã¬ãŒããšããŠäœ¿çšã§ããŸãã
ç§ã®æèŠã§ã¯ãåºçŸ©ã®ã³ãŒãïŒã€ãŸãããœãŒã¹ã®æ€çŽ¢ãšç解ã®äž¡æ¹ïŒã§ã®ã³ãŒãã®èªã¿åãã¯ãéçºè ãã¿ã¹ã¯ã®äœæ¥ã®å¥ã®æ®µéã«å²ãåœãŠãå¿ èŠããããŸãã ãã®æ®µéã®çµæã¯ãç¹å®ã®ã³ãŒããããã¯ã®äœæ¥ã®äžè¬çãªã¢ã€ãã¢ã ãã§ãªããã¿ã¹ã¯ã§äœæ¥ãããšãã«åœ¹ç«ã€ã¡ãœãããšãã¡ã€ã«ã®ããã¯ããŒã¯ã®ã»ããã§ãã çŽæ¥ããã°ã©ãã³ã°ã®ãã¬ãŒã ã¯ãŒã¯ã§æ¢ã«ããœãŒã¹ã®æ€çŽ¢ãç¶ç¶ããå¿ èŠããããŸãã ããšãã°ã次ã®ããã«ãæ°ããã¯ã©ã¹ã«åºäŒãã䜿çšãããŠããå ŽæãèŠã€ãã䟿å©ãªããã¯ããŒã¯ã®ãªã¹ããæŽæ°ããŸããã ãããããããŒã å ã®å¥ã®æ©èœã§ããã¯ããŒã¯ã®éžæãåºå¥ã§ããŸããæè¡ãªãŒããŒãŸãã¯æ åœã®éçºè ãæçšãªããã¯ããŒã¯ã®ãªã¹ããäœæãããã®åŸãããã°ã©ããŒãä»äºã«åãããããŸãã
ãœãŒã¹ã®æ€çŽ¢ãšç解ã®äž¡æ¹ã®ããã«ãååã®èŠåãšã¯ã©ã¹ïŒãã©ã«ããŒãåå空éïŒãæŽçããæ¹æ³ãç¥ãããšãéèŠã§ãã èè ã®çµéšã«ãããšããã®ãããªç解ã¯ãããžã§ã¯ãã®äœæ¥äžã«åŸãããŸãããã³ãŒããã¶ã€ã³ã«é¢ããåæïŒã³ãŒãã¹ã¿ã€ã«ã¬ã€ãïŒãšåãæ¹æ³ã§ãåæãæ£åŒãªãã®ã«ããŠæ°ããéçºè ã«äŒããããšãã§ããŸãã
ã¯ã©ã¹ã®é åºã®ååãšæ¹æ³ã«é¢ããå®éã®æ¢åã®åæãæããã«ããèªååããŒã«ãéçºããããšã¯ææãªããã§ãã æãäžè¬çãªãã©ã«ãåãæ¥å°ŸèŸãæ¥å°ŸèŸãªã©ãèå¥ããããŒã«ã圹ç«ã€ããã§ãã
ã³ãŒããèªããšããããã³éåžžã®æ¬ãèªããšãã¯ãèªãç®çãç解ãã念é ã«çœ®ãããšãéèŠã§ãã ã³ãŒããèªãããã«ããã¬ãŒã³ããã¹ãã®èªã¿æ¹ã«é¢ããèšäºããããã€ãã®ããªãã¯ãé©çšã§ããŸãïŒããšãã°ã ãèªãã ããã¹ããç解ããèœåãåäžãããæ¹æ³ïŒããåç §ïŒã
è©äŸ¡ã§ããéããã³ãŒãã®æ€çŽ¢ãšç解ã¯ãåœå å€ã®æç®ã§ã¯ããŸã觊ããããŠããªããããã¯ã§ãã æ瀺ãããèšäºããã³ãŒãããŒã¹ã䜿çšããå¹æçãªäœæ¥ã®ãã¯ããã¯ãç¿åŸããã®ã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã
åç
§è³æ
æ¬
- Spinellis D.ããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®äŸã«é¢ããããã°ã©ã ã³ãŒãã®åæã
- Hoagland G.ãMcGraw G.ããããã³ã°ããã°ã©ã ïŒåæãšã³ãŒãäŸã
- Fizers M. K.ãç¶æ¿ãããã³ãŒãã®å¹æçãªäœæ¥ã
èšäº
- èªãã ããã¹ããç解ããèœåãåäžãããã«ã¯ïŒ
- ã©ã®ããã«ããŠå€§èŠæš¡ãªã³ãŒãããŒã¹ã«é£ã³èŸŒã¿ãŸããïŒ
ã¯ãŒã¯ã·ã§ãã
ããŒã«
ã³ãŒããæ€çŽ¢ããã«ã¯
- Opengrok
- Docfetcher
- ãã£ãã©ãŒ
- ReSharper
- ãã¹ãŠã«è¡ããŸã
- ã¹ã¿ãã¯ãã¬ãŒã¹
- ãã¿ãŒã³ã§æ€çŽ¢
- ããžã¥ã¢ã«ã¹ã¿ãžãª
- ã€ã³ã©ã€ã³æ€çŽ¢ïŒCtrl + FïŒ
- ãœãªã¥ãŒã·ã§ã³ãšã¯ã¹ãããŒã©ãŒ
- ã¯ã©ã¹ãã¥ãŒ
- ãªããžã§ã¯ããã©ãŠã¶
- ãã¬ãŒã¯ãã€ã³ã
- Visual Studioã¢ããªã³
- ãã¡ã€ã«ãããŒãžã£ãŒ
- ç»é¢æ€çŽ¢
ã³ãŒããç解ããã«ã¯
- ReSharper
- ããã調ã¹ãŠ
- çšéãèŠã€ãã
- ãã¡ã€ã«æ§é
- ãªãã¡ã¯ã¿ãªã³ã°ããŒã«
- ããžã¥ã¢ã«ã¹ã¿ãžãª
- åŒã³åºãéå±€
- ã¯ã©ã¹å³ãèŠã
- äŒå¡
- ãããã°ããŒã«
- Visual Studioã¢ããªã³
- ã¢ããªã±ãŒã·ã§ã³ã®èµ·å
äžè¬çãªæ¹æ³
- ããŒã ãŸãã¯ãŠãŒã¶ãŒãšã®ã³ãã¥ãã±ãŒã·ã§ã³
- ããã¥ã¡ã³ããšãã°ãã©ãã«ãŒãèªã