ç«ã®äžã«ã¯ãäŒè°ãTDDããã¢ããã°ã©ãã³ã°ãã¢ãŒããã¯ãã£ã³ãŒãå¥çŽãHabrã«é¢ããå€ãã®ããã¹ãããããŸãã
ãªã¹ããŒã®èŠ³ç¹ããã®äŒè°ã«ã€ããŠ

æ£çŽã«èšããšãããç§ãããã§è¬æŒãããŠããªããã°ãç§ã¯æ¬åœã«ã«ã³ãã¡ã¬ã³ã¹ã«åå ããŸããã§ããã ããããããã«æ¥ããã³ã«ãããããåŒãåºãããäž»ãªãã®ã¯ã€ã³ã¹ãã¬ãŒã·ã§ã³ã§ããã ã¯ããããã¯é«ãããããã«èããããããããŸããããäŒè°ãšè³¢ãååãšã®ã³ãã¥ãã±ãŒã·ã§ã³ã¯ãç§ã«ãšã£ãŠåžžã«æé«ã®åæ©ã§ããïŒæ°ããããšãåŠã¶ãå€ããã®ãå ±æããããŸãã¯ã¹ãã·ã£ãªã¹ããšããŠãããŠå人ãšããŠç§ã®éçºãç¶ããããšã§ãã
å€ãã®æ¬ãèªãã§ã¬ãã¥ãŒããŸããã äŒè°ã«é¢ããŠäœãã¢ããã€ã¹ã§ããŸããïŒ
ããªãäžè¬çãªè³ªåã«ç¹å®ã®è³ªåãããããšã¯ããªãå°é£ã§ãã ããã§å¿ èŠãªãã®ãæ£ç¢ºã«ç解ããããšãéèŠã§ãïŒããããªãŒãå é»ããŸããïŒ é¢çœã人ãšç¥ãåãã«ãªãããããŠ/ãŸãã¯ãã£ããããŸããïŒ ç¹å®ã®ç¥èãè£å ããŸããïŒ åŸè ã®å ŽåãäŒè°ã®ä»£ããã«è³¢æãªæ¬ã2ã3æåãå¿ èŠããããŸãããæåã®ãã€ã³ãã®1ã€ã§ããå Žåã¯ãäŒè°ã®è³ªãšé¢çœãã確èªããè¡ããã©ãããèªåã§æ±ºããå¿ èŠããããŸãã
ããã°ã©ã ã«é¢ããäŒè°ã®è©äŸ¡æ¹æ³
äŒè°ã¯ã¹ããŒã«ãŒã«ãã£ãŠå€æãããå¿ èŠãããããããã¯ã§ã¯ãªã人ã«è¡ãå¿ èŠããããŸãã
ã¢ã³ãã¬ã€ã»ã¢ãã³ã·ã³ã話ããªãã圌ãäœã話ããŠããã®ããã¹ããããŠã©ããã«ã€ããŠããŸãã¯ããã©ãŒãã³ã¹ã«ãŸã£ããé¢ä¿ã®ãªããããã¯ã«ã€ããŠåœŒã®è©±ãèãã«è¡ããŸãã ç§ã¯å質ãé«ããšç¢ºä¿¡ããŠããã®ã§ãããããå€ããåŠã³ãŸãã
ããŠãã¹ããŒã«ãŒãã©ã®ããã«è©äŸ¡ããŸããïŒ
å®ã«ç°¡åã§ãã ã¹ããŒã«ãŒãè¯ãããã©ãŒãã³ã¹ã§ç¥ãããŠããå Žå-è¡ã£ãŠãã ããã 話ãæã銎æã¿ããªããŠããæµzhãªgooglezhã§ããã°ãgithubãhabrã«ã¢ã¯ã»ã¹ã§ããå Žåã¯ãè³æãè©äŸ¡ããŠãã ããã 話ãæã銎æã¿ããªããã°ãŒã°ã«ã«æ £ããŠããªãå Žåã¯ãå¥ã®ãã®ãæ¢ããã»ããããã§ãããã
ã¹ããŒã«ãŒã®èŠ³ç¹ããã®äŒè°ã«ã€ããŠ

