
ãã®èšäºã«ã¯ãç§ãèªåèªèº«ã«é¥ããé¥ãç¶ããããããæ±ºããŠæ¢ãŸããªãããã°ã©ãã³ã°ãã©ãããšã仲éãèŠã€ããããã°ã©ãã³ã°ãã©ãããå«ãŸããŠããŸãã
ãã ããã©ã®ãã©ããã«é¥ãå¯èœæ§ãããããããããæãåºãæ¹æ³ãç¥ã£ãŠããã°ãããããåé¿ã§ãããšèããŠããŸãã ããããããã®ä¿¡å¿µã¯å¥ã®trapã§ãã
ç°¡åãªç޹ä»
ããªãã穎ã«èœã¡ããšæ³åããŠãã ããã æ·±ã3ã¡ãŒãã«ã«ããŸãã ããªãã¯ããããæãåºãå§ããŸããã¹ã¯ã©ã³ãã«ãããã¿ã€ããŸããç§ã¯ããªããæãä»ãä»ã®ãã®ãç¥ããŸãããããããããªãã¯ããããåºãã§ãããã
ããã°ã©ãã³ã°ã§ã¯ãtrapã«é¥ãããšããããŸãã ãããã穎ãäŸãããšãæ·±ã50ã¡ãŒãã«ã§ãäžããéãéæ¿ã§èŠãããŠããŸãã
ããªãã¯ã©ãæããŸããããã®ãããªç©Žã«ã©ããããæ»åšããŸããïŒ
ãããã誰ããããªããèŠã€ãããŸã§ïŒ
ããããããã¯ããã»ã©å€§ããªåé¡ã§ã¯ãããŸããããã¹ãŠã®ããã°ã©ãã³ã°ãã©ãããããäœèšãªåŽåããããã«æãåºãããšãã§ããŸãã3ã€ã®ããšãç¥ã£ãŠããå¿
èŠããããŸãã
ãã©ããã®ããã°ã©ãã³ã°ã«ã¯é©ãã¹ãããšã1ã€ãããŸããã»ãŒãã¹ãŠã®ãã©ããã¯ãæ£å察ã®2ã€ã®æ¥µç«¯ã®ããããã«å¯Ÿããã³ãããã¡ã³ãã§ãã
ããªãé¿ããããšã¯çãéãæ©ãã§ãããšèšããŸããå·ŠåŽã¯åé¡ã§ãããå³åŽã¯ããã解決ããæ¹æ³ã§ãããäžæ¡çã«è³ããŸãã
ããŠããšã«ãã誰ã玹ä»ãèªãã§ããªãã®ã§ãè¡ããŸãããïŒ
ãã©ããïŒ1ïŒæé©å

Knutãæžããããã«ãææå°æ©ã®æé©åã¯ãã¹ãŠã®æªã®æ ¹æºã§ãã å€ãã®äººããã®ã«ãŒã«ãç¥ã£ãŠãããåŸããªã人ãããã°ã絶察ã«åŒãäžãã人ãããŸãããé
ããæé©åãããã«æªãããšãç¥ã£ãŠãã人ã¯ã»ãšãã©ããŸããïŒ
æé©åã«éäžãããã
å€ãã®å Žåããªãªã³ããã¯ã®ããã«ãã®ã¿ã€ãã®ããã°ã©ããŒã¯çœªãç¯ããŸãã 广çãªã¢ã«ãŽãªãºã ãŸãã¯ããã»ããµã®å
éšæ§é ã®ç¥èã¯ãã³ãŒããå¯èœãªéãå¹ççã§ããã¹ãã ãšèããããŸãã
å®éã«ã¯ãæé©åã«ã¯æéãããããããã³ãŒãã¯å®å
šã«ãµããŒãããããæ¡åŒµæ§ããªãããšã©ãŒèæ§ããããŸãã
éã蟌ããããŠããå
å
â¢è¿
éã§ãªãœãŒã¹ã®ãªãã³ãŒããããã«æžã蟌ãããšãã詊ã¿
â¢ä»ã®ææšãæãªãããã«ãã³ãŒããããã¹ãŠãçµãåºããããšããæ¬²æ±
â¢OïŒn ^ {2}ïŒã®ä»£ããã«OïŒnïŒã䜿çšãããã2ãä¹ç®ãããã¹ãŠã®æŒç®ããããåäœã®ã·ããã«çœ®ãæãããšãããã°ã©ã ããã£ã³ãã£ãŒã«ãªã
æé©åãã©ãŒã«ã¹ãäœãããŸã
ãŸã æªå®æã®ãããžã§ã¯ãã®1ã€ãçµããã«è¿ã¥ããŠããŸãã ææå°æ©ãªæé©åã®ãšã©ãŒãåé¿ããããšããŠãæé©åã¯æåŸãŸã§å¿ããããŸãã-æåŸã®ïŒå®å
šã«æ£çŽãªå ŽåãæåŸãã2çªç®ã®ïŒã¹ããŒãžã«ç§»ãããŸããã
ä»ãåå以äžãæºåãã§ãããšããç§ã¯æ°ã¥ãã-1ã€ã®trapãé¿ããããšãããšãç§ã¯å察ã«é¥ã£ãïŒ
ããã©ãŒãã³ã¹ã蚱容ã¬ãã«ãŸã§åäžãããã«ã¯ããããã¡ã€ã©ãŒãæ°åå®è¡ãã颿°ã§åé¢ãããããã€ãã®ã¢ã«ãŽãªãºã ãä¿®æ£ããã ãã§ãªãããã§ã«äœæãããã³ãŒãã®å°ãªããšã3åã®1ãæžãæããå¿
èŠããããŸãïŒ
ãã®ãã©ãããšåŒã°ããŸã-é
å»¶æé©åãäºåã«æé©åã®å¯èœæ§ãæäŸããªãå ŽåãçŸããçè§£ããããã³ãŒãã®å€§éšåãæšãŠãªããã°ãªããªããšããäºå®ã«åããŠãã ããïŒ
éã蟌ããããŠããå
å
â¢æé©åã¯ææå°æ©ã§ãããšããèª å®ãªä¿¡å¿µ
â¢ãããžã§ã¯ãã®æçµéšåãŸã§æé©åãé
ããã
â¢å°æ¥ã®æé©åã®ããã®å°èŠæš¡ãªã¢ãŒããã¯ãã£ãœãªã¥ãŒã·ã§ã³ã®æäŸã®å€±æ
åºå£
â¢ã³ãŒããããã«æé©åããããšããªãã§ãã ãã-å°æ¥ã®æé©åã®æ©äŒãäœæããŠãã ãã
â¢çç±ããªãæé©åãé
ãããªã
â¢ã«ãŒã«20/80ïŒçµæã®80ïŒ
ãäžããã³ãŒãã®20ïŒ
ã«æéãè²»ããïŒã¯ãããããã¡ã€ã©ãŒã䜿çšããŸãïŒ
ãã©ããïŒ2ïŒæœè±¡å

