Eric Miraglia (@miraglia) is an engineering manager for the YUI project at Yahoo. Eric has been at Yahoo since 2003, working on projects ranging from Yahoo Sports to YUI. For the past several years, Eric and his colleagues on the YUI team have worked to establish YUI as the foundation for Yahoo's frontend engineering work while open-sourcing the project and sharing it with the world under a libera
ãã¦ãã¡ãã£ã¨ãã¶ãã¿è©±ãIterator ãªãã¦æ¥µãã¦ãããµãããã¶ãã¿ã§ããããªãããå¤ã£ã¦ã.....ã¯ãã§ãããå®ã¯ããã§ããªããã¨ãã話ã§ãã ä»æ¸ãã¦ããããã°ã©ã ã§ãç§ãæ¸ããã®ãåèã«ãå¥ãªããã°ã©ã ãæ¸ãè¥ã人ãããIterator ãè¿ãã¡ã½ããããªãã¦å®è£ ããã®ã¯åãã¦è¦ã¾ãã...ããªãã¦è¨ã£ã¦ããã®ã§ããã¾ããè¥ãåã ãã許ãã¦ãï¼ è¦ããã«ãList ãè¿ãã¤ã³ã¿ã¼ãã§ã¤ã¹ã«ã¯æ £ãã¦ãã¦ããIterator ãç´ã«è¿ããããªã¤ã³ã¿ã¼ãã§ã¤ã¹ã«ã¯åãã¦ãç®ã«ããã£ããããã§ãã ç§ãçµæ§ Iterator ãè¿ãã®ã好ãã ã£ãããã¾ããèªåã§å é¨ç¡åã¯ã©ã¹ã§ Iterator ãçæãã¦è¿ã...ã¨ãã奴ã§ãããå®éãList ãè¿ãã®ã¨ã¯åºå¥ãã¦ä½¿ã£ã¦ãã¾ããããã¯ã 1. Iterator ã®ã½ã¼ã¹ã¨ãªãï¼Aggregate ãªï¼ã¯ã©ã¹å ã«ä¿æããããä¸åº¦ä½ã£
Webã·ã¹ãã ã主æµã¨ãªãããã¼ã¿ãã¼ã¹ã»ã¢ããªã±ã¼ã·ã§ã³ã¯JavaãC#ã¨ãã£ããªãã¸ã§ã¯ãæåè¨èªã§éçºãããã¨ãå¤ããªã£ãããããããã¼ã¿ãã¼ã¹è¨è¨ã¯ãªãã¸ã§ã¯ãæåã¢ãã«ã¨ãã¾ããã¿åããããã¼ã¿ã¢ãã«è¨è¨ã«è¦å´ããã¨ã³ã¸ãã¢ã¯å°ãªããªããæ¬é£è¼ã¯ããªãã¸ã§ã¯ãæåã¢ãã«ã¨ãã¼ã¿ãã¼ã¹ã¢ãã«ã®ã¤ã³ãã¼ãã³ã¹ãã¹ãããã«å¯¾å¿ãããã¯ããã¯ãç´¹ä»ãããï¼ç·¨éå±ï¼
第1ç« ã¯ããã¦ã®ãã¶ã¤ã³ãã¿ã¼ã³ ã¯ããã« ãã¶ã¤ã³ãã¿ã¼ã³ã¨ã¯ ç¹éã®æ§æ ããããããªãã¸ã§ã¯ãæå ãããããUML ããã㫠第2ç« éå¼ãã«ã¿ãã° ãã¸ãã¯ç·¨ Singleton (ã·ã³ã°ã«ãã³) Factory/Factory Method (ãã¡ã¯ããª/ãã¡ã¯ããªã¡ã½ãã) Strategy (ã¹ãã©ãã¸) Composite (ã³ã³ãã¸ãã) Visiter (ãã¸ã¿) 第3ç« éå¼ãã«ã¿ãã° J2EEç·¨ Template Method (ãã³ãã¬ã¼ãã¡ã½ãã) Facade (ãã¡ãµã¼ã) ViewHelper (ãã¥ã¼ãã«ã) DAO (Data Access Object) 第4ç« éå¼ãã«ã¿ãã° ãã®ä» ã¦ã¼ãã£ãªãã£ã¯ã©ã¹ å®è¡æä¾å¤ãæ¨æºçã«ä½¿ã Nullãªãã¸ã§ã¯ã 第5ç« ãã¶ã¤ã³ãã¿ã¼ã³é©ç¨ã®åæ ã¯ããã« ã¢ããªã±ã¼ã·ã§ã³ã®ä»æ§ ãªãã¡ã¯ã¿ãªã³ã°åã®ãµ
ãã¦ãæ¨æ¥ãã¡ãã£ã¨è§¦ãã¾ããã PofEAA èªæ¸ä¼ã«è¡ã£ã¦ãã¾ãããPatterns of Enterprise Application Architecture (é¦è¨³: ã¨ã³ã¿ã¼ãã©ã¤ãº ã¢ããªã±ã¼ã·ã§ã³ã¢ã¼ããã¯ãã£ãã¿ã¼ã³) ã®èªæ¸ä¼ã§ãæ¨æ¥ã¯ç¬¬10ç« ã® Data Source Architectural Patterns ã§ãããRuby on Rails ã® O/R ãããã§ããã¨ããã® ActiveRecord ã®å ã«ãªã£ã¦ããã¿ã¼ã³ãActive Record ãã¿ã¼ã³ (ããããããª) ãå«ã¾ããç« ã§ãã¿ãªããæ°ãæ¸ç±ã®ä¸ã§ãç¹ã«é¢ç½ãç« ã ã¨ã®ãã¨ã§ããã Table Data Gateway Row Data Gateway Active Record Data Mapper ã® 4 ã¤ã®ãã¿ã¼ã³ãããã¾ããã ãã®æ¸ç±ããããªæãã§ããããªã¨ã³ã¿ã¼ãã©ã¤ãºã¢ããªã±
ã½ããã¦ã§ã¢ãã¿ã¼ã³ã¨XPãã¯ããã¨ããã¢ã¸ã£ã¤ã«ã ã¼ãã¡ã³ãã¯å ±éç¹ãå¤ããããæ£ç¢ºã«ã¯ãã½ã¼ã·ã£ã«ãªå½¢ï¼äººèï¼ã§æ´å²çé£ç¶æ§ãæã£ã¦ããããã«ãææ³çã«å ±éããã®ã¯å½ç¶ã ã¨ãããã ãã¿ã¼ã³ã建ç¯å®¶Christopher Alexanderï¼ä»¥ä¸C.A.ï¼ã®ææ³ããKent Beckãã½ããã¦ã§ã¢ã®ä¸çã«æã¡è¾¼ãã ãã¨ãããã¨ã¯æåã§ããã1987å¹´ãæåã«ã½ããã¦ã§ã¢ã«ãã¿ã¼ã³ãæã¡è¾¼ãã ã®ã¯ Kent Beck 㨠Ward Cunningham ã«ããGUIè¨è¨ã«é¢ãããã®ã ãKentã¨Wardã¯ãã¿ã¼ã³ã³ãã¥ããã£Hillside Groupãçºè¶³ããããããã§ãã¿ã¼ã³ãåéããæ´»åãPLoPã¨å¼ã°ãããã®ã§ãç¾å¨ãç¶ãã¦ããã ãã®ã³ãã¥ããã£ã§Jim Coplienï¼é称Copeï¼ãéè¦ãªåãããã¦ããï¼å½¼ã¯2001å¹´æ²ç¸ã®MensorePLoPã«ãæ¥æ¥ãã¦ããï¼ãCope
ä»åã¯ããã¿ã¼ã³ã1ã¤ã ãç´¹ä»ãã¾ãããMediatorãã¿ã¼ã³ãã§ããGoFæ¬ã§ã¯ãããããã®ãã¿ã¼ã³ã®ãç®ç]ãèæ¯ããå¹æããªã©ãæ示ããã¦ãã¾ããç§ããã¡ãã£ã¨çä¼¼ããã¦ã¿ã¾ããããè¤æ°ã®ãªãã¸ã§ã¯ããçµã¿åããã¦ããã°ã©ã ã®æ©è½ãå®ç¾ããã¨ããç®çã«ããã¦ããªãã¸ã§ã¯ãéã®é¢é£ãã´ãã£ã´ãã£ã«ãªã£ã¦ãã¾ãã¨ããèæ¯ï¼åé¡ï¼ããããMediatorãã¿ã¼ã³ã®æ¡ç¨ã«ãã£ã¦é¢é£ããã¬ã¤ã«æ´çã§ããã¨ããå¹æãããã¾ãã説æã ãã§ã¯ãä½ã®ãã¨ã ãããããªãã¨æãã¾ãã®ã§ãå ·ä½ä¾ããè¦ããã¾ãããã å³1[æ¡å¤§è¡¨ç¤º](1)ãã覧ãã ãããããã¯ãUMLï¼Unified Modeling Languageãã¦ã¼ã¨ã ã¨ã«ï¼ã¨å¼ã°ãã表è¨æ³ã§è¨è¿°ãããããã°ã©ã ã®è¨è¨å³ã§ããUMLã§ã¯ãåè§å½¢ã®ä¸ã«ä¸ç·ä»ãã§ååãæ¸ãã¦ãªãã¸ã§ã¯ãã表ããé¢é£ã®ãããªãã¸ã§ã¯ããç¢å°ã§çµãã§ç¤ºãã¾ããããã§é¢é£
以ä¸ã®æç« ã¯ãKent BeckãWard Cunninghamã«ãããUsing Pattern Languages for Object-Oriented Programsãã®æ¥æ¬èªè¨³ã§ããã Ward Cunninghamæ°ã®è¨±å¯ãå¾ã¦ãããã«æ²è¼ããã Kent Beck, Apple Computer, Inc. Ward Cunningham, Tektronix, Inc. Technical Report No. CR-87-43 September 17, 1987 Submitted to the OOPSLA-87 workshop on the Specification and Design for Object-Oriented Programming. æ¦è¦ ãªãã¸ã§ã¯ãæåããã°ã©ãã³ã°ã¸ã®ãã¿ã¼ã³è¨èªã®é©åã«ã¤ãã¦æ¦èª¬ãããã¦ã£ã³ãã¦ã»ãã¼ã¹ã®
åãã¦å¦ã¶æ¹ãéå»ã«æ«æããçµé¨ã®ããæ¹ãç¥èã確åºãããã®ã«ãããæ¹ã対象ã«ãã¤ã©ã¹ããåçã使ã£ã¦ãããã楽ãã解説ãã人æ°ã®Head Firstã·ãªã¼ãºã®ãã¶ã¤ã³ãã¿ã¼ã³ç·¨ãåºæ¿çãªã¬ã¤ã¢ã¦ããæããèãå©ãè¦äºãªãã¨ããå¼ãè¾¼ã¾ããå°è©±ã楽ããã¯ã¤ãºãããºã«ã§é£½ãããã¨ãªãèªã¿é²ããã¨ãã§ãã¾ããè¤éé£è§£ãªãã¶ã¤ã³ãã¿ã¼ã³ã®æ¦å¿µãé¢ç½ãã»ã©ããããããç®ããã¦ãã³ã®ç»æçãªæ¸ç±ã§ãã æ£èª¤è¡¨ ããã§ç´¹ä»ããæ£èª¤è¡¨ã«ã¯ãæ¸ç±çºè¡å¾ã«æ°ã¥ãã誤æ¤ãæ´æ°ãããæ å ±ãæ²è¼ãã¦ãã¾ãã以ä¸ã®ãªã¹ãã«è¨è¼ã®å¹´æã¯ãæ£èª¤è¡¨ãä½æããå¢å·æ¸ç±ãå°å·ããæã§ãããææã¡ã®æ¸ç±ã§ã¯ããã§ã«ä¿®æ£ãæ½ããã¦ããå ´åãããã¾ãã®ã§ãæ¸ç±æçµãã¼ã¸ã®å¥¥ä»ã§ãææã¡ã®æ¸ç±ã®å·çãå·ãå¹´ææ¥ãã確èªã®ä¸ããå©ç¨ãã ããã 1-5å·æ£èª¤è¡¨ 2008å¹´12æ18æ¥ â p.319ã2çªç®ã®ã³ã¡ã³ã ã誤ãã¡ã«ã¯å¥ã®æ段
ã©ã³ãã³ã°
ã©ã³ãã³ã°
ã©ã³ãã³ã°
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}