ããã¯ãèªå·±å®çŸãŸãã¯ç¹å®ã®ã¬ãã«ã®éçºã®ç¢ºèªã®åé¡ã ãšæããŸãããã¯ããå€ãã®äººã«åºãããçµéšãå ±æããããšãæããªããšããç§ã¯ç¹å®ã®ã¬ãã«ã«æé·ããŸããïŒããžãã£ããšãã¬ãã£ãã å ±æããã®ãé¢çœãæçšãªããšãååã«ç¥ã£ãŠããã®ã§ãç¥ããªãããšãæ¥ããããæããŸãããã ç§ã«ãšã£ãŠãäžè¬çã«ãç¹ã«äŒè°ã§è©±ãããšã¯ãéçºã®ãã®ãããªææšã§ããã ããã¯ãã¹ãŠãã³ãŒããŒã飲ã¿ãªããäŒè©±ãããããšããŸãã¯ååãšèªä¿¡ãæã£ãŠã³ãã¥ãã±ãŒã·ã§ã³ãåãå§ããçµéšãå ±æããæèŠã䞻匵ããããã«ãªã£ããšãã«ãæ°ããããŒã ã«æ³šãéçšã§å§ãŸããŸããã ãã®åŸãããããçš®é¡ã®äŒè°ããŠãŒã¶ãŒã°ã«ãŒãã§ããŒã«ã«ããã©ãŒãã³ã¹ãè¡ããããã®åŸæ°çŸäººãšè©±ãã®ãæããªããªããŸããã
å¥ã®ãã©ã¹ïŒæºåããã»ã¹ã«ãããç¥èã®æ€èšŒã ããªãã¯ãã¬ãŒãºãç¥ã£ãŠããŸãïŒäœããåŠã³ãããªããå¥ã®ãã®ãæããŠãã ããã ããã©ãŒãã³ã¹ã®æºåã«ã¯ãããã©ãŒãã³ã¹èªäœã®10ã20åã®æéããããå¯èœæ§ãããããã®éã1ã€ã®ãããã¯ãæå³çã«æãäžããŸãã ãã¡ãããèšç»ãç«ãŠãã«èå³æ·±ãããšãäŒãããæžãããããå°é家ãããŸããã圌ãã¯ã»ãšãã©ããŸããã CLRã®ã¢ãŒããã¯ãã®1人ã§ããChris Broomeã®ã¿ãæãåºãããšãã§ããŸãã 圌ã¯ã»ãšãã©ã®æçš¿ãèªåã®é ããçŽæ¥æžããŠããã ãã€ãŠ ãç§ã¯è¿œå ã®ç 究ãå¿ èŠãšããªããããã¯ãåãäžããŠããŸããã ãããã€ãã®è³ªåã«ã¯çãããªãã£ãããããã®èšäºãäºåçãªã¬ãã¥ãŒã®ããã«æäŸããŸãããã ãããã£ãŠããã®äŒè°ã¯ãç¥èãæ§é åããããã«ããã詳现ã«äœããç 究ããåæ©ãšãªã£ãŠããŸãã
ãããããä»ãç§ã¯ååãªæçšãªããšãç¥ã£ãŠãããç§ã¯æ¬åœã«äŒããã¹ãããšãæã£ãŠãããããšãã©ã®ããã«ç解ããŸããïŒ
ç§ãèšã£ãããã«ããç«ã®äžã§ãçŽ æãå®è¡ããæãç°¡åãªæ¹æ³ã ã³ãŒããŒã®éãŸããäŒæ¥ã®ã¹ããŒããããã°ã®ã¡ã¢ãªã©ãããŸããŸãªæ¹æ³ããããŸãã
誰ãã®ç¥èãæ€èšŒããããšã¯éåžžã«éèŠã§ããããããããšã§ãç¥èãçŸå®ãšããŸãäžèŽããŠããªãããŸãã¯ããã»ã©æ·±ããªãããŸãã¯ããããããªãããšãããããŸããã GitHubããã®ä»ã®ãªãŒãã³ãœãŒã¹ã䜿çšããŠããšã¯ã¹ããªãšã³ã¹ãæ€èšŒãããªãã·ã§ã³ããããŸãã Roslinã®ããã€ãã®ãã°ãä¿®æ£ãããããžã§ã¯ãã®ããã©ã³ãŸãã¯ä»ã®åå è ã«ãã£ãŠæ¿èªãããèšèšãªãã·ã§ã³ãææ¡ããå Žåãããã¯ããªãã®çµéšãšæç床ã®ååãªèšŒæ ã«ãªããŸãã
ã€ãŸããããªãã¯è©³çŽ°ã«æºåããŠããŸãããïŒ ãã£ã³ãã¹ã ãïŒ
ãã£ã³ãã¹ã矩åçãªã€ã³ã¿ãŒãªãã¢ïŒããã©ãŒãã³ã¹äžã¯èŠãŠããŸãããïŒãããã ãã§ãã 話ãããšãšæçš¿ãæžãããšã®éãã¯ããã»ã©å€§ãããããŸããïŒçŽ¹ä»ãã¹ããŒãªãŒãçµè«ã ããªãã¯èããäžããå¿ èŠããããèªè ãäœãç¥ã£ãŠããã®ããã©ã®å Žæã説æããå¿ èŠãããã®ãââãã©ã®å Žæã«èšåããã®ãçåã«æãã§ãããã 確ãã«ãæçš¿ã§äœããåç §ããããšã¯ã§ããŸãããäŒè°ã§ã¯ãã¿ããªãæåã«ããã3ã€ã®èšäºãèªãã§ããæ»ã£ãŠããŠãã ããããšèšã£ãŠã倱æããŸãã
ã¢ã¡ãªã«ã§æŒå¥ããŸããïŒ
ãŸã ã§ãã åªå é äœã¯ç°ãªããŸãã ããã«ã話ãããŠããè±èªã®ã¬ãã«ã§ã¯ãæµspeakã«è©±ãããšãã§ããŸããã ç§ãèšã£ãããã«ãç§ã¯éåžžãäºåã«ãã¹ãŠãèšãã®ã§ã¯ãªããåã«èšç»ãæºåããŠããã«ã€ããŠè©±ããŸãããã®ãããªããšã«ãããŠãèšèªã¯éåžžã«éèŠã§ãã æºåãã§ããŠãã以äžã«äœãèšããªããšããåè«ãèšãããšãã§ããªããšãã話ãããšã¯å°é£ã§ãã ãããŠèªä¿¡ãå¿ èŠã§ãã ç§ãã¡ã«ã¯MSã®äŒçµ±ããããŸãïŒæã ãæŒé£ä»ãã®éšå±ã«ããŒã ããããžã§ã¯ããšããŠéãŸããããã§èª°ããååã«èå³æ·±ãæè¡çãªããšã話ããŸãã ç§ã¯ããã§ãã話ããŸãããã
MSã®éãŸãã®å¯Ÿè±¡è ã¯äœã§ããïŒ äŒè°ãšæ¯èŒããŠïŒ
ãªã¹ããŒã®äžã«ã¯ããã¿ãŒã³ã枬å®ããããã«æ¥ã人ãããŸãã ããã¯éåžžãååã®éã§ã¯èµ·ãããŸããããäŒè°ã§èµ·ãããŸãã ããªãã¯ãã®ãããªä»²éãšåãããšãã§ããªããã°ãªããŸããã
ç§ã¯èªããããšãæ¥ããŠããŸãããäžåºŠç§ã¯ãã®ãããªåå¿ãšããŠè¡åããã ãã®ãããªäœæ¥æ¹æ³ã¯ïŒ
ããã§ã¯ããªã¹ããŒãäœãæãã§ããããç解ããå¿ èŠããããŸãã ãã¶ãã質åãããŠãã人ã¯æ¬åœã«äœããç解ããããšããŠããŸããããšãã°ã圌ã¯ç¹å¥ãªäžè«ãæ¥è ã§ããããå¥ã®èšèªã®è±å¯ãªçµéšãæã€ååã§ãã ããªãã¯è³ªåã«çããããšãã§ãããšæãããããã¯é·ããŠé£ããã§ã-ã¹ããŒãã®åŸã«è°è«ããããšãç³ãåºãŸãã ãããããªãããšããçãã衚瀺ããããããããããªããã°ãŒã°ã«ãåŸã§é£çµ¡ããŸãããšèšã£ãŠãã ããã ãªãã¿ãŒã«ã€ããŠèšåããå Žåããããããªãã¿ãŒã¯ããèšããªãã£ã...ãããããã¯ããã§ã¯ãªãã£ã...ããªã©ã®è«äºãããªãããå§ãŸãå ŽåããããŸãã
TDD