ããã°ã©ãã³ã°ã®æœè±¡åã¯ããããæé«ã®ãã®ã§ãã ãŸãããã€ããªã³ãŒãããããæ¬¡ã«ããã»ããµåœä»€ã®ããŒã¢ããã¯ãåœä»€åããã°ã©ãã³ã°-ç¶æ
ãšæäœïŒã¹ããŒãã¡ã³ãïŒãæ§é ãæç¶ãåãã¢ãžã¥ã©ãŒããªããžã§ã¯ãæåã颿°åããã°ã©ãã³ã°ããããŸããã
gotoã䜿çšããŠã«ãŒããæŽçããå¿
èŠãããããšãæ³åããŠãã ããã
ïŒåçåä»ããšãã³ãã¬ãŒã/ãžã§ããªãã¯ãå©çšãã代ããã«ïŒããŒã¿ã®ã¿ã€ãã®ã¿ãç°ãªãåã颿°ãäœæããå¿
èŠãããããšãæ³åããŠãã ããã
ã³ã¬ã¯ã·ã§ã³ãååŸããŠãµã€ãºå€æŽããããšã¯ã§ããªãããšãæ³åããŠãã ãããæ°ããã¡ã¢ãªãå²ãåœãŠãããã«å€ãã³ã¬ã¯ã·ã§ã³ãã³ããŒããæ°ããèŠçŽ ã远å ããŠãæªäœ¿çšã®ã¡ã¢ãªãè§£æŸããå¿
èŠããããŸãã
é床ã®è€éã
ç¹°ãè¿ããŸãããç§ãã¡ã¯äžçã®ãã¹ãŠãæœè±¡åãã詊ã¿ãäžæ¡çã®ãã€ã³ãã«ããããããtrapããå§ããŸãã
20ã®ã¯ã©ã¹ãç©ã¿äžãã12ã®ç°ãªããã¿ãŒã³ã䜿çšããDSLãå®è£
ããŠå¥ã®DSLãè§£æãã埪ç°ã°ã©ããèŠèŠåããŠå¥ã®ãããªã¹ãäœæããã¯ãã¹ãã©ãããã©ãŒã ãã¬ãŒã ã¯ãŒã¯ãäœæããŸããããã¯ãæœè±¡åã®ãã£ã³ããªã³ãã§ãã
éã蟌ããããŠããå
å
â¢åºæ¬æ©èœãå®è£
ããåã«ãŠãããŒãµã«ãã¬ãŒã ã¯ãŒã¯ãäœæããŸããããã«ãäœæããã³ãŒãã®30ïŒ
ã®åŒ·åºŠã§äœ¿çšãããŸãã
â¢åé¡ã解決ããæåã®æ¹æ³ã¯ãäœããã®ãã¿ãŒã³ã䜿çšããããšã§ãããšãã信念
â¢æãäžè¬åããããã®ãæžããäžçã®ãã¹ãŠãåãå
¥ããæ©èœã䜿çšãããªãå Žåã§ããç¹æ®ãªå€ã§ã¯ãªãã颿°ã®å
¥åå€ã«å¯ŸããŠæ£ããçµæãäžãã
ç¡éãžã®åçŽå
ãæœè±¡åã®ãã£ã³ããªã³ãã®å
åã¯ãçµéšè±å¯ãªããã°ã©ããŒã®éã§ããäžè¬çã§ãã æœè±¡åãç¡èŠããã®ã¯åå¿è
åãã§ãã æé«ã®ãã®ã¯ããããã®äž¡æ¥µç«¯ã®ã©ããã§åã³ãã©ã³ã¹ãåã£ãŠããŸãã
åå¿è
ã¯å€ãã®å Žåãããã°ã©ãã³ã°å
šè¬ããã³ç¹ã«äœ¿çšããèšèªã®æœè±¡åããŸã ããããªãããšããããããŸãã ãã®ããã圌ãã¯å€ãã®å Žåã衚çŸåã«æ¬ ããã³ãŒããäœæããŸããçµã¿èŸŒã¿ã®èšèªããŒã«ãŸãã¯ãµãŒãããŒãã£ã®ã©ã€ãã©ãª/ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠæžãæããããšãã§ããããçããããçè§£ãããããã»ãšãã©ã®å Žåãããå¹ççã§ãã
éã蟌ããããŠããå
å
ãã®ã¢ã€ãã ã®å Žåãå
±éã®æ©èœãéžæããã®ã¯ããªãå°é£ã§ãããã¹ãŠã®æ©èœã¯ãèšèªãã¿ã¹ã¯ãããã³ãã®ä»ã®å€ãã®èŠå ã«äŸåããŸãããããã§ããªãïŒ
â¢ã³ãŒãã客芳çã«æ¹åã§ããæœè±¡åãç¡èŠããŸãïŒããšãã°ãC ++ã®ã€ãã¬ãŒã¿ãHaskellã®ã¢ããïŒæå³ã®ããã¢ããã®èšè¿°ãæåŠããããšãæå³ããŸãïŒãPythonã®ãžã§ãã¬ãŒã¿ãJavaã®ã€ã³ã¿ãŒãã§ã€ã¹ãªã©ïŒ
â¢æ°ããããã°ã©ãã³ã°èšèªãžã®åãæ¿ãæ-æœè±¡æŠå¿µãåŠã¶ããšãæåŠããŸããããããªããã°è¯ãçæŽ»ã ã£ãã®ã§ïŒäŸãCããC ++ã«åãæ¿ããå Žå-ã€ãã¬ãŒã¿ãåŠã¶ããšãæåŠãããåœä»€åèšèªããHaskellã«åãæ¿ããå Žå-æåŠããïŒã¢ããã®åŠç¿ããïŒ
â¢å®éã«äœ¿çšããŠããªãèšèªã®æ©èœã¯äžèŠã§ãããšãã信念ïŒC ++ããã°ã©ãã«ã¯é©çšãããŸããããã¡ããããžã§ãŒã¯ã¯ãããŸããããããããžã§ãŒã¯ã§ç¥ãããŠããããã«...ïŒ
åºå£
â¢æœè±¡åã«æœè±¡åã䜿çšããªãã§ãã ããã
â¢ããç¥ãããã¢ã¯ã»ã¹å¯èœãªæœè±¡æŠå¿µãå±ããå Žæã§ã¯äœ¿çšããå Žæããªãå Žæã§ã¯äœ¿çšããªã
â¢ããã°ã©ãã³ã°èšèªãæäŸããæœè±¡åãåŠã¶
â¢æ©èœãå®è£
ããåã«ãæ¬åœã«å¿
èŠãã©ãããèããŸãïŒYAGNIååïŒ
â¢å€ãã®æå€±ãªãã«æœè±¡åãªãã§å®è¡ã§ããå Žå-ããããªãã§å®è¡ããïŒKISSååïŒ
ãã©ãã3ïŒå®ç§äž»çŸ©

