Vagif Abilovã¯ããã«ãŠã§ãŒã®äŒç€ŸMilesã®éçºè ã§ãã é床ãšã¹ã±ãŒãªã³ã°ã«é«ãèŠæ±ã課ãå®éã®ãããžã§ã¯ãã§é¢æ°åããã°ã©ãã³ã°ãç©æ¥µçã«äœ¿çšããŸãã
OOPã§ã¯ãäºåã«çããã¬ãŒã ã¯ãŒã¯ã§äœæ¥ããããã«åŒ·å¶ããŸãã
-Vagifãæç¶ãåããã³ãªããžã§ã¯ãæåã®åŸã«é¢æ°åããã°ã©ãã³ã°ã«æ¥ãŸãããïŒ ãããšãæ©èœçãªæåã®ãã®ã§ãããïŒ ããªãã®åºçºç¹ã¯äœã§ãããïŒ
Vagif AbilovïŒé¢æ°åããã°ã©ãã³ã°ã«ç®ãåãå§ãããšãããªããžã§ã¯ãæåããã°ã©ãã³ã°ã§çŽ20幎ã®çµéšããããŸããã 90幎代ã«ã¯C ++ã§ãããã.NETã®ç»å Žã«ãããCïŒã§ããã°ã©ãã³ã°ããŸããã ç§ã¯å žåçãªããã¯ãšã³ãéçºè ã§ãã 圌ã¯ãµãŒãã¹ã«æºãããäž»ã«ã¹ã±ãŒã©ããªãã£ãšé床ãéèŠãªãããžã§ã¯ãã«æºãããŸããã
ç§ãä»ã®äœãã詳ãã調ã¹å§ããäž»ãªçç±ã®1ã€ã¯åŒ·èª¿ã§ããŸãã ãã®ãããªã·ã¹ãã ãOOPã䜿çšããŠã©ã®ããã«èšè¿°ãããŠããããèŠããšãããããå ±æç¶æ ãŸãã¯å ±æç¶æ ã¯å€§ããªåé¡ã§ãã ã€ãŸãããã«ãã¹ã¬ããã·ã¹ãã ã䜿çšããŠããå Žåã¯ãå ±æããŒã¿ã«ã¢ã¯ã»ã¹ã§ããå¿ èŠããããŸãã ãããã£ãŠããããŒãæåã§ç®¡çããå¿ èŠããããŸãã誀ã£ãŠå£ããªãããã«å ±æç¶æ ãéããå¿ èŠããããŸãã ãããæ£ããããã°ã©ã ããããã ãã«ã人çè³æºã®å€§éšåãè²»ããããŸãã äžè¬çã«ãããã¯äž»èŠãªæ©èœã§ããäž»èŠãªäž»é¡é åã®äžéšã§ã¯ãããŸããã
ä»éããèŠå ã®1ã€ã¯ãã ã¢ã ãã«ã®æ³å ããšããŠå®åŒåããããã®ã§ããã䞊ååŠçã®ãªãœãŒã¹ã®å¯çšæ§ã«å¯Ÿãã䞊åã·ã¹ãã é床ã®äŸåæ§ã確ç«ããŸãã å ·äœçãªäŸã§ã¯ã次ã®ããã«èãããŸããã10åã®ããã»ããµãæèŒããŠãããã40ïŒ ãã䞊ååããªãå Žåãããã©ãŒãã³ã¹ã¯1.56åã«åäžããŸããã ãããã£ãŠãããŸããŸãªã¹ããªãŒã ããã®ããŒã¿ãžã®ã¢ã¯ã»ã¹ãå¶éããããšã«éç¹ã眮ãããŠããã·ã¹ãã ã䞊ååããå¯èœæ§ã¯ããŸããããŸããã ããã¯ããæç¹ã§ç§ã«åããªããªããç§ã¯å ±æç¶æ ãåãé€ãããšãã§ãããããªæ¹æ³ã§ããã解決ããæ©äŒããã£ãšèŠå§ããŸããã å€ãã®é¢æ°åèšèªã®å©ç¹ã¯ãããããããã©ã«ãã§å€ç°ããªãããšãæ£ç¢ºã«å€æŽã§ããªãããšã§ãã ãããé¢æ°åããã°ã©ãã³ã°ã«ç®ãåãå§ããæåã®çç±ã§ããã
çŽ6幎åãç§ã¯ããªã倧èŠæš¡ãªåœéäŒè°NDCã§è¬æŒããæåŸ ç¶ãåãåããŸããã ãã®æãŸã§ã«ãç§ã¯ãã§ã«FPã§è¶£å³ã®ãããžã§ã¯ãã«åãçµã¿å§ããããã§FïŒã®çµéšãçºè¡šããŠããŸããã äž»ã«CïŒéçºè ãé¢æ°åããã°ã©ãã³ã°ã®ã¬ããŒãã«æ¥ãŠãåãã§èããŠããã次ã®ããã«å°ããããã³ããã¯ãªææã§ããã ãããé©çšããããšããå¯èœã§ããïŒã å€ãã®å Žåãã¹ããŒã«ãŒèªäœã¯ãå®éã®ã·ã¹ãã ã§ã¯FPã䜿çšããªãããåéããããšè¿°ã¹ãŸããã ç§ã¯ã»ãŒåãç¶æ ã§ãããã€ãŸããCïŒã®ãã¹ãŠã®ãããžã§ã¯ãã§åããŠããŸãããã楜ãã¿ã®ããã«FïŒã«ç²ŸéããŸããã
ç§ã®ã¬ããŒãã¯ããæ©èœçãªConwayã®äººçã®ã²ãŒã ããã¬ã€ããããã€ãŸããé¢æ°ããã°ã©ãã³ã°ã®æ¹æ³ã«ããConwayã®ã²ãŒã ãLifeãã®å®è£ ãšåŒã°ããŠããŸããã æåãªã²ãŒã ã ç§ã¯FïŒã§ãããæžãæ¹æ³ã瀺ãããããå®è¡ãããããç解ãå§ããŠãç§ã¯é©ããã ãã®åã«ãCodeProjectã®CïŒã§ãã®ã²ãŒã ãå®è£ ãããããžã§ã¯ããèŠã€ãããšèšããªããã°ãªããŸããã ãã®ãããžã§ã¯ãã¯5ã€ã®ã¯ã©ã¹ã5ã€ã®ããããã£ãšã¡ãœããã§æ§æããã300è¡ãè¶ ããã³ãŒãããããŸããããå¹æçã§ããã ãã¹ãŠã®ãã©ã±ãããåé€ããŠããçŽ100è¡ãæ®ã£ãŠããŸãã LifeïŒã§FïŒãæžãããšãã14è¡ã®å®è¡å¯èœã³ãŒããååŸããŸãããå¹³å2è¡ã«7ã€ã®é¢æ°ããããŸãïŒãããå¶éã ãšæãå Žåã¯ãFïŒã§ã®Conwayã®ã²ãŒã ã®ãœãªã¥ãŒã·ã§ã³ã«é©ãã140æåã®è±èªããã°ã©ããŒPhil Trelfoldã®ã³ãŒããèŠãŠãã ãã twitterã«æçš¿ãããŠããŸãïŒã FïŒã®éçºã®ã³ã³ãã¯ãããè¡æãåããŸããã ããã¯ç§ãæéãåããæåã®ãã®ã§ãã ãã®åŸãã³ãŒãã®ã¬ãã¥ãŒãå§ããŸããã ç§ã¯èãå§ããŸãããããã®ã³ãŒãã¯äžè¬çã«äºæ¬¡å ããŒãã®ããã«æ±ºå®ããããšèšã£ãŠããŸããïŒ ã»ã«ã®è¿åãèšç®ãã1ã€ã®é¢æ°ã ãã2DããŒãã§ããããšã瀺ããŠããããšãããããŸããã ãã®æ©èœã3次å ãŸãã¯å€æ¬¡å ã®ããŒãã§åäœããããã«çœ®ãæããããå Žåããã¹ãŠãæ©èœããŸãã
å€ãã®é¢æ°åèšèªãç¹ã«FïŒã«ã¯ãããããåæšè«ããããŸããããŒã¿ã®åãçŽæ¥æå®ããªãå Žåãã³ã³ãã€ã©ã¯ã䜿çšæ¹æ³ã«å¿ããŠãäœã眮ãæãããã決å®ããŸãã ããã«ãããããã«äžè¬åãããã³ãŒããèšè¿°ã§ããŸãã JavaãŸãã¯CïŒã§ã¯ã©ã¹ãäžè¬åããå¿ èŠãããå ŽåãFïŒã§ã¯ããã©ã«ãã§ãããçºçããŸãã ããã«ã¯éåžžã«å€§ããªå©ç¹ããããããŸããŸãªãããžã§ã¯ãã«åãçµãã§å人çã«ç¢ºèªããããšãã§ããŸããã
æçµçã«ã¬ããŒããæºåããäŒè°ã§åœŒãšè©±ãããšããç§ã¯èŽè¡ã«ç®ãåããŠãConwayã®ã²ãŒã ãã©ãããæžãå§ããããããå°ããŸããã ã»ãšãã©ãã¹ãŠãã¯ã©ã¹ãšããããã£ã®å®çŸ©ã§ææ¡ãããŸãããããšãã°ãã¯ã©ã¹ãBoardãããCellããå ¥åãããCellãã®ããããã£ãå®çŸ©ããå¿ èŠããããŸãã ã€ãŸãã誰ããåãšãã®é¢ä¿ã®å®çŸ©ããå§ããããšã«æ £ããŠããŸãã ç§ãã¡ã¯ãšãŠãæ £ããŠããŸãã ããããå®éã«ã¯ããã®ãããªå€æ°ã®å®çŸ©ãäºåã«å°å ¥ãããšããããã®å®çŸ©ãããã«åŠçããäžã§å€§ããªå¶éã課ããããŸãã FïŒã§ãLifeãã²ãŒã ãå®è£ ããéã®3çªç®ã®éèŠãªåŽé¢ã¯ãããã«ã¿ã€ããå°å ¥ããªãã£ãããšã§ãã ãã¹ãŠã¯æ©èœãèšå®ããããšã«ãã£ãŠè¡ãããŸããã ããã«ããããœãŒã¹ããŒã¿ããåçãããæ¹æ³ã«å®å šãªèªç±ãäžããããŸãã OOPã§ã¯ãç§ãã¡ãå°å ¥ããå®çŸ©ã®æ çµã¿ã®äžã§äºåã«äœæ¥ããããšãã匷å¶ãããããšã«æ°ä»ããŸããã
ç§ã¯ã¬ããŒãã®ãã¬ãŒã³ããŒã·ã§ã³ã§äœæ¥ããŠãããšãã«ããã®ç¶æ³ã説æããã®ã«é©ãããã€ãŒããèŠã€ããŸããã è±èªã話ãããã°ã©ããŒã¯æ¬¡ã®ããã«æžããŠããŸããã Javaã§ã®ããã°ã©ãã³ã°ã¯ãã·ã¢æåŠããããããªãã®ã§ã ã ã€ãã³ããçºçããåã«100åã®ååãå®çŸ©ããå¿ èŠããããŸã ã ã ãã®ã³ã¡ã³ãã¯ãOOPã¢ãããŒããé©åã«å®çŸ©ããŠããŸãã æåã«ãã¹ãŠãé©åã«èª¬æããå¿ èŠããããŸãããããããšãããã€ãã®ã€ãã³ããçºçãå§ããå®çŸ©ã«ããã€ãã®ã¡ãœããããã¹ããªã³ã°åãã§ããããã«ãªããŸãã ãããŠããã°ãã°ãç§ãã¡ã®ãã¶ã€ã³ã¯ãã§ã«ç§ãã¡ãå¶éããŠããŸãã
å ã®è³ªåã«æ»ããŸãããé¢æ°åããã°ã©ãã³ã°ã®äžçã§ã®åºçºç¹ãšãªã£ãã®ã¯ãããŒã¿ã®å€æŽããéããããã®è©Šã¿ã ã£ããšèšããªããã°ãªããŸããã
JavaãšCã«ã¯ãåŒããå€ãããŸãïŒ
-ããªãã®æèŠã§ã¯ããªããžã§ã¯ãæåããã°ã©ãã³ã°ã«é·ãéåŸäºããŠãã人ã¯ãæ©èœãç¥ããæ©èœã«åãæ¿ããã¹ãã§ããïŒ
Vagif AbilovïŒå®å šãªç§»è¡ã®åé¡ã¯ãå®éçãªåé¡ã§ãã ãããŠãç¥ãåãã«ãªãããã«ããã¡ããããã§ãã
JavaãCïŒã®ãããªãªããžã§ã¯ãæåèšèªãèŠããšãè¿å¹Žéåžžã«å€§ããªå€åãçããŠããŸãã æ··ä¹±ããªãå ŽåãCïŒããŒãžã§ã³3.0ã§LINQãç»å Žããã©ã ãåŒãç»å Žãããšããããã¯æ¢ã«é¢æ°åããã°ã©ãã³ã°èŠçŽ ã®å°å ¥ã«åããé¡èãªåãã§ããã
ãé¢æ°åèšèªã®èŠçŽ ã䜿ã£ãŠCïŒã§å€ãã®ããšãã§ããã®ã«ããªãé¢æ°åèšèªèªäœãç 究ãã¹ããªã®ãããšããè°è«ãçããŸãã CïŒãšJavaã®äž¡æ¹ãåžžã«å€ç°èšèªã®ãŸãŸã§ãããããããã«å¯Ÿããå°ãªããšã1ã€ã®çãã¯ãããŒã¿æ§é ã®å¯å€æ§ã®åéã«å ¥ããŸãã ããã©ã«ãã§å®çŸ©ããããŒã¿ãå€æŽã§ããå Žåãé¢æ°åããã°ã©ãã³ã°ã®ã©ã®èŠçŽ ãå ¥åããŠãããããã®èšèªã®åºæ¬çãªæ¬è³ªã¯å€ãããŸããã CïŒã®ææ°ããŒãžã§ã³ã§ã¯ãFPã®èŠçŽ ããåçãã§ããŸããããã¡ããã Erlang ã Haskel ã FïŒãªã©ã®å®éã®é¢æ°åèšèªã§äœæ¥ããããšã¯çã«ããªã£ãŠããŸãã ãã®èšèªã¯.NETã«éåžžã«ããçµ±åããããããç¹ã«åŸè ããå§ãããŸãã ããã€ãã®äŸã解æããã ãã§ååã§ããã³ãŒããã©ãã»ã©ç°¡æœãã確èªããŠãã ããã ããã¯ãç§ã®æèŠã§ã¯ãã³ãŒãã®ã³ã³ãã¯ãããšããé倧ãªè°è«ã§ãã ããã°ã©ããŒãçµéšãç©ãã»ã©ãJavaãCïŒãªã©ã®èšèªã«ã¯ãåŒããå€ãããããšã«æ°ã¥ãã¯ãã§ãã éåžžãFïŒã®ããã°ã©ã ã¯CïŒã®2åã®ã³ã³ãã¯ããã§ãããããã³ãŒããååã«æžãããšãããããåé¿ã§ããŸãã
-OOPãšæ¯èŒããAFã®å©ç¹ã¯äœã§ããïŒ
Vagif AbilovïŒæåã«èšã£ãããã«ãããŒã¿ã®çªç¶å€ç°ã¯ãããŸãããããã¯éåžžã«éèŠã§ãã é¢æ°åèšèªã§æžãããããã°ã©ã ã«ã¯å€æ°ããããŸããã ããæå³ã§ã¯ã圌ãã¯ããã«ãã¿ããã§ããããšãå€æããŸãã
ãªããžã§ã¯ãæåã®ã³ãŒããèŠããšãããã€ãã®å€æ°ãšããŒã¿ãããããããã¯ã©ããã«éä¿¡ããããã¹ãŠã¯å€ãã®ã¹ã¬ããããã¢ã¯ã»ã¹ãããŸãã é¢æ°åèšèªã§ã¯ãæåã¯å°ãæ··ä¹±ããŸããå€æ°ãå°å ¥ããã«ãã©ã®ããã«åäœãããããšãã§ããŸããïŒ ãããããã¹ãŠã¯ãæ©èœå€æãã®æ¹æ³ã䜿çšããŠå®çŸãããŸãã ããããŸãã«äžŠååŠçã®åºç€ãäœæãããã®ã§ãã ããŒã¿ãåãåã£ããããã¹ã¬ããã»ãŒããã¹ã¬ããã»ãŒããïŒããšãã質åã«çããå¿ èŠã¯ãããŸããã ããã¯ãå€ãã®ã¹ã¬ããããã®ã¢ã¯ã»ã¹ãçã延ã³ãŸããïŒã å®çŸ©ã«ãããäœãçãæ®ãããç¥ã£ãŠããŸãã å€ãã®ã¹ã¬ããããã®ã¢ã¯ã»ã¹ã確èªããããã«ãã¹ããè¡ãå¿ èŠãããããŸããã
å€æ°ãäžè¶³ããŠãããæ©èœå€æã«ãã£ãŠãã¹ãŠãã¹ããããããšããäºå®ã«ããããã¹ãã¯å€§å¹ ã«ç°¡çŽ åãããŸãã çµæãšããŠãè«çãšã©ãŒã¯ã³ã³ãã€ã©ã«ããé »ç¹ã«ãã£ãããããŸãã FïŒã§äœæ¥ãããšãã®ãè¯ããåé¡ã®1ã€ã¯æ¬¡ã®ãšããã§ããããã°ã©ã ãã³ã³ãã€ã«ããããã ãã«æ°æéè²»ããããšãã§ããŸããããããçºçãããšãšã©ãŒãªãã§æ©èœããŸãã ããŸãã«ããã ãŸããããããã®ã§ããã¹ãã®èšè¿°ãå°ãªãããŸãã æåã«ç§ã¯ãããšæŠãããšããCïŒãšåãæ°ã®ãã¹ããæžããŸããã ãããŠãã»ãšãã©ã®è«çãšã©ãŒã¯ã³ã³ãã€ã©ãŒã«ãã£ãŠãã£ããããããããããã¯å¿ èŠã§ã¯ãªãããšã«æ°ä»ããŸãããããã¯ããªããžã§ã¯ãæåèšèªã®ã³ã³ãã€ã©ãŒããããå¯å®¹ãã§ã¯ãããŸããã
ãããããããããäž»ãªå©ç¹ã§ãïŒäžŠåæ§ãçªç¶å€ç°ã®æ¬ åŠãè«çãšã©ãŒã®åœ±é¿ãåããããã³ã³ãã€ã©ãšã®ãã倧ããªçžäºäœçšã ãŸããã¯ãŒã¯ã¹ã¿ã€ã«ãå€åããŠããŸãã CïŒã§äœæ¥ããå Žåãç§ã¯ããå€å žçãªTDDæ¹æ³è«ã䜿çšããŸãã FïŒã§ã¯ãREPLã¢ãŒãã§åäœããŸãïŒèªã¿åã-è©äŸ¡-å°å·ã«ãŒãïŒã ãã®ãããªäœæ¥ã¯éåžžã«å¹æçã§ãã
-OOPãšæ¯èŒããŠAFã®åãè¶ ãããã®ã¯ãããŸããïŒ åœŒïŒFPïŒã®æ¬ é¥ã¯äœã§ããïŒ
Vagif AbilovïŒåã¿ã¹ã¯ã«ã¯ãç¬èªã®è³éã䜿çšããå¿ èŠããããŸãã ã¹ã±ãŒã©ãã«ãªã·ã¹ãã ãé«éã§éçºããéã®é¢æ°åèšèªã®å©ç¹ã«ã€ããŠã¯ãããã¯ç解ã§ããããç¥ãããŠããŸãã ããããç§ã«ãšã£ãŠã¯ãããžã¥ã¢ã«ã€ã³ã¿ãŒãã§ã€ã¹ãæäœãããšãã®é¢æ°åããã°ã©ãã³ã°ã®å©ç¹ã¯æããã§ã¯ãããŸããã ããã°ã©ã ãã·ã³ã°ã«ã¹ã¬ããã§ããããã©ãŒã ãç·šéããå Žåã¯ãäžè¬ã«ããã©ãŒã ãããŒã¿ã¢ãã«ã«é©åããããããããªããžã§ã¯ãæåã®ã¢ãããŒãã䜿çšããã®ãèªç¶ã§ãã FïŒãClojureãErlangããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®éçºã«äœ¿çšãããŸããããã®å©ç¹ã¯ç§ã«ã¯æããã§ã¯ãããŸããã
ãŸããé¢æ°åèšèªã䜿çšãããšãéçºè ã¯äžŠè¡æ§ãšããã©ãŒãã³ã¹ã®åé¡ãèªåã§è§£æ±ºããããšã決å®ã§ããŸãããããã¯ããã©ãŒãã³ã¹ã«åœ±é¿ããåé¡ã®åæã«çœ®ãæãããã®ã§ã¯ãããŸããã ããšãã°ãéçºè ããã«ãã³ã¢ããã»ããµã䜿çšããŠããå Žåãããã«ã€ããŠèããå¿ èŠããããŸãã ããã°ã©ã ã¯ãããã»ããµãã£ãã·ã¥ãå©çšããããã«äœæããå¿ èŠããããŸãã ãã£ãã·ã¥ã¯åžžã«æŽæ°ããããããããã©ãŒãã³ã¹ãäœäžããå¯èœæ§ããããŸãã ããã¯ãäžè¬çã«èšãã°ãé¢æ°åããã°ã©ãã³ã°ããªããžã§ã¯ãæåããã°ã©ãã³ã°ãšã¯äœã®é¢ä¿ããªãã¿ã¹ã¯ã§ãã ãããã«ãããé«éã§ã¹ã±ãŒã©ãã«ãªãããžã§ã¯ããéçºããå Žåãããããåäœããã·ã¹ãã ã®å éšã¢ãŒããã¯ãã£ãç解ããå¿ èŠããããŸãã èšãæããã°ãããã¯ãç¹å¹è¬ãã§ã¯ãªããé¢æ°åèšèªã«å¯ŸåŠããããšã§ããããã¹ãŠã®åé¡ãããã«è§£æ±ºããããšã¯æåŸ ã§ããŸããã
-èŠçŽãããšãFPã¯ã©ã®ã¿ã¹ã¯ã«çŠç¹ãåœãŠãŠããŸããïŒ
Vagif AbilovïŒäžŠåæ§ãé«éãå¿ èŠãšããåé¡ã解決ããŸãã äžè¬ã«ãããã¯ãšã³ãå šäœãé¢æ°åèšèªã§æ£åžžã«èšè¿°ããããšãã§ããŸãã
-VagifãFPèšèªã§ãããžã§ã¯ããå®è£ ããã«ã¯ãã©ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ïŒããŒã«ïŒãåéããå¿ èŠããããŸããïŒ
Vagif AbilovïŒç§ã¯CïŒãšFïŒã§äœæ¥ããŠããã®ã§ãç§ã«ãšã£ãŠVisual Studioã¯æããã䜿çšãããããŒã«ã§ãã ããããããå€ãã®å Žåãç§ã¯ä»ã®ããããéããæ段ã䜿çšããããšã«æ°ä»ããŸãã ããšãã°ãFïŒèšèªã«é¢ããŠã.NETéçºãã€ãŸãIonideãã©ã°ã€ã³ã䜿çšããVisual Studio Codeã«ã€ããŠè©±ããŠããå Žåã ããã¯FïŒã§äœæ¥ããããã®çŽ æŽãããç°å¢ã§ãã
Atom + IonideãVS Code + IonideãPaketãFakeãªã©ã®ãšãã£ã¿ãŒã䜿çšããããšããå§ãããŸãã ãã¹ãã«ã¯ãFïŒã«é©ãããã¬ãŒã ã¯ãŒã¯ããããŸããFsUnitãšExpectoã©ã€ãã©ãªã¯ãé¢æ°åèšèªãšéåžžã«ããçµ±åãããŸãã ãããŠå æ¥ããŸã ããŒã¿çã§ããæ°ããJetBrains Rider IDEãFïŒããµããŒããããšããæ å ±ããããŸããã JetBrainsã¯äžè¬çã«å®çšçãªç·ã§ãããFïŒã®ãµããŒãã«ã€ããŠå°ãããããšãã«åæããResharperãã©ãããã©ãŒã ã«èšèªã®ååãåã蟌ãè€éãã§åæ©ä»ãããããããã¯æ³šç®ã«å€ããã€ãã³ãã§ãïŒç§ãç解ããããã«ããªããžã§ã¯ãæåèšèªã«ã¯ååšããªãã¿ã€ãã®å®è£ ã«é¢é£ããå°é£ïŒ ããããæ°·ã¯å£ããŠãããFïŒã¯.NETç°å¢ã§éåžžã«éèŠãªèšèªã«ãªã£ãŠãããããããã«ç¡èŠããããšãã§ããŸãã
Webã¢ããªã±ãŒã·ã§ã³ãäœæããå¿ èŠãããå Žåã¯ããã°ãããSuaveãã¬ãŒã ã¯ãŒã¯ããããŸãã Webã¢ããªã±ãŒã·ã§ã³ãŸãã¯WebãµãŒãã¹ãã»ãã®æ°è¡ã§éåžžã«ã³ã³ãã¯ãã«èšè¿°ã§ããŸãã ãã€ã¯ããµãŒãã¹ã®å®è£ ã«ã€ããŠè©±ããšãéåžžã«æ©èœçãªèšèªãã¢ã¯ã¿ãŒã¢ãã«ïŒã¢ã¯ã¿ãŒã¢ãã«ïŒãšé£æºããŠæ©èœããŸãã éå»1幎åã®éããã®ã¢ãã«ãå®è£ ãããŠããAkka.Netã䜿çšããŠFïŒã§ã·ã¹ãã ãéçºããŠããŸãã
ç¹ã«ãFïŒã§å®è£ ãããããŒã¿ããŒã¹ãéåžžã«å¹ççã«äœ¿çšã§ããã¿ã€ããããã€ããŒã¯éèŠãªã³ã³ããŒãã³ãã«ãªããŸãã Entity Frameworkã®ãããªéãã©ã€ãã©ãªã眮ãæããŸãã
ãšããã§ãèå³æ·±ãäŸã§ãã FïŒãªãŒãã³ãœãŒã¹ã«ã¯SQLProviderã©ã€ãã©ãªããããŸããããã¯ãMSSQLãOracleãSQLiteãPostgreSQLãMySQLãMsAccessãODBCãšãã1ã€ã®ã¢ãžã¥ãŒã«ã«äžåºŠã«7ã€ã®ãã©ã€ããŒãå«ãŸãããšããç¹ã§ç°åžžã§ãã ãããŠããã®ãã¹ãŠã®éãã¯ããã1.3ã¡ã¬ãã€ãã§ãã ãŸããåããŒã¿ããŒã¹ã®ãã©ã€ããŒã¯çŽ600ã800è¡ã®ã³ãŒãã§ãã ã¡ãªã¿ã«ãããã¯FïŒã§å€ãã®ããšãæžãããšãã§ãããšããããšã§ãã
-å人ã¢ã«ãŠã³ãã§é¢æ°åããã°ã©ãã³ã°ã䜿çšããŠå®è£ ããã倧èŠæš¡ã§æ·±å»ãªãããžã§ã¯ãã¯ãããŸããïŒ
Vagif AbilovïŒã¯ãã Akka.Netã®å©ããåããŠãéå»1幎åã«ããã£ãŠFïŒã®å°ããªã°ã«ãŒãã§ãé床ãšã¹ã±ãŒãªã³ã°ã®èŠä»¶ãé«ãã·ã¹ãã ãäœæããŠããŸããã ãã®ã·ã¹ãã ã¯ããã«ãŠã§ãŒã®å·ã®ã©ãžãªãã¬ãåãã«éçºãããŠããŸãã 圌女ã¯æ°çŸãã©ãã€ãã®ãã¡ã€ã«ãæäœããã¯ã©ãŠããæäœããŠããŸãã ã·ã¹ãã ã®è€éãã«ãããããããã³ãŒãã¯éåžžã«ã³ã³ãã¯ãã§ãã
-ããªãã®æèŠã§ã¯ãAFã¯OOPãšç«¶äºããã»ã©äººæ°ãââåºãã§ããããïŒ
Vagif AbilovïŒç«¶äºã«é¢ããŠã¯ããã§ã«é¢æ°åããã°ã©ãã³ã°ããªããžã§ã¯ãæåãšããŸã競åããŠãããå€ãã®ãããžã§ã¯ãã§ããã眮ãæããŠããŸãã å®éçæ¯èŒã«ã€ããŠè©±ãå Žåãã©ã®ãããªæéã®èŠ³ç¹ã«ã€ããŠè©±ããŠããã®ããç解ããå¿ èŠããããŸãã ãããããä»åŸ5幎éã§ãFIã¯ããŸããŸãªçç±ã§OOPãåãããããžã§ã¯ãã«å¹æµããæ°ã«éããããšã¯ãªãã§ãããã ãã®1ã€ã¯ããªããžã§ã¯ãæåèšèªã䜿çšãããšãããã°ã©ãã³ã°ã®åŠç¿ãå§ããã®ãã¯ããã«ç°¡åã«ãªãããšã§ãã ããã«ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãåããå€æ°ã®ã¿ã¹ã¯ããããŸãããFPã®å©ç¹ã¯æããã§ã¯ãããŸããã
倧èŠæš¡ã§ã¹ã±ãŒã©ãã«ãªã·ã¹ãã ã¯ãé¢æ°åèšèªã§ãŸããŸãèšè¿°ãããããã«æãããŸãã ãã®çç±ã®1ã€ã¯ãã ãŒã¢ã®æ³åãæ©èœããªããªãããšã§ãã ããæ©ã段éã§ããã匷åãªããã»ããµãç»å Žããã®ãåŸ ã€ããšãã§ããã°ããã¹ãŠãèªåçã«é«éã«ãªããŸãããä»ã¯ã§ããŸããã ã¢ãŒããã¯ãã£ãå¢å ããªãããšãèªèãã念é ã«çœ®ããŠãã¢ãŒããã¯ãã£ãæ¢åã®é床ã«æ»ãå¿ èŠããããŸãã ããã¯ãé¢æ°åããã°ã©ãã³ã°ãæ¯æããéåžžã«å€§ããªåãæã§ãã
-é¢æ°åããã°ã©ãã³ã°ã®åŠç¿ãéå§ããããšã決ãã人ã«äœãã¢ããã€ã¹ã§ããŸããïŒ
Vagif AbilovïŒãã®éžæãæ·±å»ãªäººçã®ã¹ããããšããŠæ±ããªãããã«ã¢ããã€ã¹ããŸãã ããã°ã©ããŒã®ã¡ã€ã³èšèªãå€æŽããããšãããšãããšãã°ããŒã¿ããŒã¹ãäœããã®ãã¬ãŒã ã¯ãŒã¯ãå€æŽããã®ãšã¯ç°ãªããããçš®ã®æ¥é²çãªã¹ããããšèŠãªãããããšã«æ°ä»ããŸããã ããšãã°ãjavascriptéçºè ã¯ãæè¢ã®ããã«äœ¿çšããã©ã€ãã©ãªãå€æŽããŸãã ãããŠãããã¯äœããã®å€§ããªå€åã®ããã«ã¯èŠããŸããã ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ããããã¥ã¡ã³ãããŒã¿ããŒã¹ã«åãæ¿ããå Žåãããã¯1ã€ã®.NETèšèªããå¥ã®èšèªã«åãæ¿ãããããã¯ããã«æ·±å»ãªæé ã§ãã
ç§ã¯ãã€ãŠãFïŒã®é¡§å®¢ã®1人ã®ããã«ã·ã¹ãã ãäœæãã人ãã¡ãšè©±ãæ©äŒããããŸããã FïŒã§ãããžã§ã¯ããè¡ãããšã顧客ã«çŽåŸãããã®ã¯ã©ãã»ã©ç°¡åããå°ããŸããã 圌ãã¯ã顧客ã¯ããã«ã€ããŠç¥ããããŠããªããšèšã£ãã ã·ã¹ãã ã.NETã®äžã§åäœããããã«ãå¥çŽæžã«æžãããŠããŸãã å®éããã®ã¢ãããŒãã«ã¯äœãããããŸãã ãã®ãªãã¬ãŒãã£ã³ã°ç°å¢åãã«äœæããŠããå Žåãç§ã®ã¢ããã€ã¹ã¯ãã§ããéãå€ãã®ããšãè©ŠããŠã¿ãããšã§ãã ä»ã®èšèªãã©ã€ãã©ãªãããã°ã©ãã³ã°ã¢ãã«ãè©ŠããŠãã ããã ããã¯ãã¹ãŠè¯ãããšã§ãã
-5æã«éå¬ãããDotNextãµã³ã¯ãããã«ãã«ã¯äŒè°ã§ã®ã¬ããŒãã¯ã©ããªããŸããïŒ
Vagif AbilovïŒ ç§ã®çŸåšã®å ±åã¯é¢æ°åããã°ã©ãã³ã°ã«çŽæ¥é¢ä¿ãããã®ã§ã¯ãããŸããããããæå³ã§ã¯ãã©ãã€ã ã·ããã«é¢é£ããŠããŸãã åä»ãããã°ã©ãã³ã°ã奜ã人ãšåçåã§ããã°ã©ãã³ã°ã䜿çšãã人ã®äž¡æ¹ãçããç°¡åã«äœ¿çšã§ããããã«ãéçºè ãAPIãäœæããæ¹æ³ã«ã€ããŠèª¬æããŸãã ãåç¥ã®ããã«ã.NET 4.0ã®ç»å Žã«ãããCïŒã«åçåãçµã¿èŸŒãããšãå¯èœã«ãªããŸããïŒåçåïŒã ããæå³ã§ã¯ããã©ãã€ã ã·ããã«åããå¿ èŠããããšèšããŸãã ããã«ãããä»æ¥ã®äŒè©±ã®ãããã¯ã«é¢é£ããã¬ããŒããäœæãããŸãã
5æ20æ¥ã«ãµã³ã¯ãããã«ãã«ã¯ã§éå¬ãããDotNextã«ã³ãã¡ã¬ã³ã¹ã§è¬æŒããVagif Abilovã«ããã¬ããŒãã®ãããã¯å šäœã¯ã Typed APIãŸãã¯åçAPIã®ããã«èãããŸããïŒ äž¡æ¹ïŒ ãã®ã€ãã³ãã§ãäŒãã§ããããšãããããæããŸããäžçåå°ããããããŠæãé¢é£æ§ã®ãããããã¯ã«ã€ããŠãçŽ30人ã®çŽ æŽãããã¹ããŒã«ãŒãéããŸããã