æ£çŽãªãšãããç§ã¯ãã®å€å žçãªãã¬ãŒã³ããŒã·ã§ã³ã§TDDãã»ãšãã©äœ¿çšããŠããŸããã ç§ã¯å€ãã®ãã¹ããæžããŸãããã³ãŒãã®åã«ããããæžããŸããã ç§ã®ã«ãŒãã¯æ¬¡ã®ããã«ãªããŸãã
- åé¡ãèŠãŠãé«ã¬ãã«ã®ã³ã³ããŒãã³ãã確èªããŠã¿ãŸãã éçãåããé¢ä¿ã®ããå°ããªæ£æ¹åœ¢ãæãã®ãããããŸããã ããã«ãããå šäœåãšããã«å«ãŸãããµãã³ã³ããŒãã³ãã確èªã§ããŸãã ãã®åŸãé«ã¬ãã«ã®ãã¹ãã±ãŒã¹ãã¹ã±ããã§ããŸãããéåžžã¯ãããªãã§è¡ããŸãã
- ãã®åŸãã·ã¹ãã ãäžããäžã«å解ãå§ããŸãïŒãã®åã«ãååã«åŸã£ãŠäžããäžã«åé¡ã解æ/ãã€ã³ãããããšããŸããïŒã ãªãŒãã¯ã©ã¹ã®1ã€ãååŸãããããäœã§ããããèãå§ããŸãã
- ãã®åŸãå®è£ ã«é²ã¿ãæ©èœãã¬ãŒã ã¯ãŒã¯ãã¬ã€ã¢ãŠãããå Žåã«ãã£ãŠã¯ã³ã³ãã©ã¯ããã»ããã¢ããããŸãã
- 次ã«ãç¹å®ã®æ©èœã®å®è£ ã«é²ã¿ããããæžããŠãããã¹ããè¿œå ããŸãã
ãã¹ããã¡ãŒã¹ãã¯ãŸã£ãããããŸããããã³ãŒãå ã®ãã¶ã€ã³ãã確èªããããã¹ãã䜿çšããŠãã®æ£åœæ§ãæ€èšŒããæ¹ã䟿å©ã§ãã ãã¹ãã®å©ããåããŠãã¶ã€ã³ããæé·ããããããšã¯ç§ã«ãšã£ãŠäžäŸ¿ã§ã;ç§ã«ãšã£ãŠãããã¹ãããããã³ãŒãããžã®åãæ¿ãã¯éåžžã«æ°ãæ£ããŸãã
次ã«ã2çªç®ã®è³ªåãããŒãªã³ã°ã«æµæããæ¹æ³ãã«ç§»ããŸãããã ããã§ã¯ãã¹ãŠãç°¡åã§ãã
æ°å¹Žåãç§ã¯é¡§å®¢ã«åäœãã¹ããä¿é²ïŒã販売ãïŒããŠããŸããã ãããŠãåœæãä»ããååž°ã³ã³ããŒãã³ãããã¶ã€ã³ã®å質ãªã©ã«çŠç¹ãåãããŸããã§ããã ããã§ããããŠä»ããã¹ããã©ã®ããã«åœ¹ç«ã€ããèŠããããšããŸããããOKãæ°ããæ©èœãè¿œå ããå¿ èŠããããŸãã ãããããµãŒããŒãå±éããŠå¥å šæ§ã確èªããUIã®73ãã€ã³ããã¯ãªãã¯ãã代ããã«ãæãè€éãªæ©èœããã¹ãããåçŽãªåäœãã¹ããè¿œå ããŠã¿ãŸãããïŒ ã¯ãããã®æ©èœãåå¥ã®ã³ã³ããŒãã³ãã«åé¢ããæ¹æ³ã«ã€ããŠå°ãèããå¿ èŠããããŸãããæåãã¹ãã§ã¯ãã®ãã¹ãŠã®ãããããé«éã§ãã
èšãæããã°ãèªæã§ãªãè€éããæå°éã«æããŠè¿œå ããå¿ èŠãããå Žåãæ°ããããžãã¯ãå¥ã®ã¯ã©ã¹/ã¡ãœããã«é 眮ããŠãç°¡åã«ãã¹ãã§ããããã«ããæ¹æ³ãèããŸãã ãã¹ãŠãéåžžã«å®è¡ãããŠãããšããããã¯åžžã«ç°¡åã§ãããšã¯éãããåžžã«æ©èœãããšã¯éããŸããããå¥åŠã§ã¯ãªãã®ã§ãç§ã«ãšã£ãŠã¯ã»ãšãã©ã®å Žåã«æ©èœããŸãã
æ¢åã®ã¯ã©ã¹ã®ã°ã«ãŒãã«å€æŽãå ãããããšããã¹ãŠãé »ç¹ã«èµ·åãããæ°ããæ©èœãå€ãããŒãžã§ã³ã®ããªãšãŒã·ã§ã³ã«ãªãããšããããŸãã ãã®å Žåãããããã¹ãŠãçµ±åãã¹ãã§ã«ããŒããæ¹æ³ãæ€èšããæ¢åã®ã³ãŒãã®ä¿®æ£ãæ£åœåããããã©ããã決å®ããŸãããããã®éšåã«å€§ããªå€æŽããããã©ãããå€æããŸãã ç§ãã¡ãç©æ¥µçã«éçºããããšããŠããæªãã³ãŒãã«ã€ããŠè©±ããŠãããªããéèŠãªæ©èœã®å€æŽãè¡ãåã«ãããå¥å šãªå€æŽãæ£åœåããããšããŸãã ã³ãŒããæ»ãã§ããŠå®éã«éçºãããªãå Žåã¯ããã³ã§ãã¹ãããå¿ èŠããããŸãã
ãã€ãã¹ããæžãå¿ èŠããããŸããïŒ ãŸãã¯ãPSã¹ã¯ãªããã«è³ããŸã§ããã¹ãŠããã¹ãããŠããŸããïŒ
æå³ã®ãªããã¹ãã§ã«ããŒããããšã¯ãããããããŸãã PSã¹ã¯ãªããããã®1ã€ã§ãã PowerShellã¯ãã®æ§è³ªäžãç°å¢ãšå¯æ¥ã«é£æºãããããã¹ã¯ãªãããåç¬ã§ãã¹ãããããšã¯éåžžã«å°é£ã§ãã ããã«ãPowerShellã¯ã¡ãã£ãšå€ãã£ããã®ã§ãããå®éã®ããŒã¿ããªããšãPowerShellã«äœãæåŸ ããã®ããã¹ã¯ãªãããæ©èœãããã©ãããããããŸããã
ç§ãçŽæ¥ãã¹ãããªããã®ã¯ããªããããŸãã ã¬ã¬ã·ãŒã³ãŒãã倧éã«ããå Žåã¯ãããã€ãã®çµ±åãã¹ããå¿ èŠã§ããæ°ããã³ã³ããŒãã³ãã«ã€ããŠã¯ãã«ãã¬ããžã®é«ãåäœãã¹ããæ¢ã«äœæããå¿ èŠããããŸãã ãã¹ãã§ã«ããŒãããã¹ããã®ããããŸããããããã¯åäœãã¹ãã§ã¯ãªããçµ±åãã¹ãã§ãããåºæ¬çãªåŠ¥åœæ§ããã§ãã¯ããå¯èœæ§ãé«ãã§ãã ããã«ã¯ãããŒã¿ããŒã¹ããã³WCFãªã©ã®éä¿¡ã«é¢ãããã¹ããå«ãŸããŸãã
ä»ã®å€ãã®ãã®ãšåæ§ã«ããã¹ãã¯ããŒã«ã§ãããããèªäœãç®çã§ã¯ãªãããšãç解ããå¿ èŠããããŸãã ãã®å Žåãããã»ã¹ã®ããŒã«ã«å¯Ÿããæ 床ãå€æŽããå¿ èŠããããŸãã å€æ°ã®ãã¹ãããããããããäžå®ã®ååž°ããã£ããããå Žå-ããã¯è¯ãããšã§ãã å€ãã®ãã¹ããããããããã絶ããæ éããŠããå Žåãããã¯æªãããšã§ãã ããããããã§ã¯ã極端ãªãã®ããå¥ã®æ¥µç«¯ãªãã®ã«æ¥ãããšã¯ããããã¹ãŠã®ãã¹ããç¡æå³ã ãšèããŠãäžæã«ãã¹ãŠã®ãã¹ããéä»ãã«ããªãããšãéèŠã§ãã ããã§ããã¹ãã®æ¹æ³ããã¹ãã®å 容ããã¶ã€ã³ãè¯ããã©ãããèããå¿ èŠããããŸããïŒ éåžžãè匱ãªãã¹ãã¯ãããäžè¬çãªåé¡ã®çç¶ã§ã-èšèšãæ¥ç¶æ§ã®åé¡ãããã³æœè±¡ååäœã§ã¯ãªãå®è£ ã®è©³çŽ°ããã§ãã¯ãããã¹ãã®åé¡ã
ãã¢ããã°ã©ãã³ã°