ãããããã³ãŒããåãåã£ãŠæžãã ãã®ããšãããŸãã«ãããç¥ã£ãŠããéçºè
ã®éã§æã人æ°ã®ãããã©ããã§ãããã ããã«é¢ãããã°ãããå°ããªèšäºããã®ãããã¯ã«é¢ããŠæè¿å
¬éãããŸãããèšäºãžã®ãªã³ã¯ã¯èšäºã®æåŸã«ãããŸãã
åè¶æ§ãç®æããŠ
ç§ã®åã«ãã®ãããã¯ã«é¢ãããã¹ãŠãåãŸããŸããããäžè²«æ§ãä¿ã¡ããã®ã§ã骚ã«ãã£ãŠãã®ãã©ãããåæããŸãã
éã蟌ããããŠããå
å
â¢ã³ãŒãã®äž»ãªãã®ã¯çŸãããèªã¿ããããä¿å®æ§ã§ãããšãã信念
â¢èš±å®¹å¯èœãªã³ãŒãã®ç¶ç¶çãªãªãã¡ã¯ã¿ãªã³ã°ãšæžãæã
â¢ã³ãŒãå
ã®æ¬ é¥ãæ€çŽ¢ãã
â¢åççãªæéå
ã«å®ç§ãªã³ãŒããæžãããšãã§ãããšãã信念
â¢çްéšãžã®æ³šæã®åäž
â¢å¯èœãªéãæé«ã®çµæãéæããããšããŸãã
â¢ãããžã§ã¯ãã®æãåçŽãªéšåã§ãããã¢ãŒããã¯ãã£ãçèãã
ã«ãªã¹ã®é
åã®ãªã¹ããããå®å
šäž»çŸ©ãå±éºãªtrapã§ããããšã¯æããã§ããå®å
šã«æŸæ£ããããšã¯ã§ããŸããïŒ
ãããããã³ãŒãã®çŽåºŠãå®å
šã«ç¡èŠããŠããªãã¡ã¯ã¿ãªã³ã°ãæåŠããæ¹å€çæèãç¡å¹ã«ããæ¹ã絶察å®å
šäž»çŸ©ãããåªããŠããã§ãããïŒçµå±ã®ãšãããæªãçµæã¯çµæã§ããã絶察å®å
šäž»çŸ©è
ã¯æžãããã³ãŒããæšãŠãã ãã§ãïŒãããã§ã¯ãã©ã³ã¹ãéèŠã§ãã
ãããã£ãŠãåè¶æ§ã®è¿œæ±ãå®å
šã«æåŠãããšããŸã£ããå察ã®trapã«é¥ããŸãã
éã蟌ããããŠããå
å
â¢ã³ãŒãã®èªã¿ããããšæ¡åŒµæ§ã¯éèŠã§ã¯ãªããšããèã
â¢ç¹ã«ã³ãŒãã«é¢é£ããæ¹å€çæèã®æ¬ åŠ
â¢æäœéã®åãå
¥ãå¯èœãªçµæã§ããæºè¶³ã§ããããŸãã¯ãŸã£ããåãå
¥ããããªã
â¢ãªãã¡ã¯ã¿ãªã³ã°ã®å®å
šãªæåŠ
â¢ã¢ãŒããã¯ãã£ã®è€éãªéšåã«ã€ããŠèããããšãæåŠ
â¢ãããžã§ã¯ããŸãã¯ãããžã§ã¯ãã®äžéšãæåããæžãæããæ©èœãåãå
¥ããããªã
åºå£
ãã€ãã®ããã«éäžã§ïŒ
â¢ã³ãŒãã®çŸãããšçµæã®éæãéèŠã§ããã2çªç®ã®ã³ãŒããããã«éèŠã§ããããšãåãå
¥ãã
â¢æåŸã®ææ®µãšããŠãŒãããæžãçŽãããšãæ€èšããŸãããå¿
èŠãªå Žåãããããšãåãå
¥ããŸãã
â¢ãªãã¡ã¯ã¿ãªã³ã°ã«è²»ããããšãã§ããæå€§æéãèš±å¯ããŸãã äœæ¥æéå
šäœã®20ã50ãããã«ã¯80ïŒ
ã§ããå¯èœæ§ããããŸããäž»ãªããšã¯ããããè¶
ããªãããšã§ãã
â¢æ¬ é¥ãçºèŠãããããããä¿®æ£ããã®ã«æéãè²»ããã®ã«åå匷ããã©ãããæ€èšããŸãã
â¢20/80ã«ãŒã«ã䜿çšãã-æåã«ãçµæã®80ïŒ
ãããããäœæ¥ã®20ïŒ
ãå®è¡ããŠã¿ãŠãã ããã
ãããã®ãã³ãããããããã¹ã¯ã®äººã
ã®å®ç§äž»çŸ©ã®trapããæãåºãã®ã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã ãããã®ãã¹ãŠã¯ããã®ç
æ°ã«å¯ŸåŠããèŠãçµéšãââéããŠçè§£ãããç§ãããã°ã©ãã³ã°ãããŠãããã¹ãŠã®æéã®éæåéãèŠãã¿ãŸããã
ãã©ããïŒ4ïŒãã¯ãããžãŒãšããŒã«

