2010 icse-an analysis of the variability in forty preprocessor-based software...
2010 icse-an analysis of the variability in forty preprocessor-based software...
ã½ããã¦ã§ã¢è¨è¨ã¨ã¯ä½ãï¼ ï¼åæï¼ What Is Software Design?ï¼ by Jack W. Reeves (c)C++ Journal - 1992 訳è ã¾ããã ãã®ææ¸ã¯ï¼Jack W. Reeves æ°ã1992å¹´ã« C++ Journal ã«å¯ç¨¿ããè¨äºã®é¦è¨³ã§ãã æ¬è¨äºã§ã¯ï¼ãªãã¸ã§ã¯ãæåããã°ã©ãã³ã°è¨èªã®ä»£è¡¨ã¨ã㦠C++ ãæãã¦ãã¾ããï¼ããã¯æ¬è¨äºãå·çããã彿ï¼ä¸è¬çã«å©ç¨å¯è½ãªãªãã¸ã§ã¯ãæåè¨èªã¯ C++ ã ãã§ãã£ãã¨ããäºæ ãããããã§ãã ä»ã§ã¯ C++ ã«å ã㦠Javaï¼Delphiï¼C# ã¨ãã£ããªãã¸ã§ã¯ãæåè¨èªãå©ç¨å¯è½ã¨ãªã£ã¦ãã¾ããï¼ãããªä»ã§ãããã®è¨äºã¯å¤ããæããªããã®ã¨ãªã£ã¦ããï¼ã½ããã¦ã§ã¢éçºã®æ¬è³ªï¼ç¾ç¶ãéãããããã®ã¨ãªã£ã¦ãã¾ãã é¦è¨³ã®å ¬éã許諾ãã¦ããã ãã Jack W. Reeves æ°ã«ï¼
ï½è¨äºä¸è¦§ï½if ç¯ï½for ç¯ï½é å ç¯ï½ Python.use(better) ãPython3.1, Jython2.5.0, IronPython2.6.xã OOP ã¸ã®é ãä½é²ãã if/for/é åã¨å¥ããï¼ï¼ã®æ¹æ³ ã ãèãçæ¨¹è²æªã»å¾è¤ãããã»å°ç²ã¡ãããç£ä¿®ãå°æ³ã²ãåã¨ã¿ãã´å¶æ¥½é¨ç¬¬ï¼çâª1988/10/12 â 第ï¼çâª1993/05/23 â 第ï¼çâª2003/05/25 Smalltalk-80 ã»ããã¼ç¨ã«ä½æããããã¹ãï¼1988ï¼ããã¨ã«ãC++ çï¼1993ï¼ãçµã¦ãJython çï¼2003ï¼ã¨ãã¦å ç/åæ§æããä½é²éã§ãã Oh è³ã120ãPython ã«ã¯ switch ããªãã®ã - ç¶ã»ã²ãåã®ããã¡ â æ¦è¦ ä¼çµ±çãªï¼£è¨èªé¢¨ã® for æãæªåé«ã switch æãé åã®åªç¸ããè§£ããããªãã¸ã§ã¯ãæåããã°ã©ãã³ã°ãOOPãã®é
â ã¯ããã« å æ¥ãç®é»é ååã«ã¦éå¬ãããDevelopers Summit 2009ãç§ãã¡ãªãã¸ã§ã¯ãã®åºå ´ãç¬¬ä¸æ¥ç®ã®éçºããã»ã¹ãã©ãã¯ã®æ ã§ããªãã¸ã§ã¯ãæåã¨ã¯ãµãµã¤ãºã®ã¹ã¹ã¡ãã¨ããè¬æ¼ãããã¦ããã ãã¾ããã â ã¿ã¤ã ãã¼ãã«ã«è¼ã£ãå 容 å¶ç´ã¨èªç´ãããè½åãé«ããããã«ã¯ããã®äºã¤ã®å¶éãå¿ è¦ã ã¨ãããã¾ããèªåã®äººçããªãã¸ã§ã¯ãæåã«æ§ããã¨èªç´ããã¨ã³ã¸ãã¢ã®ããã«ããªãã¸ã§ã¯ãæåã®è½åãé«ããããã®å¶ç´ããªãã¸ã§ã¯ãæåã¨ã¯ãµãµã¤ãºããç´¹ä»ãã¾ãã ããã¯ãã¡ããããã³ã¿ã¼Ããã³ã¿ã¼ãã®ãå¶ç´ã¨èªç´ãã®ãã¨ã§ãããã種ã®ã«ã¼ã«ãéµå®ãããã¨ã«ãã£ã¦ãè½ååä¸ãããã¨ãããã®ã§ããã«ã¼ã«ã¯å³ããä¸èªç±ãªãã®ã»ã©ãããççºçãªè½ååä¸ãå¯è½ã«ãªãã¨ããè¨å®ã§ãã ãã®ããªãã¸ã§ã¯ãæåã¨ã¯ãµãµã¤ãºãã¯å æ¥åºçããããThoughtWorks ã¢ã³ã½ãã¸ã¼ãä¸ã®
ããã£ã¦ã¦ããã¨ãããã ã£ãããããã§ããã©ããããããªããªãå®ç³éãã«æ¸ãã¹ãã ã¨æãã¾ãã 5 sub new { 6 my $c = shift; 7 bless $c; 8 } 33 my $human = Human::new({'name' => 'ãã³ã´', 34 'age' => 1, 35 'bag' => {} 36 }); 第31å Perlã§ãªãã¸ã§ã¯ãæåãæ¸ãã ãã®æ¸ãæ¹ã®åé¡ç¹ã¯äºã¤ããã¾ããã¾ããã³ã³ã¹ãã©ã¯ã¿ã Human::new ã®ããã«éçå¼ã³åºããã¦ãããã¨ãããä¸ã¤ããblessã1弿°ã§ä½¿ã£ã¦ãããã¨ã§ãã 確ãã«blessã¯1弿°ã§ä½¿ã£ã¦ããããã©ã«ãã¨ãã¦å®ç¾©ãããæç¹ã§ã®ããã±ã¼ã¸ã¸ãªãã¡ã¬ã³ã¹ãç´ã¥ãã¦ããã¾ããã£ã¦ãã¨ã¯ãããããã¯ã©ã¹åãæ¸¡ãããã«æ¸ããªãæ¹ããåé·ãããªãã¦ãããããï¼ ã¨æããããããããªãã§ãããããã¯ã¡ãã£
ãã¦ããªãã¸ã§ã¯ãæåã®ããã°ã©ã ãæ¸ãã¦ã¿ããã¨ãã£ãã®ã§æ¸ãã¦ã¿ã¾ãããã ã¨ãã£ã¦ããããªãã½ã¼ã¹ãè¼ããã®ããªããªã®ã§ãã¾ãã©ããªããã°ã©ã ãæ¸ããã¨ãããã ããããã話ããã¦ããã ãã¾ãã 仿ãé»è»ã«ä¹ãã¨å¿ æ»ã§ãPSPãããã¦ããæ¹ããããã¾ããï¼ãã¶ãã¢ã³ã¹ã¿ã¼ãã³ã¿ã¼ã ã¨æãããï¼ã ã¨ãããã¨ã§ããªã«ãåéºè ãåéºãããããªãã®ãä½ã£ã¦ã¿ããã¨æãã¾ãã ã§ãããããªå¤§ãããªãã®ã¯ä½ããªãã®ã§ãããã«ä¸»äººå ¬ã ããä½ã£ã¦ã¿ããã¨æãã¾ãï¼ã¨ãã£ã¦ããã®ä¸»äººå ¬ãã§ãããã¨ã¯å°ãªãã®ã§ããï¼ã ä¸»äººå ¬ ã¾ããä¸»äººå ¬ã§ããããååãæã¡ã¾ããããããã¦ãã®ä¸»äººå ¬ã«ã¯å¹´é½¢ã®æ å ±ãæããã¾ããããã¦ãã®ä¸»äººå ¬ã¯ãè¢ï¼bagï¼ããã£ã¦ããããªãã§ãããã«å ¥ãããã¨ãã§ãã¾ãã ä¸»äººå ¬ãã§ãããã¨ ä¸»äººå ¬ã¯è¢ãæã£ã¦ãã¾ãã®ã§ãä½ããè¢ã«å ¥ãããã¨ãã§ãã¾ãã 以ä¸ã®ããã«pushã¡
ãã¦ãã©ããã説æããããããã®ãã...... ã¨ããæããªã®ã§ãããååã®ã½ã¼ã¹ã®èª¬æããããã¨æãã¾ãã ååã®ã½ã¼ã¹ã¯ããã²ã¨ã¤çªãéãã¦ããã£ã¦ï¼å¥ã®ãã©ã¦ã¶ã¨ãã§è¦ã¦ããã£ã¦ï¼ããã§ã¯ãé¨åçã«èª¬æãã¦ããããã¨æãã¾ãã ã¾ãã¯ã new 33 my $human = Human::new({'name' => 'ãã³ã´', 34 'age' => 1, 35 'bag' => {} 36 }); ãã®new ããã¦ããé¨åããããããã¨æãã¾ãã new颿°èªä½ã¯æ¬¡ã®ããã«ãªã£ã¦ãã¾ãã 5 sub new { 6 my $c = shift; 7 bless $c; 8 } åã«ãåãåã£ããã®ãblessãã¦ããã ãã ã¤ã¾ããåãåã£ããã®ã«éæ³ãããã¦ãHumanããã±ã¼ã¸ã®é¢æ°ã使ããããã«ãã¦ããããã§ããã ãã£ã¨ï¼ ãããããä¸»äººå ¬ãã¤ããããã®ããã±ã¼ã¸ã¯
ãã¦ããã blessããã ãã®é¢æ°ãä½ã£ããã ãããåã ã®ããã±ã¼ã¸ã«æããããã¨ã§ã åããã±ã¼ã¸ã«ãblessããã夿°ãè¿ãã¦ããããã¨ã«ããã ããã«ããã ããã±ã¼ã¸å::blessããã夿°ãè¿ã颿° ã¨ããæ¸å¼ã§ããã®ããã±ã¼ã¸ã®é¢æ°ãå¼ã³åºãã夿°ããããããã¨ã«ãªãã ä¾ãã°ãHogeããã±ã¼ã¸ã®é¢æ°ãå¼ã³åºããã¨ãã§ãã夿°ãè¿ãã¦ããããªãã my $c = Hoge::new(); ã¨æ¸ããã ãã¨ã¯ã $c->h() ã¨ãã£ãæãã§ä½¿ã£ã¦ããã°ããã®ã ã ãªããä»åã¯ã blessããã夿°ãè¿ãã¦ããã颿°ã new ã¨ããååã«ããã ããã§ã¯ããã£ã¨å ·ä½çãªä¾ãè¦ã¦ã¿ããã use strict; package Hoge; sub new { my $c = shift; bless $c; # Hogeããã±ã¼ã¸å ã§å¼ã°ãã¦ããã®ã§ã第2弿°ã¯'Hog
ããã å¥ããã±ã¼ã¸ãå¼ã³åºãæ¹æ³ããããããåºã¦ããã®ã§ãæ··ä¹±ãã¦ããã¨ããã§ã¯ãªãã ãããï¼ ãã¾ã¾ã§ã®ã¨ãããã¾ã¨ãããã å¥ããã±ã¼ã¸ã®é¢æ°ãå¼ã³åºãæ¹æ³ ããã±ã¼ã¸å::颿°å blessããã夿°->颿°å 'ããã±ã¼ã¸å'->颿°å ããã±ã¼ã¸å->颿°å ãã® 4ã¤ã®æ¹æ³ãã§ã¦ããããã ãã ä¸3ã¤ã«å ±éãã¦ããã®ã¯ã -> è¨å·ã§é¢æ°ãå¼ãã§ããã¨ã§ããã ã¤ã¾ã ååã®æå¾ã®ã½ã¼ã¹ãå®è¡ãã¦ã¿ãã ããã§ã¯ãååã®æå¾ã®ã½ã¼ã¹ãå®è¡ãã¦ã¿ããï¼ å ã»ã©ãè¿°ã¹ãããå¥ããã±ã¼ã¸ãå¼ã³åºãæ¹æ³ã¯ã ã§å¼ã³åºãæ¹æ³ > ã§å¼ã³åºãæ¹æ³ ã«å¤§å¥ã§ããã®ã§ãããããã®éãã示ãã®ããååã®ã½ã¼ã¹ã§ããã ï¼åæ²ï¼ use strict; package Hoge; sub h { my $z = shift; print "$z", "\n"; # 颿°ã«ä¸ãããã第1弿°ã表示
JavaScript ã«ããã new æ¼ç®åã®åä½ã¯å¤§ã¾ãã«ãã£ã¦ä»¥ä¸ã®ã¨ããã§ããã(new F() ã¨ããå ´åã) æ°ãããªãã¸ã§ã¯ããä½ãã 1 ã§ä½ã£ããªãã¸ã§ã¯ãã® [[Prototype]] å é¨ãããã㣠(__proto__ ããããã£) ã« F.prototype ã®å¤ãè¨å®ããã F.prototype ã®å¤ããªãã¸ã§ã¯ãã§ãªãã®ãªã代ããã« Object.prototype ã®å¤ãè¨å®ããã F ãå¼ã³åºãããã®ã¨ã this ã®å¤ã¯ 1 ã§ä½ã£ããªãã¸ã§ã¯ãã¨ãã弿°ã«ã¯ new æ¼ç®åã¨ã¨ãã«ä½¿ããã弿°ããã®ã¾ã¾ç¨ããã 3 ã®è¿ãå¤ããªãã¸ã§ã¯ããªããããè¿ããããã§ãªããã° 1 ã§ä½ã£ããªãã¸ã§ã¯ããè¿ãã ããã§ããªãã¸ã§ã¯ãã§ãããã¨ããã®ã¯ããªããã£ãå¤ (æååãæ°å¤ãçå½å¤ãundefined ãnull) ã§ã¯ãªãã¨ãããã¨ã ãnew Stri
ã¯ã©ã¹ãå®ç¾©ããæ¹æ³ã§ããèãä»ãã ãã§ããããã ãããããã®æ¹æ³ãããã¾ãããã£ã±ãã JavaScript ã£ã¦æè»ã§ããè¤éãªè¨èªã§ããã ã¡ãªã¿ã«ã以ä¸ã®ãã¹ã¦ã®ä¾ã¯ãã®ã¯ã©ã¹ãå®ç¾©ãã¦ãã¾ãã ã¡ãªã¿ã«ãåã¯ä¸çªä¸ã®æ¸ãæ¹ã§ããã çããã¯ã©ã®ããã«ããã°ã©ãã³ã°ãã¦ãã¾ããï¼ ãããã¿ã¤ãã使ããªããã¯ãã¼ã¸ã£ã使ãã // ãããã¿ã¤ãã使ããªãã // ã¯ãã¼ã¸ã£ã使ãã function Item(price) { this.showPrice = function() { alert(price); }; } ãããã¿ã¤ãã使ããªããã¯ãã¼ã¸ã£ã使ããªãã // ãããã¿ã¤ãã使ããªãã // ã¯ãã¼ã¸ã£ã使ããªãã function Item(price) { this.price = price; this.showPrice = function() { aler
å°ã æ±ããããã¾ããä¸å¤ã®åã§ãã®ã§ãç´°ããããºã»ã¹ã¬ãæãã»ã¤ã±ããµã¡ã¨ã¬ãå°æ±ããªã©ãããå ´åãããã¾ããããããä¸å¤ã®ç¯å²å ã§ããAmazonã³ã³ãã£ã·ã§ã³ã¬ã¤ãã©ã¤ã³ã«æºããç¶æ ã§ããä»å±åã¯ããå ´åã«ã®ã¿ãã®æ¨ãæè¨ãã¦ããã¾ãã説æã«ç¡ããã®ã¯ä»å±ããªããã®ã¨ãèããã ãããåçã«ã¦ç¶æ 確èªããå¸æã®æ¹ã¯ãé£çµ¡ãã ãããå¯è½ã§ããã°ã対å¿ããã¦ããã ãã¾ããã¢ã«ã³ã¼ã«é¤èæ¸ã帯ã¯èª¬ææã«è¨è¼ãã¦ããªãå ´ååºæ¬çã«ã¯ãããã¾ãããè¿ éä¸å¯§ãªå¯¾å¿ãå¿æãã¦ããã¾ããé éæ¹æ³:ã¯ãªãã¯ãã¹ã(追跡çªå·ãã) é éæéã«ã¤ãã¾ãã¦Amazonãèªåã§å·¦è¨ã®æéã表示ãã¦ããã¾ãããé常çºéæ¥ãã4æ¥ä»¥å ã«å°çãã¦ããã¾ããã³ã³ãã£ã·ã§ã³è¨è¼ã¨èããéãéã¯è¿éã»äº¤æå¯¾å¿ãããã¾ãã®ã§ãé£çµ¡ãã ããã å°ã æ±ããããã¾ããä¸å¤ã®åã§ãã®ã§ãç´°ããããºã»ã¹ã¬ãæãã»ã¤ã±ããµã¡ã¨ã¬ãå°æ±ããª
ã©ã³ãã³ã°
ã©ã³ãã³ã°
ã¡ã³ããã³ã¹
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}