çè«çã«ã¯ããã¢ã§äœæ¥ããããšã¯ãäžæ¹ããã¹ãã§ãããäžæ¹ãããžãã¯ã§ããå Žåã圹å²ã®åé¢ãæå³ããŸãã æ®å¿µãªãããç§ã¯ãã®åçã«åŸãå€å žçãªãã¢ããã°ã©ãã³ã°ã®çµéšãããŸããããŸããã
ãã®çµæãç§ã¯åžžã«ãã¢ã§ä»äºãããã®ã§ãäž¡æ¹ã«ãšã£ãŠå¿«é©ã§ããã ããã¯ããã¹ããå¿ èŠãšæãããããã«äœæãããããšãæå³ããŸãã å€ãã®å Žåããããã¯ããªã倧ããªãã£ã³ã¯ãã«ããŒããçµ±åãã¹ãã§ããããã®åŸãå®è£ ã«ååããŸããã 次ã«ãå®å šãªãã¹ãã1ã€ãã€è¿œå ããŸããã
ããããããã§ãTDDãããçšåºŠå人çãªåé¡ã§ããå Žåããã¢ã®TDDã¯ãã®ãã¢ã®åé¡ã§ãããšããããšãç解ããå¿ èŠããããŸãã ã«ããã«ã¯å¹æçã«ãªãæ¹æ³ã決å®ããå¿ èŠããããŸãã ç§ã®ä»äºã§ã¯ãä»ãã䟡å€ã®ããããšãšããã§ã¯ãªãããšã«ã€ããŠè©±ãããšãheããŸããã§ããã ãã°ãã¯ãªãã¯ãã§ãã
æ¥ãããããå±ã®ããã«ãç©æ¥µçãªããŒãããŒãšäº€æžããæ¹æ³ã¯ïŒ
ç§ã¯ããŸãçµéšããããŸãããããã¢ããã°ã©ãã³ã°ã¯ãç±³åœã§ããŠã¯ã©ã€ãã§ããæ¥çã§ã¯ããªãçããã¢ãããŒãã§ãã ãããžã§ã¯ãã«ã¯å€ãã®åªç§ãªäººãããŸãããã倩äºãããããŒãããŒãšéãæºåãã§ããŠããŸããã ç§ã®æèŠã§ã¯ããã¢ããã°ã©ãã³ã°ã¯ããã人ãã³ãŒãã«ã€ããŠæ£ç¢ºã§ããå Žåãä»ã®äººãæ£ç¢ºã§ãªãå ŽåããŸãã¯ä»ã®äººããã°ããæžãå Žåãä»ã®äººãææ ®æ·±ãå ŽåããŸãã¯ä»ã®äººãæ¥ãããããå±ã§ããå Žåã¯å¹æããããŸããã ç§ããã®ãããªãã¢ã«ããå Žå-ç§ã¯ãããé¿ããããšããŸãã çŽç²ã«å¿ççã«ã¢ãããŒããã人ã¯ã»ãšãã©ããŸããã ãã¢ããã°ã©ãã³ã°ã«ã€ããŠè©±ããŠããŸãã ã¡ã³ã¿ãŒãå¿ èŠãªå Žå-90ïŒ ãç§ã«åã£ãŠãããšæãã®ã§ã圌ããžã®ã¢ãããŒããèŠã€ããŸãã
ã©ã®ããã«ããŠãã¢ã§ã³ãŒãã£ã³ã°ãå§ããŸãããïŒ
ç§ã¯ããã«ãœã³ã«åå ããååã®1人ãšååããŠæ¬¡ã®ããŒãžã§ã³ã®ã³ãŒãæ€çŽ¢ãäœæããŸãããããã¯referencesource.microsoft.comã®æ€çŽ¢ãšã³ãžã³ã§ãã以åã®ããŒãžã§ã³ã§ã¯ãå€ãã®äœåãªããŒã¿ãèšæ¶ãããŠããŸããã Elastic Searchã«é©ããçµéšããããã€ãŸãããã ããªãã¯ããã«ãœã³ãç¥ã£ãŠããŸãïŒæéã¯çããããªãã¯å€ãã®ããšãããªããã°ãªããŸãããä»äºãåããæéãšæ©äŒããããŸããã§ããããããŠç§ãã¡ã¯åãã³ã³ãã¥ãŒã¿ãŒã«1ã€ã®ã³ãŒããå ¥åããŸããã ããŸããããŸããããããããããã€ãã®ã¿ã¹ã¯ã¯æ°åã³ãŒãã£ã³ã°ãããŸãããæ°ãæåŸãåããããžã§ã¯ãã«ãªããŸããã ããããããããŸãçããããšã§ãã ãŠã¯ã©ã€ãã§ã¯ãããã«ã€ããŠã¯ãŸã£ããèããŠããŸããã§ãããMSã§ã¯ãããããŒã ãéåžžã®ãã¢ããã°ã©ãã³ã°ãç·Žç¿ããŠããããšãèããŸããããããã¯ã»ãã®äžç¬ã§ãã
äœããã®çç±ã§ãå¿ èŠä»¥äžã«é·ããäžå®å®ããããšäž»åŒµããããšãååã«èµ·ãããŸããã ãã®ãããªè°è«ã¯PPãšèããããšãã§ããŸããïŒ
ããã¯ãç¹ã«èª°ããããŒã ãåããŠäœ¿çšããå Žåã«åžžã«åœãŠã¯ãŸããŸãã æ £ãããšç©ºè ¹ã«ãªããŸã-ãã¢ãªã³ã°ãè©Šã¿ãããšãã§ããŸãã 誰ãäœã®äŸ¡å€ããããããã§ã«ããã£ãŠãããšããããŸããé åºãªäººã§ãããè³¢æãªèãããŸããç§ãèŽãç©ã§ã¯ãããŸããããå©çããããããŸãããšæ°ã¥ããããè©ŠããŠã¿ãŠãã ããã ãã以åã¯ãã³ãã¥ãã±ãŒã·ã§ã³ãéåžžã«é£ãããã»ãšãã©å©çããããŸããã éåžžã«è¿ éã«é©å¿ãããã¢ããã°ã©ãã³ã°ãããã§ãã·ã§ãã«ãšäžç·ã«ä»äºãããå Žåãè©ŠããŠã¿ãããšãã§ããŸããããã®çŸè±¡ã¯éåžžã®ã枩宀ããããããã«ãŸãã§ãã
ãã¢ããã°ã©ãã³ã°ã®æºåã¯ã©ã®ããã«ããŠããŸããïŒ
ãŸããã äžè¬çã«ã äœæ¥ãéå§ããåã«ã³ã³ããã¹ãã調ã¹ã䟡å€ãããå Žåãé€ããäœãå¿ èŠãããŸããã
èšèªéå£ã¯ã©ã®ããã«å¹²æžããŸããïŒ
éåžžãå¹²æžããŸããã äžè¬çãªãããžã§ã¯ããå ±éã®ããã°ã©ãã³ã°èšèªãäžè¬çãªäž»é¡åéã æã極端ãªå ŽåãçŽãåãããã®äžã«äœããæãããšãã§ããŸãã
æ©åšã®éå£ïŒ
ã¯ããããã¯å€å žã§ãã ç§ã®çžæ£RïŒã¯å«ãã§ãããããå察ã§ãã æã ããã§ç¬ããŸãã ã€ãŸãããã®ãããªã³ãŒããäœæããäžæ¬åŒ§ãä»ãããšããã¹ãŠã®é 眮ãç¿æ £ããé£ã³åºãããåæ¢ããã€ã¬ã調çããªããCtrl + Zããã¹ãŠããã£ã³ã»ã«ãããŸã...ãã®ããã«ãªããŸãã ããããªããšãä»ã®ãã€ãããŒã·ã§ã³ããã£ãããããããŒã®ããã§ãããããã»ã¹ãèŠãã®ã¯æ¥œããã§ãã äžæ¹ãããŒã«ã䜿çšããã¹ãã«ãåŠã¶ã«ã¯è¯ãæ¹æ³ã§ãã æè¿ããèªããããªããããã®RïŒæ©èœã¯æ°ã«å ¥ã£ãŠããããšãããã¬ãŒãºãèããããšããããŸãã ã€ãŸããæåã¯ã倧èŠæš¡ãªãããžã§ã¯ãã®ãã¬ãŒããåå ã§RïŒã奜ãã§ã¯ãããŸããã§ããããä»ã§ã¯é«ãè©äŸ¡ããå§ããŠããŸãã ããã«ãdiff-mergeã®ããŒã«ã«éãããããŸãããã¢ããã°ãèŠãã®ã¯é¢çœãã£ãã§ãã äžè¬ã«ãç§ã¯ãã¢ãããŒãããèšèšãŸã§ã䜿çšããããŒã«ãŸã§ãããã»ã¹ã®ãã¹ãŠã芳å¯ããã®ã奜ãã§ãã ã€ãŸããããã¥ã¢ã«ãèªãã®ã§ã¯ãªããçããŠãã人ãããªã³ã¶ãã©ã€ãã§ã¿ã¹ã¯ã«ã©ã®ããã«å¯ŸåŠããããèŠãŠãã ããã ãšãŠãå¿«é©ã§ãã
ã³ãŒãå¥çŽ