ããã°ã©ãã³ã°ã¯æ¢ãŸããŸãããä»ã§ã¯ãããªããèªç±ã«äœ¿ããããŒã«ãšã©ã€ãã©ãªããããããããããªãã®ããã«ãã¹ãŠã®ä»äºãããªããã°ãééããªãç°¡åã«ãªããŸãã
ãã ããé »ç¹ã«äœ¿çšãããããšããŸãã«ãã䜿çšãããªãããšããããŸãã æåã®ã±ãŒã¹ããå§ããŸãããã
æ azine
ãã¡ããããã§ã«äœæãããã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ãããã³ããŒã«ã®äœ¿çšã¯ãæ ã®åççãªçŸãã«ãããŸããããæã«ã¯åæã§ãããè¡ãéãã§ãã
Hello Worldãäœæããéã«ãããŒã¹ããQtãåæã«æ¥ç¶ããSTLãç©æ¥µçã«äœ¿çšããããšã¯è¯ãèãã§ã¯ãããŸããããæã
åæ§ã®ããšãèµ·ãããããã¯å¥ã®trapã§ãã
éã蟌ããããŠããå
å
â¢Mersen Whirlwindã®ããã«ã30 MB以äžã®ã©ã€ãã©ãªãæ¥ç¶ãã
â¢å¿
èŠãªãã®ã¯ãã¹ãŠãã§ã«æžãããŠãããšãã信念
â¢èªè»¢è»ã®æ¹ãè¯ããããããªãããšãåãå
¥ããªã
â¢IDEã§èªåè£å®ãªãã«ã³ãŒãã®è¡ãšè¡ãæžãããšãã§ããªã
â¢äœæ¥ã®ååãçè§£ããããšãªããããŒã«ãç©æ¥µçã«äœ¿çšããã ããšãã°ãGUIããžã¥ã¢ã«ç·šéããŒã«ïŒQt CreatorãCodeGear Rad StudioãMS Visual Studioãªã©ïŒãé »ç¹ã«äœ¿çšããåæã«ããã€ã¹ã®ææ¡ãæåŠãã
ä»äºäžæ¯
ããã¯ããã¹ãŠã®ããŒã«ãšã©ã€ãã©ãªã®äœ¿çšãæŸæ£ããnanoïŒãŸãã¯ããã«æªãããšã«-ããã«ã¹ã§ïŒã®ãã€ã¯ã§è£žã®ã³ãŒããæžãããšãä¿ãããšãçã«ä¿ãããšãæå³ããŸããïŒ
ãŸã£ãããããŸããã ããã©ããããããªããèŠãããã«ãããã°ã©ã ã«ããç¶æ¿ãå®å
šã«ç¡èŠããããšã¯ããã«æªãæªã§ãã ãããŠãããããããã°ã©ãã«ãšã£ãŠæãå±éºãªtrapã§ãã
éã蟌ããããŠããå
å
â¢æ£åœãªçç±ãªãã«ããŸããŸãå€ãã®èªè»¢è»ã宿çã«æžãã
â¢èšèªãšæšæºã©ã€ãã©ãªã®æ©èœããã¹ãŠã«ååã§ããã¹ãã ãšãã信念
â¢ãªãŒãã³ã³ããªãŒãïŒSublime Textã§ã¯ãªããIDEã§ã®ããã«ïŒã硬åè¬ã§ãããšãã信念
â¢å·šå€§ã§ã¯ãããŸãããæ¢åã®é¡äŒŒç©ã«æ©èœçã«ãè¿ãç¬èªã®ã©ã€ãã©ãªãäœæãã
â¢èªåã®ã³ãŒããã©ã®ããã«æ©èœããããçè§£ããŠããªã人ã«ã¯ããããã¬ãŒãšãããã¡ã€ã©ãŒãå¿
èŠã§ãããšããã¹ããŒãã¡ã³ã
åºå£
â¢äœ¿çšå¯èœãªããŒã«ãç¥ã£ãŠãã ããããã ããã©ãã§ã䜿çšããªãã§ãã ããã
â¢ãµãŒãããŒãã£ã®ã©ã€ãã©ãªã䜿çšããããèªè»¢è»ãæžãããéžæããåã«ãé·æãšçæãæ
éã«æ€èšããŠãã ããã
â¢ææ°ã®ããŒã«ã䜿çšããŠçç£æ§ãåäžãããåæã«ãããã«äŸåããªãã§ãã ãã
â¢ãã¬ãŒãã³ã°/ãã¹ããããžã§ã¯ãã§ãããã®ã«ãŒã«ã«äŸå€ãèšããããšãã§ããããšãåãå
¥ããŸãã
ãã©ãã5ïŒãŽãŒã«ãã³ãã³ããŒ

