ååã¯è±èªã®è¬æŒãèããŠã¬ããŒããæžãããã«ã¯ãã©ã®ããã«ããŠnote-takingãããã°ãããã®è©±ãããã®ã§ãä»åã¯å®éã«è©ŠããŠã¿ãããšæããŸããã¬ããŒãäœæã®ããã«èãã®ã¯Neal Gafteræ°ã«ããè¬æŒ"Closures For Java"ã§ããJDK 7ã§è¿œå ãããäºå®ã®Javaã®æ°æ©èœClosuresã«ã€ããŠã®è©±é¡ã§ãèšèªãã®ãã®ã®ä»æ§ãããŒããªã®ã§ãè¥å¹²é£ããå 容ãããããŸãããè¬æŒã¯è³ªçå¿çãŸã§å ¥ãããš115åãããããšãŠãé·ãã®ã§ãæ¬èšäºã§ã¯éäžãŸã§åãäžããããšã«ããŸããã§ã¯ãååã®çè«ç·šãèŠãªãããä»åã®å®è·µç·šã«åãçµãã§ã¿ãŸãããã
ãŸãã¯ãäºåç¥èã身ã«ã€ããŠãããŸããæŠå¿µãçè§£ããŠããã ããªããæ¥æ¬èªã§è§£èª¬ãããŠããèšäºãªã©ã®ã»ããç°¡åã§ããããæ¥æ¬èªã§æ€çŽ¢ããŠãããããªãã®ãæ¢ããšããã§ããããä»ååãäžããClosuresã«ã€ããŠã¯ãã€ãã«Javaã«ãã¯ããŒãžã£? - James Goslingæ°ãJDK7ãžå°å ¥ææ¡ããã¯ãããããã€ãèŠã€ããã¯ããªã®ã§ãã£ãšçºããŠãããšããã§ãããã
è±èªã®è¬æŒã®å Žåã¯ãæ¥æ¬èªã ãã§ã¯ãªãè±èªã®è³æã«ããã²ç®ãéããŠãããŠãã ããããšããã®ã¯ãçšèªãšãã®çºé³ã確èªããŠãããªããšãé£çºãããè±åèªã®äžã«åãããŠããçšèªãèªèã§ããªãããšãããããã§ããä»åã®Closuresã«é¢ããŠã¯ã仿§ãªã©ãå ¬éãããŠããWebãµã€ããé©åœã ãšæããŸãããããã§ç޹ä»ãããŠãããã¹ãŠã®ããã¥ã¡ã³ãã«ç®ãéãæéããªããã°ããã®ãããããŒãžã«è¡šç€ºãããŠããçšèªãé ã«ãããŠããã ãã§ããå 容çè§£ã«åœ¹ç«ã€ã¯ãã§ãã
ã§ã¯ãè¬æŒãèãã¯ãããŸãããå®éã®è¬æŒã§ã¯èãæŒããããã£ãããç¬æã«çè§£ã§ããªãããšããããŸãã®ã§ãå¿ããé²é³ããããã®ã§ãããã ãé²é³ããŠãããããšå®å¿ããã«ãã§ããã ãæå ã®ããŒãã ãã§ã¬ããŒãããããããã«ããå¿æãã倧åã§ããè¬æŒã¯çããŠã30åãããã¯ããã¯ãã§ãããããæåããèãçŽãã®ã¯æéã®ç¡é§ã§ãããã¢ã¯ãã£ãã«èãæ°æã¡ãèããŠçè§£ã®çšåºŠãäœããªã£ãŠããŸããŸããããŒãã®å 容ã®ééããä¿®æ£ããããã«é²é³ãããã®ãèããããã®ã€ãããã¡ããã©ããã®ã§ã¯ãªãã§ããããã
è¬æŒãå§ãŸã£ãããæåã®æŠèŠèª¬æã®éšåã¯ãšãã«ãã£ããèãããã«ããŸããããéåžžãã¹ããŒã«ã¯æåã«ã©ã®ãããªå 容ã®è©±ããããããŸãã¯ã¢ãžã§ã³ããªã©ããå§ããŸããããããããŒããåãå§ãããããã©ããã§ããã®åŸã®note-takingãããŸããããã©ããã圱é¿ãããããã§ããããšãã°ãGafteræ°ã¯"Outline"ãšããã¿ã€ãã«ã®ã¹ã©ã€ãã§æŠèŠã説æããŠããŸãããã®ãããªããŒãžãèŠããšãã«äœè£ããã£ãããããŒãã®1ããŒãžã«1ã€ãã€ã¿ã€ãã«ãæžããŠãããŸããããã£ãŠããã€ããã§ãã話ãèãããšã«éäžããŠããŸããšãã©ãã§è©±ã次ã®ããŒãã«ç§»ã£ãã®ããèŠå€±ããã¡ã§ããè¿·ã£ããšãã«ãããŒãã®1è¡ç®ã«æžããŠãããããŒããèŠãã°ãä»ã©ã®ãããã®è©±ãããŠããã®ãã远ããããããã¯ãã§ããæ®å¿µãªããGafteræ°ã®è¬æŒã§ã¯ããã»ã©æéã«äœè£ã¯ãªãã£ãã®ã§ãæåã®ããŒãžã«ã²ãšãšããæžãçããŠãããŸãã(å³1)ã
ãã1ã€ããã®æŠèŠèª¬æã§æŽãã§ããããã®ãã©ã®ãããªã¿ã€ãã®ã¹ããŒããªã®ãã§ãããããã®èšèã®ã¿ã§ããGafteræ°ã"problem"ãšèšã£ãŠããããšããããã§ãããããã€ãŸãããã®è¬æŒã¯problem-solvingåã®ã¹ããŒãã§ããå¯èœæ§ãé«ãã®ã§ãããšããããšã¯ãåé¡ç¹ãæç€ºãããŠããã®è§£æ±ºçããã£ã¹ã«ãã·ã§ã³ãããã¯ãã§ãããã®ãããªå¿æ§ãã§èããŠãããšãè©±ã®æµããã¡ã€ã³ã¢ã€ãã£ã¢ãæŽã¿ããããªããŸãã
åèãŸã§ã«ãinformativeåã®ã¹ããŒããã©ã®ããã«å§ãŸã£ãŠããããç°¡åã«èŠãŠãããŸãããã"Advanced Python or Understanding Python"ã®ãããªã§ãããè¬æŒãè¡ã£ãŠããThomas Woutersæ°ã¯åé ã§ã"cover basically everything"ãšèšã£ãŠããŸããã€ãŸãããã®ã¹ããŒãã¯æŠèŠçãªå 容ã§ãinformativeåã§ããå¯èœæ§ãé«ããšå€æã§ããŸãããã®å Žåã¯ãã©ã®ãããªç¹åŸŽãããã®ãã«æ³šæãããšã¡ã€ã³ã¢ã€ãã£ã¢ãäœããèŠã€ãããããªããŸãã
è¬æŒãæåã®ããŒãã«ç§»ã£ããããã£ããããŒãããšã£ãŠãããŸãããã¹ããŒã«ã¯äœãç¹åŸŽçãªãã¬ãŒãºã䜿ã£ãŠããã§ãããã? Gafteræ°ã¯"What is/are ...?" "Point is ..." "That's important."ãšãã£ããã¬ãŒãºã䜿ã£ãŠããŸãããããŠãGafteræ°ã®è¬æŒã§ã¯ç¹åŸŽçãª"but"ããããŸãããã®ãããªèšèãåºãŠããããšãã«æ³šæããŠèããŸããããšãã°ãGafteræ°ã¯"Goalsã¯äœã"ãåããããŠã"Control Abstraction APIsã§äœããå¯èœã«ããããšã§ãã"ãšçããŠããŸãããããæåã®ã¡ã€ã³ã¢ã€ãã£ã¢ã«ãªããŸãã
以äžãæåã®ããŒãã«ã€ããŠGafteræ°ã®è¬æŒã®note-takingãè¡ã£ãäŸãå³2ãªã®ã§ãåèã«ããŠãã ãããOutliningã®ããã®æ°åãŸã§ä»ããããšã¯ã§ããŸããã§ããããã€ã³ãã³ããè¡ã£ãããèšèã®ä»£ããã«èšå·ã䜿ã£ãããèªåã«ã¯ãããç¥èšãå©çšããŠããŸããçåç¹ã«ã¯"?"ããŒã¯ãä»ããŸããã
|
|
å³2 ã€ã³ããã¯ã¹ãä»ããããçåç¬Šãæžã蟌ããªã©ãåŸããæŽçããããããã«ããŒããåãããšãæèãã |
ãã®ãããªããŒãããšããšãã¯ã§ããã ãã¹ããŒã¹ã空ããŠãããšããæžã蟌ããããã«ããŠããã®ãnote-takingã®ã³ãã§ããã¬ããŒãäœæã«ããããé²é³ããè¬æŒãå床èãããšããWebãµã€ãã§èª¿ã¹ããšãã«æžã蟌ãããã®ã¹ããŒã¹ãå¿ èŠã§ãããŸããããŒããå€ãã£ããšæã£ããšãã«ã¯æ¬¡ã®çŽã䜿ãããã«ããŠããã®ãã³ãã®1ã€ã§ããè¬æŒã®ã©ã®ããŒãã ã£ãããåéãããŠãããšãã«ãä¿®æ£ããã®ã楜ã«ãªããŸãã
ããã«è¬æŒãé²ãã§ãããšGafteræ°ã®ã¹ã©ã€ãã¯äœãã®Exampleã«ãªã£ãŠããŸããããã¯åé ã®æŠèŠããã¡ããšèããŠããã°"Existing Solutions"ã®è©±é¡ã§ããããŸãã解決çã§ã¯ãªããŠã"problems"ã®èª¬æãããŠããããšãããããŸãã"Existing Solutions"ãšæžãããã¹ã©ã€ãã¯ç»å ŽããŠããªãã®ã§ãã©ãã®è©±ãããŠããã®ãè¿·åã«ãªããããªãšããã§ããã話ãèãããšã«éäžããŠããã°å€§äžå€«ã§ããã
"Existing Solutions"ã®ããŒããnote-takingããäŸãå³3ãå³4ã§ããããã¯åé¡ç¹ãäœãªã®ããæŽãããšãç®çã§ãããããã®ç¹ã«éäžããŸããããŸããæåã«å³åŽã«æžããŠãããåŸã§ããããããããã«åé¡ç¹ãå·ŠåŽã«ãç°¡åã«æžãè¶³ããŠãããŸããã
|
|
|
åé¡ç¹ãæŽãããšã«éäžããããŒãã®äŸãã¹ããŒã«ã匷調ãããšãããªã©ã¯ããšã§ãããããã«å°ãä»ããŠãã |
|
ããŠã3ã€ãã®äŸãããããšãã«ãGafteræ°ã¯å€§ããªå£°ã§"but"ãšåŒ·èª¿ããŠãããã"Point is..."ãšãããã¬ãŒãºã䜿ã£ãŠããŸããããŒãã«ã¯äžŠåã«åé¡ç¹ãæžãé£ããŸãããããããã¬ããŒãã§äŸã1ã€ã ãéžã¶ãšãããããããåãäžããã¹ãã§ããããæ¢åã®åé¡ç¹ããŸãšããåŸã§ãããã«2ã€ã®äŸãåŒãåãã«åºããŠããŸããããã¡ãã¯ããã°ã©ã ã®èª¬æããšãŠãé·ãã®ã§ããã¡ãã«æ³šæãè¡ããã¡ã§ãããã ããã®ããŒãã®ã¡ã€ã³ã¢ã€ãã£ã¢ã¯ãåé¡ç¹ã¯äœããã§ãããããããŸã§ãããèãåãããšã«éäžããŸããGafteræ°ãã³ãŒãã®äžéšã«è²ã䜿ã£ãŠãåé¡ç¹ãããããããããŠãããŠããããšã«ã泚æãããã§ããã
ããã²ãšã€ãnote-takingã®äŸ(å³5)ãèŠãŠã¿ãŸããããããã¯"Specification"ã®ããŒããã¡ã¢ãããã®ã§ãã"Specification"ã®ååãåºãŠããã¹ã©ã€ãã«ã¯ãã®ããŒãã®æŠèŠããããŸãããããèŠããããŸããããŒãã3çåããŠfunctionãclosuresãcontrol abstraction APIsã®é ç®ãéããããŠæžã蟌ã¿ãŸãããããŠããã®åŸã®è©±ãã¹ããŒã¹ã«æžã蟌ãã§ãããŸããããããããã³ãã¢ãŠããªã©è³æã¯ãªãããã®æ¹æ³ã§æã«å ¥ããšäºæ³ãããã®ã§ã詳现ã§ã¯ãªããã©ã®ããã«è©±ãé²ãã ãã®ã¡ã¢ã§ååã§ããããåŸã§æ¯ãè¿ã£ãŠã¿ããšãæŠèŠèª¬æã«ãã£ã"Specification"ãš"Examples"ã¯ãã£ããã«è©±ãé²ãã§ããããšãããããŸãã
ã§ãããã£ãããŒãã¯Gafteræ°ã話ãããå å®¹ãšæ¯ã¹ããšããªãç°¡ç¥åãããŠããŸãããããã§ãã¬ããŒããæžãã«ã¯å€ããããããããã¯ãã§ããæžããããããã€ã³ããæããããã«å¿ãããããšããã§ãããªããGafteræ°ã®è¬æŒã®å ŽåãæŠç¥ã ããã¬ããŒãã«ãããšããããæåã®æ°åãèãã°ååãªã®ã¯ãããã§ããããããã¡ããšè©±ãã¹ããŒã«ã»ã©ãã®åŸåãããã®ã§ãæåã®éšåã¯ç¥çµãéäžãããŠèãåããããã®ã§ãã