ç§ã¯å¥çŽããã°ã©ãã³ã°ã®é·å¹Žã®ãã¡ã³ã§ãã ç§ã®æã¯ãããŒãã©ã³ããã€ã€ãŒã®èæžããªããžã§ã¯ãæåã®ãœãããŠã§ã¢ã·ã¹ãã ã®æ§ç¯ãã«ç²ŸéããŠããå§ãŸããŸããã 責任ã®èŠ³ç¹ããèšèšãèãããšãéçºãå€§å¹ ã«ç°¡çŽ åã§ããããã¯ãªãŒã³ã«ããããšãã§ããŸãã
CodeContractsã©ã€ãã©ãªã¯ããããã®ç®çã®ããã«.NETãã©ãããã©ãŒã ã«é·ãååšããŠãããç§ã¯ãããé·ãé䜿çšããŠããŸãã MSã«ç§»è¡ããçŽ1幎åã«ãRïŒã®ãã©ã°ã€ã³ãäœæããŠãå¥çŽããã°ã©ãã³ã°ãç°¡çŽ åããããã䜿çšããŸããã ãã©ã°ã€ã³ã¯ãå žåçãªã³ãŒãã³ã³ãã©ã¯ããšã©ãŒããã£ããããContract.RequiresïŒargïŒ= NullïŒã³ã³ãã©ã¯ããè¿œå ã§ããããã«ããä»ã®å€ãã®äŸ¿å©ãªããšãè¡ããŸãã MSã§ã®æåã®1幎ã§ãApplications Insightsçšã®å°ããªããŒã«ãäœæããŸããã Code Contractsã®äœæè ã®1人ã§ããMike Barnetã«ãšã£ãŠæçšã§ããããšãå€æããŸããã ãã®åŸãå¥ã®ããŒã ã«ç§»ããŸãããããã®ããŒã ã¯MightãšMainã§Code Contractsã䜿çšããŠããããšãããããŸãããããã¯MSã®Code Contractsã®æ倧ã®ãŠãŒã¶ãŒã®1人ã§ãã VS 2015ã®ãªãªãŒã¹åŸãã³ãŒãã³ã³ãã©ã¯ããæŸæ£ããããã©ã€ãã©ãªãä¿®æ£ããŠCïŒ6.0ããµããŒãã§ããããã«ããŸããã ãã®çµæãç§ã¯ã³ãŒãã³ã³ãã©ã¯ãã®æçµæ±ºå®ã«1ãæåãã2ãæéç©æ¥µçã«åãçµã¿ãŸããã ç§ãgithubã§æã掻çºã ã£ãã®ã¯ãã®æéã§ããã æ°æ©èœã®è¿œå ã«å ããŠãã³ãŒãã³ã³ãã©ã¯ãã§ã¯éåžžãµããŒããããªãã£ãå€ãã®æ©èœãç¹ã«éåæã¡ãœããã®äºåŸæ¡ä»¶ãä¿®æ£ãããŸããã ãã®åŸãç§ã¯å³æžé€šã®ã¡ã³ãããŒã®äžäººã«ãªããŸããã ä»ãç§ã¯èªç±ãªæéã«ãããžã§ã¯ããããŠããŸãããç§ã¯æãã§ããããã¯ããã«å°ãªãã§ãã
ãªãã§ïŒ
ãã®ä»ã®åªå äºé ã
æ°ãããããžã§ã¯ãïŒ
æ°èŠã§ãããã³ãŒãå¥çŽã«é¢é£ããŠããŸãã
ããããŸããã
ã³ãŒãå¥çŽã«ã¯ãéçºãå°é£ã«ããé倧ãªåé¡ãããã€ããããŸãã ãããžã§ã¯ãã¯ãã³ãŒããæ··ä¹±ããå Žæã«ãã倧èŠæš¡ã§è€éãªæ°åäžè¡ã§ãã ããã«ããã®ã©ã€ãã©ãªã¯ãç¹å®ã®.NETèšèªãŸãã¯ã³ã³ãã€ã©ã«çžãããããšãªããILã³ãŒããåæããã³å€æŽããããã«èšèšãããŠããŸãã
ã©ã€ãã©ãªã«ã¯3ã€ã®äž»èŠãªã³ã³ããŒãã³ããå«ãŸããŠããŸãã
- ã€ã³ãã©ã¹ãã©ã¯ãã£ïŒCommon Compler InfrastrucutreãCCIïŒ-ILããªããžã§ã¯ãã¢ãã«ïŒAbstract Syntax TreeãASTïŒã«éã³ã³ãã€ã«ããŸãã åºåã®ASTã¯å€æŽå¯èœã§ãäœã¬ãã«ã§ãã ã¯ããŒãžã£ãéåæãã€ãã¬ãŒã¿ãããã¯ã¯ãããŸããã
- ãã«ãäžã«å¥çŽã®æå¹æ§ããã§ãã¯ããéçæ€èšŒããŒã«CCãã§ãã¯ã ã€ãŸããASTã解æããNotNullã®ã泚éããæã€ã¡ãœãããèŠã€ããå ŽåãNullããã®ã¡ãœããã«å°éããªãããšã蚌æããããšããŸãã
- ã©ã³ã¿ã€ã ILãªã©ã€ã¿ïŒCC RewriteïŒã ãã«ãäžã«dllãã¡ã€ã«ã®å€æã«åŸäºã Contractã¯ã©ã¹ã®åŒã³åºããããŸããŸãªæ§é ã«å€æããŸããäŸå€ãã¹ããŒãããDebug.Assertã«ããŸãã¯åã«ã¹ããŒãã¡ã³ãå šäœãåé€ããã ããã¯ãããªãã¡ã€ã¢ã«é¢é£ä»ããããŠããªãå¥åã®ãŠãŒãã£ãªãã£ã§ãã
ãã®ã¢ãããŒãã«ã¯éèŠãªæ©èœããããŸããç°ãªãã³ã³ãã€ã©ãŒããã³åãã³ã³ãã€ã©ãŒã®ç°ãªãããŒãžã§ã³ã§ãããåãæ§ææ§æã«å¯ŸããŠç°ãªãILã³ãŒããçæããŸãã ãŸããCCIã¯ILã®ã·ã³ã©ãããŒã®ã¿ãæäŸããŸããã©ã ãåŒãå埩åããŸãã¯éåæã¡ãœããã¯ãããŸããã ç¹å®ã®ã¯ã©ã¹ã®ãªããžã§ã¯ããäœæããŠããããšãããããŸããããããããã°ã©ããŒã«ãã£ãŠäœæãããå®éã®ã¯ã©ã¹ã§ããããã©ã ãåŒã䜿çšããçµæãšããŠã³ã³ãã€ã©ãŒã«ãã£ãŠçæãããã¯ã©ã¹ã§ãããã¯ããããŸããã ããæ£ç¢ºã«ã¯ãã³ã³ãã€ã©ã¯ã³ãŒããçæããããã«ç¹å¥ãªãã¿ãŒã³ã䜿çšãããããããã«ã€ããŠç¥ãããšãã§ããŸãã ãããã£ãŠãccrewriteã¯ã³ãŒããåæããååã調ã¹ãŠããããã¯ããŒãžã£ãŒã¯ã©ã¹ããã€ãã¬ãŒã¿ãŒãŸãã¯éåæã¡ãœããã®ã¯ã©ã¹ãããŸãã¯ä»ã®äœãããå€å¥ããŸãã
ãã®å Žåããã¿ãŒã³ã¯ã³ã³ãã€ã©ã®ç°ãªãããŒãžã§ã³ã§å€æŽãããŸãã åãã©ã ãã«å¯ŸããŠãCïŒ5.0ã¯ããªã²ãŒããæã€éçãã£ãŒã«ããçæããæ°ããã¿ã€ãã®ã¯ããŒãžã£ãŒã¯ã©ã¹ãCïŒ6.0ã«ç»å ŽããŸãããCïŒéçºè ã¯ãã€ã³ã¹ã¿ã³ã¹ã¡ãœãããéçã¡ãœãããããå®äŸ¡ã§ããããšãçºèŠãããããéçå€æ°ã®ä»£ããã«ãéãã£ãããã©ã ãåŒã®ã·ã³ã°ã«ãã³ãçæãããããã«ãªããŸããã
éåæã¡ãœããã«ã€ããŠã¯ãå®å šã«ã¯ã¬ã€ãžãŒãªäŸãæããããšãã§ããŸãã CïŒ6.0ã³ã³ãã€ã©ãŒã¯ãã¡ãœããå ã®awaitã¹ããŒãã¡ã³ãã®æ°ã«å¿ããŠç°ãªãã³ãŒããçæããŸããawaitããªãå Žåã¯ã1ã€ã®ã³ãŒããååŸãããawaitã1ã€ã ãã®å Žåã¯ãä»ã®ã³ãŒããååŸãããŸãã
ãããŠãããããã¹ãŠã®è©³çŽ°ãèæ ®ããå¿ èŠããããŸããã³ã³ãã€ã©ãèšèªæ§é ã®åŠçãéå§ãããã³ã«ãæ€èšŒè ãšãªã©ã€ã¿ã®äž¡æ¹ãå€æŽããå¿ èŠããããŸããèšèªã®å€æŽã¯ãããã倧ãããŠæ·±å»ãªäœæ¥ã§ããæ°ããèšèªæ§æã®ãµããŒããè¿œå ããã ãã§ãªãããã¹ãŠã®å€ãæ§æãåŒãç¶ãæ©èœããããšã確èªããäžäœäºææ§ãç¶æããå¿ èŠããããŸãã
å¥ã®åé¡ïŒãã°ãä¿®æ£ããã®ã¯éåžžã«å°é£ã§ãã 2è¡ã®ä¿®æ£ã®ããã«8æé座ãããšãã§ããŸãããããã£ãŠãäžè¬åãããã¯ã©ã¹å ã§çæãããäžè¬åãããã¡ãœããã§ãç¹å®ã®å ŽåãåŒæ°ã®åãïŒTã§ã¯ãªãïŒTã§ãã£ããšãã«ããã°ã®1ã€ã«èŠåŽããŸããïŒããã¯ãäžè¬åãããã¡ãœãããã©ã¡ãŒã¿ãŒã§ã¯ãªããäžè¬åãããã¿ã€ããã©ã¡ãŒã¿ãŒã䜿çšãããããšãæå³ããŸãïŒã
äžè¬ã«ãCCIã«ãã£ãŠçæãããASTã¯äœãããããããµããŒããè€éãããŸããèšèª\ã³ã³ãã€ã©ã®æ°ããããŒãžã§ã³ããšã«ããŸããŸãå°é£ã§æè¬ã®ãªãäœæ¥ãè¡ãå¿ èŠããããŸãã
å¥ã®åé¡ïŒãã«ãæéã«å¯ŸããCC Rewriteã®æªåœ±é¿ãCC Rewriterã¯é決å®çã§ããã€ãŸãã1ã€ã®DLLãååŸããCC Rewriterã2ååŒã³åºããŸãã2ã€ã®ç°ãªããã€ããªã確å®ã«ååŸã§ããŸããææ°ã®ãã«ãã·ã¹ãã ã§ã¯ãããã¯éåžžã«å€§ããªåé¡ã§ããå®éããã£ãã·ã¥ããã³ã€ã³ã¯ãªã¡ã³ã¿ã«ãã«ãã®æ©èœã¯å€±ãããŸããã€ãŸããCC Rewriteã䜿çšããŠ1ã€ã®ãã¡ã€ã«ã«å€æŽãå ããå Žåããœãªã¥ãŒã·ã§ã³å šäœãåæ§ç¯ããå¿ èŠããããŸããCC Rewriteã䜿çšããªãå Žåã¯ã1ã€ã®ãããžã§ã¯ããšãã®ãã¹ãŠã®çŽæ¥ã¯ã©ã€ã¢ã³ãã®ã¿ãåæ§ç¯ã§ããŸããæ°çŸã®ãããžã§ã¯ãã§CC Rewriteã䜿çšãããšããã«ãæéãå€§å¹ ã«å¢å ããŸãã
ããã«ãCC Rewriterã¯æžãæãæã«pdbãããŠã³ããŒãããŸãããåžžã«æ£ããå®è¡ãããšã¯éããããããã°ã«æªåœ±é¿ãåãŒããŸããæè¿ã®ãã®ãããç§ã®ååã¯CCãªã©ã€ã¿ãç¡å¹ã«ããªããšãããã°ã«åŸäºã§ãããã³ãŒã«ã¹ã¿ãã¯ããããã¢ããããããŒã«ã«å€æ°ãæ£ãã衚瀺ãããããããã°äœéšå šäœã倱ãããŸããã
ãããã®åé¡ã®ãããååãšç§ã¯çŸåšãœãŒã¹ã¬ãã«ãªã©ã€ã¿ïŒSLãªã©ã€ã¿ïŒã«åãçµãã§ããŸããã€ãŸããILãæäœãããé«ã¬ãã«ã®ã³ãŒããå€æŽããŸããæ¬ ç¹ã®ãã¡ãããã¯CïŒå°çšã®ãŠãŒãã£ãªãã£ã§ãã
ã€ãŸããRoslynããªãŒãååŸããŠå€æŽããã³ã³ãã€ã©ã«æž¡ããŸããïŒãã€ãã®å®çå€ïŒ
ãŸãã«ãRoslynã¯ãå¿ èŠãªã¡ã«ããºã ãæ£ç¢ºã«æäŸããŸããã¯ãŒã¯ã¹ããŒã¹ãååŸããã³ã³ãã©ã¯ããžã®ãã¹ãŠã®åŒã³åºããæ¢ããå¿ èŠãªãã©ã°ã¡ã³ããæ¿å ¥ããŸãã
Roslynã䜿çšããå ŽåãCïŒ6.0ã«å¶éãããŠããŸããïŒ
ã»ãŒãå®éãã³ã³ãã€ã©ãŒãšã®çµ±åã«é¢å¿ããããŸãããããã¯å¥ã®è°è«ã®ãããã¯ã§ãã
ãœãŒã¹ã¬ãã«ãªã©ã€ã¿ã¯ã©ãã«ãããŸããïŒ
ããã¯ã2人ãèŠãŠããå éšè£œåã§ãã圌ã¯ãŸã æºåãã§ããŠããŸããããç§ãã¡ã®ããŒã ã§æ£ããåãããã«ãªã次第ãå ±æããŸãã
ããã©ãŒãã³ã¹ã«é¢ããäºæž¬ã¯ãããŸããïŒçŸåšãã³ãŒãã³ã³ãã©ã¯ãã¯ãã¹ããŒããŠã³ããããŠãããšscãããããšããããããŸãã
CC Checkã¯éåžžã«é ãã§ããæ£ããåäœãããã«ã¯ã倧éã®æ³šéãé 眮ããå¿ èŠãããã10äžè¡ã®ã³ãŒãã®ãã«ãã«ã¯æ°åãå Žåã«ãã£ãŠã¯æ°ååããããŸãããã®åŸãçµè«ãåæããå¿ èŠããããŸããã€ãŸããéçºè ã®èŠ³ç¹ããèŠããšãé ããŠéå¹ççãªããŒã«ã§ããããæ£ç¢ºã«ã¯ãã¢ã€ãã¢ã¯è¯ãã§ãããã¿ã¹ã¯ã¯éåžžã«é£ããããã£ãããšè§£æ±ºãããŠããŸããç§ã¯ãããç©æ¥µçã«äœ¿çšããŠããå°æ°ã®ããŒã ãç¥ã£ãŠããŸããç§ã®ããŒã ã¯2幎åã«ãããæŸæ£ãã誰ãåã³ããã䜿ãããããŸããã
ä»CCãªã©ã€ããç§ãèšã£ãããã«ãããã¯ãã«ãããã»ã¹ã«å€§ãã圱é¿ããŸããããšãã°ãããŒã«ã«ã§ç¡å¹ã«ããŠãã«ããã·ã³ã§ã®ã¿äœ¿çšãããªã©ãæéã®ããªãã¯ããããŸãããããã§ãé床ã¯äœäžããŸãã
ããã«éèŠãªã®ã¯ãã©ã³ã¿ã€ã ãžã®åœ±é¿ã§ããå¥çŽã§ã¯ãè¿œå ã®å°åæãéåžžã«ç°¡åã«äœæã§ããŸãããã®ãããã¯ã©ã¹ã«éãäžå€åŒãããå ŽåãåãªãŒãã³ã¡ãœããã®æåãšæåŸã«ãã§ãã¯ãè¿œå ãããŸãããŸãã¯ã³ã¬ã¯ã·ã§ã³å¥çŽ-ããªãã¯ã³ã¬ã¯ã·ã§ã³å šäœãç¹°ãè¿ãå¿ èŠããããŸããããã¯ãã³ã¬ã¯ã·ã§ã³ã§å®è¡ããã5ã€ã®ã¡ãœããã®ãã§ãŒã³ãããå Žåã«ç¹ã«é¡èã«ãªããŸãããŸãã¯ãååž°ãã§ãã¯ãåŒã³åºããŠãåŒã³åºãèŠçŽã詳现ã«å¶éããŸããã¹ã¬ãããããŒã«ã«ã«åŒã³åºãããšã«ããããã¬ãŒããè¿œå ãããŸãããã®ãã§ãã¯ãç¡å¹ã«ããã ãã§ããšã³ãããŒãšã³ãã®ããã©ãŒãã³ã¹ã15ïŒ åäžããŸããããã®ãããªè©³çŽ°ã¯ããŸããããŸãããããããã«ã€ããŠç¥ã£ãŠããå¿ èŠããããŸãã
äžæ¹ããã«ããšã³ãžã³ãèŠãŠããŸããããã¯ã·ã¹ãã ãœãããŠã§ã¢ã§ãããããªãã®ã³ãŒãããŒã¹ã§ããå®è¡æã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ãæå°éã«æããããã«å¥çŽã調æŽããå¿ èŠããããŸãããå¥çŽãæåŠããããããŸãããåä¿¡ããã¯ã©ãã·ã¥ãã³ãå ã®å¥çŽããã®ã¡ãã»ãŒãžã¯å€ãã®æçšãªæ å ±ãæäŸããŸãã
ããã«ãã»ãšãã©ã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãå®è¡æã®ãªãŒããŒããããæå°ã«ãªããšèšããªããã°ãªããŸããã
ã€ãŸããå°èŠæš¡ãããžã§ã¯ãã®å Žåãèšå®ãªãã§ããŒã«ã䜿çšã§ããŸããïŒ
å°ãããã®ã«ã€ããŠã¯ãã¯ããåªäœã®å Žåãåææ¡ä»¶ãšãªãŒãã³ã¡ãœããã®ãã§ãã¯ã®ã¿ãè¡ãããšãã§ãããã®åœ±é¿ã¯æå°éã«ãªããŸãããã¹ãã§æ éã«ã«ããŒãããŠããäž»èŠãªæ©èœã¯ãã©ã³ã¿ã€ã ãããã¹ãŠã®ã³ã³ãã©ã¯ããåé€ããããã«æ§æã§ããŸãããã®ããŒã«ã¯ã«ã¹ã¿ãã€ãºå¯èœã§ã-䜿çšããããšã¯ããªãå¯èœã§ãïŒãããŠäŸ¡å€ããããŸãïŒã倧èŠæš¡ãªãããžã§ã¯ãã§ã®ã¿èª¿æŽããå¿ èŠããããŸãã
Habraã«é¢ãã質åã