ãã©ãããã£ãŒãã®ãã1ã€ã®ãã€ã³ãã¯ãéè²ã®ãã³ããŒã§ãã
ãŽãŒã«ãã³ãã³ããŒã¯æªãç¿æ
£ã§ãã ããã€ãã®åé¡ã解決ãããšãã«ã¡ãœãããæ©èœããåŸãéã蟌ãããã人ã¯å¯èœãªéããã®ã¡ãœããã䜿çšãå§ããŸãïŒ
åæ§ã®çšèªãããã€ããããŸã-äžèœè¬ãéæ³ã®è¬ãéã®åŒŸäžžãã€ãŸã åžžã«ã100ïŒ
ã®å Žåãä»»æã®ã¿ã¹ã¯ãå®è¡ããã¡ãœããã ãã®ãããã¯ã®å¥ã®ããšããã¯ãé¡åŸ®é¡ã§éãæã€ããšã§ãã
ãŽãŒã«ãã³ãã³ããŒã¯ããªãäžè¬çã§ãããä»ã®ãã©ãããšã¯ãŸã£ããç°ãªããŸãã ã©ããªãã®ã§ãé»éã®ãã³ããŒã«ãªãããšãã§ãã誰ããOOPã«å€¢äžã«ãªãããã¹ãŠã®äººããã¶ã€ã³ãã¿ãŒã³ã®èª°ãã®ããã«ã¯ã©ã¹ãæžããå·¥å Žãšã·ã³ã°ã«ããŒã³ã®ã¿ããããã°ã©ã ãæ§ç¯ã§ããŸãã
ãã人ã«ãšã£ãŠã¯ãé»éã®ãã³ããŒã¯ãæ°ã«å
¥ãã®ããã°ã©ãã³ã°èšèªã§ããããã人ã«ãšã£ãŠã¯ãæ°ã«å
¥ãã®ãã©ãã€ã ã§ããããã人ã«ãšã£ãŠã¯éçºæ¹æ³è«ã§ãã
éè²ã®ãã³ããŒãåºå¥ããäž»ãªããšã¯ããã€ã§ãã©ãã§ãããã䜿çšãã詊ã¿ã§ãã
éã蟌ããããŠããå
å
â¢ãã¹ãŠã®ã¿ã¹ã¯ã«1ã€ã®ããã°ã©ãã³ã°èšèªã䜿çšãã
â¢1ã€ã®ãã©ãã€ã ã§ãã¹ãŠã®ããã°ã©ãã³ã°ã®åé¡ã解決ã§ãããšãã信念ïŒã»ãšãã©ã®å ŽåãOOPãšFPã«ã€ããŠã®ããšãèšãïŒ
â¢1ã€ã®éçºæ¹æ³è«ã®æ¡ä»¶ã«é¢ä¿ãªãããã¹ãŠã®ãããžã§ã¯ãã§äœ¿çšã§ããŸããããšãã°ããã¹ãŠã®ãããžã§ã¯ãã§TDDã軜çã«äœ¿çšã§ããŸã
â¢ã»ãšãã©ã®ã¿ã¹ã¯ã®ããã«ãèšèªãæäŸããããŒã«ã®äœ¿çšãããšãã°ïŒ
-ãã¹ãŠã®åŒæ°ã宿°ãªã³ã¯ã®ã¿ã§æž¡ã
-ããã°ã©ã å
šäœã§1çš®é¡ã®ã³ã¬ã¯ã·ã§ã³ã®ã¿ã䜿çšããå Žåãããšãã°é
åïŒãã¯ãã«ïŒ
-ã©ãã§ãè§Šç¥ã§ããªããªããžã§ã¯ãã®äœ¿çš
-åæ§ã®æ§æèšèªïŒJavaãCãªã©ïŒã§äœ¿çšãã
åãã€ã³ãã³ãã¹ã¿ã€ã«ãšãšã³ãã£ãã£ã®åœåæ¹æ³
ç¹å¹è¬ã¯ååšããŸãã
ãã®ãã©ããã¯ã«ãŒã«ã®äŸå€ã§ãããå¥ã®ãã©ããã«é¥ãå±éºãåãããšãªããããåé¿ããããšãå¯èœã ãšæããŸãã
ç§ãåã³æ°ä»ãããã¿ãŒã³ã®ãã®äŸå€ã¯ãéè²ã®ãã³ããŒãååšããªãããšã蚌æããŠããŸã-ãã©ãããäºéå®äœãšããŠèª€è§£ãããšèª¬æããç§ã®æ¹æ³ã§ããã䜿çšãæåŠããããšãæããŠããŸããã
ããã¯ããã®trapããèªåãè§£æŸããæ£ããæ¹æ³ã§ãã
åºå£
â¢ããã°ã©ãã³ã°èšèªã1ã€ããããããªãå Žå-ãã1ã€ãŸãã¯2ã€ïŒãããããã以äžã§ãããåççãªç¯å²å
ã§ïŒ
â¢ããã€ãã®ããã°ã©ãã³ã°èšèªãç¥ã£ãŠããããæãããªãæ°ã«å
¥ããããå Žåã¯ãä»ã®èšèªãããé »ç¹ã«äœ¿çšããŠã¿ãŠãã ãã
â¢åœä»€åããã°ã©ãã³ã°ãŸãã¯ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã®ã¿ã«æºæ ããŠããã°ã©ãã³ã°ããå Žåã¯ãæ©èœçãª
â¢åžžã«1ã€ã®éçºæ¹æ³è«ã䜿çšããŠããå Žåã¯ãäœãæ°ããããšã詊ããŠãã ããã
â¢æ
£æ§ã«é¢ããæ±ºå®ãäžãåã«ïŒãããŠéhammerã䜿çšããåã«ïŒ-å¯èœãªä»£æ¿ãœãªã¥ãŒã·ã§ã³ãèããŠãã ãã
ãã©ããïŒ6ïŒã¯ãã¹ãã©ãããã©ãŒã