ã©ãããŠåœŒå¥³ã®ãšããã«æ¥ãã®ïŒ
ãããŒ...ããã¯é·ãæéã§ãããç§ã¯2010幎ã«rsdnããã§ã«æ»ã«ãdou.uaã¯ãã§ã«æ»ãã§ããããããŸã人æ°ããªãã£ãã®ã§ãHabrã«æ¥ãŸãããåœæã®Habrã¯ãå€ãã®æ·±ãæè¡çãã¹ãããããŠæãéèŠãªããšãšããŠãé«ã¬ãã«ã®S / Nã§ç©æ¥µçã«éçºãé²ããŠããŸãããèªãã®ãé¢çœãã£ããæžãã®ãé¢çœãã£ããããã®åºçç©-ããã¯ããçš®ã®æè¡çãªåé¡ãè°è«ããæãç°¡åãªæ¹æ³ã§ãããã¯ãããã¹ãŠã®ã³ã¡ã³ããåçã«æçšãšããããã§ã¯ãããŸããã§ãããããã®æç¹ã§ããã¯ç§ã«ãšã£ãŠèå³æ·±ããã®ã§ããã
ã©ãããŠHabrãé¢ããã®ã§ããïŒ
ãŸã第äžã«ãç§ã¯å€ãããŸãã;ç§ã®èå³ã¯å€ãããŸãããç§ã¯ããã°ã«æžãç¶ãããã°ãã°ããå²åŠçãªãããã¯ãéžæããŸãããããŠãç§ãšç§ã®èå³ãç¥ã£ãŠããèå³æ·±ãèŽè¡ããã§ã«éçºããŠããŸããããã°ãšHabréã§äžŠè¡ããŠæžãããš-絶察ã«ãæ£ãããã§ã¯ãããŸãããç§ã®æåŸã®ã䞊è¡ãæçš¿ãããã°ã§ããå€ãã®ã³ã¡ã³ããåéããåŸãç§ã¯å®è³ªçã«Habrãžã®æžã蟌ã¿ãåæ¢ããŸããã
ç§ã¯ãŸã Habrãèªãã§ããŸããããœãŒã·ã£ã«ãããã¯ãŒã¯ããã®ä»ã®æ¹æ³ã®ãããã§é »ç¹ã«èªãã§ããŸãã RSSçµç±ã§èªãããšã«ãããã€ãºã¬ãã«ã¯ç§ã«ãšã£ãŠã¯é«ãããŸããæããã«ãHabrã®èŠèŽè ã«ãšã£ãŠèå³æ·±ããã®ãã¹ãŠã«èå³ãããããã§ã¯ãããŸãããåæã«ãææ ®æ·±ããæ·±ããèå³æ·±ãåªããèšäºãããç®ã«ããŸãã
ããã«ãHabrã¯å€ãã®æçšãªæ å ±ãåŒãåºãããšãã§ããæ倧ã®ITããŒã¿ã«ã§ããç¹å®ã®ãããã¯ãå匷ããŠããŸããããã·ã¢èªã®ã»ã°ã¡ã³ãã調ã¹ãŠãããšããŸã ããã«ããããšããããããŸãã
èè ããïŒSergeyãšã®äŒè©±ã¯ããæ··oticãšããŠãããããã«ããã€ãã®ç¡é¢ä¿ãªãããã¯ã«è§ŠããŸãããç§ãäœããèŠéããå Žå-ã»ã«ã²ã€ã¯ååŸãšã³ã¡ã³ãã§å©çšå¯èœã§ããçãã¯éåžžãããå€ããªãå¯èœæ§ããããŸããã¿ã€ã ãŸãŒã³ãèæ ®ããŠãã ãããã·ã¢ãã«ã®æéã¯ã¢ã¹ã¯ã¯ãš11æéç°ãªããŸãã