ã¯ãã¹ãã©ãããã©ãŒã ã¢ããªã±ãŒã·ã§ã³ãšã¯ãè€æ°ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãè€æ°ã®ãã©ãããã©ãŒã ã§å®è¡ãããã¢ããªã±ãŒã·ã§ã³ã§ãã
ãããŠãããã§ã2ã€ã®æ¥µç«¯ããããŸã-äžéšã®éçºè
ã¯ããã¹ãŠã®å¯èœãªOSã§åäœããPCãã¿ãã¬ãããã¹ããŒããã©ã³ã«çããé©ããŠããããã«ã¢ããªã±ãŒã·ã§ã³ãäœæããããšããŠããŸãã
ã¿ããªãšã¿ããªã®ããã«
å€ãã®å Žåã人ã
ã¯ä¿¡ããããªãã»ã©ã®ã¯ãã¹ãã©ãããã©ãŒã ãéæããããšèããŠããŸãã
ãã®çµæãã¢ããªã±ãŒã·ã§ã³ã¯ã©ã®OSã§ãå®å
šã«æ£ããåäœãããPCãã¿ãã¬ãããã¹ããŒããã©ã³ã§äœ¿çšããã®ãåæ§ã«äžäŸ¿ã§ãã
ãããã¯ãéå°ãªã¯ãã¹ãã©ãããã©ãŒã ã«éã蟌ããããŠããŸãïŒ
éã蟌ããããŠããå
å
â¢å€æŽããããšãªãããã¹ãŠã®ã¿ãŒã²ãããã©ãããã©ãŒã ã§èš±å®¹å¯èœãªçµæãââçæããã³ãŒããäœæã§ãããšèãã
â¢ç§»æ€ãã³ãŒãã®å°ãªããšãäžéšã®å€æŽãæãŸãã«ãã§ããã ãå€ãã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšãã©ãããã©ãŒã ãã«ããŒããããšãã
â¢1ã€ã®ãã©ãããã©ãŒã ã®ã¿ã察象ãšããã³ãŒããå«ã
Win32ã®ã¿ããããŸã
ãããŠãã®é-äžéšã®ããã°ã©ããŒã¯ãäœæè
ãšåãOSã§ã®ã¿åäœãããœãããŠã§ã¢ãäœæããŸããããã«ããŸã£ããåãããŠã¹ãããŒããŒããä»®æ³çŸå®ãã«ã¡ãããå¿
èŠã§ãã
å€ãã®å Žåããã®çç±ã¯ãããã°ã©ãã䜿çšããŠãããã®ä»¥å€ã«ä»ã®OSããã©ãããã©ãŒã ããããšããäºå®ãèããŠããªãããã§ãã
éã蟌ããããŠããå
å
â¢åã¿ãŒã²ããOS /ãã©ãããã©ãŒã ã®ãã¹ãŠïŒãŸãã¯ã»ãšãã©ïŒã®ã¢ããªã±ãŒã·ã§ã³ã³ãŒãã®æžãæã
â¢ãããåé¿ã§ãããæå³çã«ç§»æ€ãå°é£ãªã³ãŒããèšè¿°ãã
â¢ã«ã¹ã¿ã ã³ã³ãã€ã©/ã€ã³ã¿ããªã¿æ¡åŒµæ©èœã®äœ¿çš
åºå£
â¢ã¿ãŒã²ããOS /ãã©ãããã©ãŒã ãæ
éã«èå¥ãã
â¢äžéšã®OS /ãã©ãããã©ãŒã ã§ã¯ãã³ãŒãã®äžéšã倿ŽãããããŒãããå¥ã®ããŒãžã§ã³ãäœæããå¿
èŠããããšããäºå®ã«åããŠãã ãã
â¢æ
æã«ã³ãŒãã1ã€ã®ãã©ãããã©ãŒã ã«ãã€ã³ãããªãã§ãã ãã
â¢ããã«ããéçºãå°é£ã«ãªãå Žåã¯ãè€æ°ã®ãã©ãããã©ãŒã ã«ãŸãããããã«ããŠãã ãã
ãã©ããïŒ7ïŒé²è¡

ïŒãªãã§ïŒé²åŸ¡çããã°ã©ãã³ã°ã¯ãããªãèªèº«ïŒçŸåšãŸãã¯éå»ïŒãèŠãå¯èœæ§ã®ãããã1ã€ã®çŽ æŽããããã©ããã§ãã
ç¡é²åãªããã°ã©ãã³ã°
ç¡é²åãªããã°ã©ãã³ã°ã¯ãé²åŸ¡çãªããã°ã©ãã³ã°ã®å®è·µã®å察ã§ãã颿°ã«ã¯åžžã«æ£ããåŒæ°ãæž¡ããããå¯äœçšããªãããŸãã¯ã³ãŒãã®æäœã«åœ±é¿ãäžããªãããã€ã³ã¿ãŒãnullã«ãªããªããªã©ãšèããããŠããŸãã
å Žåã«ãã£ãŠã¯ãã³ãŒããå€ãã®ãã§ãã¯ããè§£æŸãããããšããããŸããããã®ãããªã³ãŒãã®ãããã°ã¯å€§å€ã§ãã ããããã©ããã§ããçç±ã§ãã
éã蟌ããããŠããå
å
â¢ãã£ã¢ã¬ã¹ãã¹ãªãŒããŒãããŒããŒãé€ç®ããã³äžžã誀差
â¢æšæºããã³ã©ã€ãã©ãªé¢æ°/ã¯ã©ã¹ã®çµ¶å¯Ÿçãªäžç¢ºå®æ§ã«å¯Ÿãã信念
â¢ãŠãŒã¶ãŒãå
¥åãããšãã«ééããç¯ããªããšãã信念
â¢èšæ¶ã¯æ±ºããŠçµãããªããšãã信念
â¢ã¢ããªã±ãŒã·ã§ã³ã«å¿
èŠãªãã¹ãŠã®æ§æãã¡ã€ã«ãååšããåžžã«ãããã«ã¢ã¯ã»ã¹ã§ãããšãã信念
é²è¡çããã°ã©ãã³ã°
ã¢ããªã±ãŒã·ã§ã³ã®æããã«åäœããéšåãå颿°å
ã®15åã®ASSERTãç¬èªã®äŸå€ã©ã€ãã©ãªããã®ã³ã°ãããããªéžè±ã§ã¢ããªã±ãŒã·ã§ã³ãããããããããšããæ°çŸäžã®ãã¹ãã
ããã¯ã³ã€ã³ã®è£åŽã§ã-é²åŸ¡çãªããã°ã©ãã³ã°ã®trapã§ãã
éã蟌ããããŠããå
å
â¢ãããžã§ã¯ãã®åæ©èœã¯ãã¢ãµãŒã·ã§ã³ã®ããã¯ãŸãã¯äŸå€ã®çºçã§å§ãŸããŸã
â¢ãã¹ãã¯ããµãŒãããŒãã£ã©ã€ãã©ãªãå«ããã¹ãŠã®ã³ãŒããå®å
šã«ã«ããŒããŸãã
â¢ãããžã§ã¯ãã«ã¯ãç¬èªã®ã¯ã©ã¹MyProjectExceptionãšãå°ãªããšã10ã®åå«ã®è€éãªéå±€ãããããã®æå³ã¯ã誀ã£ã颿°åŒæ°ã®ã¬ããŒãã«éå®ãããŸãã
â¢ã¢ããªã±ãŒã·ã§ã³ã§çºçããã»ãšãã©ãã¹ãŠã®ãã°
â¢ããããªéžè±ã§ãåãå
¥ããããªãããããšã©ãŒã¡ãã»ãŒãžã衚瀺ããŠã¢ããªã±ãŒã·ã§ã³ãããããããå®å
šãªã¡ã¢ãªãã³ããå«ããã°ã¬ããŒããèªåçã«éä¿¡ããå¿
èŠããããŸãã
åºå£
â¢ãã§ãã¯ãã䟡å€ããããã®ãšããã§ãªããã®ã«ã€ããŠæ
éã«æ€èšããŸãã
â¢ãŠãŒã¶ãŒå
¥åãšå€éšãªãœãŒã¹ã確èªãããšãã¯ãç¹ã«æ³šæããŠãã ããã
â¢å¯èœãªéãæšæºã®äŸå€ã¯ã©ã¹ã䜿çšããããã«ããŠãã ããã
â¢ãã¹ãŠããã§ãã¯ããããšããªãã§ãã ãã
â¢é倧ãªãšã©ãŒããã€ããŒãªãšã©ãŒããåé¢ããæ¬åœã«æªãããšãèµ·ãããªããŠãã¢ããªã±ãŒã·ã§ã³ãåäœãç¶ããããã«ãã
â¢æãéèŠãªããŒã¿ã®ã¿ããã°ã«èšé²ãããã°ã¬ããŒããéä¿¡ããæ§ãããªæ©èœãå®è£
ãã
ãã©ããïŒ8ïŒã¹ããŒãº

ãã®åé¡ã®ãã©ã³ã¹ãèŠã€ããã®ã¯éåžžã«é£ããããããã©ããã¯éåžžã«è峿·±ããã®ã§ãã
ãã©ããã®æ¬è³ªã¯ãããçš®ã®æ©èœãå®è£
ããããšãå€ãããšã§ããTODOãHACKããã®ä»ããã€ãã®ã¡ã¢ãä»ããŸãã
ãããã®ã¿ã¹ã¯ã®å®çŸã¯èªåã§å»¶æãããTODOãèŠããŠãã人ã¯ãã£ãã«ãªããé·ãéæªå®æã®ãŸãŸã§ãã
éã蟌ããããŠããå
å
â¢ãããžã§ã¯ãå
ã®å€æ°ã®TODOããã³HACKããŒã¯ãšãã®æ°ã¯æžå°ããŸãã
â¢ã³ãŒãã¬ãã¥ãŒã¯ãæ°ããTODOãšWTFã®é
眮ãé€ããŠãçµæããããããŸããã
â¢ã¿ã¹ã¯ã«éæ¥çã«é¢é£ããŠïŒTODOãé¢ãã代ããã«ïŒå®è£
ããããæ€åºããããšã©ãŒãä¿®æ£ããïŒFIXãŸãã¯HACKãé¢ãã代ããã«ïŒããã«ã¿ã¹ã¯ããå°ã泚æããããããšãã§ããªã
ãã«ãã¿ã¹ã¯ããã°ã©ããŒ
ãããžã§ã¯ãã®äžéšã®å®è£
äžã«ãçŽæ¥é¢é£ããŠããŠãïŒããšãã°ããTODOïŒcheck argument to nullããšããããŒã¯ãæ®ãã®ã§ã¯ãªããäŸå€ã¯ã©ã¹ãèšè¿°ããŠç Žæ£ãããªã©ïŒãå®è£
äžã«åãæ¿ããããšãã§ããªãããã°ã©ããããŸãã
éã«ããããè¡ãããšãã§ããããã°ã©ããŒãããŸãããç§ã¯ãã®ãããªãã«ãã¿ã¹ã¯ããã°ã©ããŒãšåŒãã§ããŸãããåé¡ã¯å®éã®ãã«ãã¿ã¹ã¯åŠçããªããå®éãããã¿ã¹ã¯ããå¥ã®ã¿ã¹ã¯ã«ããã«åãæ¿ããããšã§ãã
ããã«ã¯ãã©ã¹ããããŸã-TODOãšHACKã¯ã³ãŒãã«èšå®ãããŠããŸããããããã«ä¿®æ£ãããå¥ã®ã³ãŒãã§èŠã€ãã£ããšã©ãŒã¯æé€ãããŸãã
ãããŠããã€ãã®ããã«ãããã¯ç¡æã§æäŸãããŸããããã®çµæãé »ç¹ã«åãæ¿ãããããããã°ã©ããŒã¯æåã®ã¿ã¹ã¯ãå¿ããããå®äºããæéããªãå Žåããããåã³æ»ã£ããšããã©ã®æ¹åã«ç§»åããŠãããèŠããŠããŸããã
ãããžã§ã¯ãã®ããŸããŸãªéšåããã°ããé »ç¹ã«åãæ¿ããå Žåã¯ãæªããã¥ãŒã¹ããããŸãã
éã蟌ããããŠããå
å
â¢åŸã§ã¿ã¹ã¯ã«éäžããããã«åäžã®TODOãæ®ããªã
â¢é »ç¹ã«åãæ¿ããããã1ã€ã®æ©èœã®å®è£
ãéå§ãããšã代ããã«2ã€ã®å®å
šã«ç¡é¢ä¿ãªæ©èœãå®è£
ãã
â¢ãã¢ã§ããã°ã©ã ããå ŽåãããŒãããŒã¯ããªãã®èãã远跡ã§ããŸãã
åºå£
â¢ã¿ã¹ã¯ãå»¶æããŠTODOãèšå®ããåã«ãã¿ã¹ã¯ãè¿
éã«å®è£
ããæ¹æ³ãæ€èšããŸã
â¢ã¡ã€ã³ã¿ã¹ã¯ããæ°ãæ£ããããšãæããªãã§ãã ãããããããããŸãã«ãé »ç¹ã«ããããŠé·æéå®è¡ããªãã§ãã ããã
â¢ã³ãŒããæ€æ»ããããã«èŠã€ãã£ããšã©ãŒãä¿®æ£ãã
â¢çŸåšã®ã¿ã¹ã¯ã«é¢ä¿ã®ãªãå€§èŠæš¡ãªæ©èœãå»¶æãã-TODOãæ®ã
â¢ãã¢ã§ããã°ã©ãã³ã°ããå Žåã¯ãåãæ¿ãããŸã£ããè¡ãããç¡é¢ä¿ãªã¿ã¹ã¯ããã¹ãŠå
éããã
åç
§è³æ
â¢
AlenaC ++ïŒææå°æ©ã®æé©åã«é¢ããèŠç©ãããå®éã«ææããŠããã®ã¯èª°ã§ããâ¢
WordpresseïŒã»ãã¥ãªãã£ããã°ã©ãã³ã°â¢
HabrahabrïŒé
å»¶æé©åâ¢
HabrahabrïŒããã°ã©ããŒã®ç¡èœãª5ã€ã®æ®µéâ¢
HabrahabrïŒãããã®ç¡æ°ã®ãã©ãã€ã ãæŠå¿µãããŒã«ãããã³ãã¬ãŒã ã¯ãŒã¯â¢
HabrahabrïŒéº»çºè§£æïŒã³ãŒããæžãã ãã§ã¯ç¥èãå€ãããâ¢
HabrahabrïŒçè§£ããªããã°ãªããªã3ã€ã®éèŠãªãœãããŠã§ã¢ååâ¢
HabrahabrïŒã¯ãã¹ãã©ãããã©ãŒã ã¯çŽ æŽãããâ¢
HabrahabrïŒã¯ãã¹ãã©ãããã©ãŒã ã®ããŒããŠã§ã¢ïŒè§£æ±ºçã¯ãããŸããïŒâ¢
HabrahabrïŒã»ãã¥ãªãã£ããã°ã©ãã³ã°â¢
ãŠã£ãããã£ã¢ïŒKISSâ¢
ãŠã£ãããã£ã¢ïŒYAGNYâ¢
ãŠã£ãããã£ã¢ïŒDRYâ¢
ãŠã£ãããã£ã¢ïŒå®å
šäž»çŸ©â¢
ãŠã£ãããã£ã¢ïŒãŽãŒã«ãã³ãã³ããŒâ¢
ãŠã£ãããã£ã¢ïŒå
å»¶ã°ãçµè«ã®ä»£ããã«
ããŒããæ©ããŠé 匵ã£ãŠãã ããïŒ