å¾ããã®ã®å¤ãã«ã³ãã¡ã¬ã³ã¹ã§ããã
ã¹ã¿ããã®æ¹ãè¬æ¼è
ã®æ¹ãåå è
ã®æ¹ããã¤ãããã¾ã§ããã
ä¼å ´ã§åã£ãã¡ã¢ãç½®ãã¦ããã¾ãã
æ£ç¢ºæ§ã¯ã¾ã£ãããã¦ã«ãªãã¾ããã®ã§ããã®ããããæ¿ç¥ã®ãããã ã¾ãããã¤ããã§ãå©ç¨ããã ããã°ã
ãã¨ãã¬ã¼ã³è³æã®ã¡ã¢ãå¤ããèä½æ¨©çã«ãã§ã¢ã¦ã¼ã¹ã®ç¯çãªã®ãã¡ãã£ã¨ãããããã¾ããããææããã°å¯¾å¿ããã¦ããã ãããã¨èãã¦ãã¾ãã
- ä¸æ¥ç®: ãªã¼ããã³ã°
- QCon / InfoQ ã®èª¬æã¨ãåå¾ã®ãã«ããã©ãã¯ã»ãã·ã§ã³ã®ç´¹ä»
- Rubyãã©ãã¯ã¯è§è°·ãã
- QCon / InfoQ ã®èª¬æã¨ãåå¾ã®ãã«ããã©ãã¯ã»ãã·ã§ã³ã®ç´¹ä»
- ä¸æ¥ç®: åå1: ãã¡ã¤ã³åºæè¨èª âãã®å½¹å²â / Martin Fowler
- DSLã«ã¤ãã¦ã®æ¬ãããï¼å¹´ãããæ¸ãã¦ãã
- å¹´å ãã£ã±ãã¯ããããã
- DSLs are everywhere
- Secret Panel: é¨å±ã«ã¯ãã£ã¦ãé»æ°ãã¤ããå¼ãåºããããã
- ã¹ãã¼ããã·ã³å³ / ã¯ã©ã¹å³ => ãã®ã¾ã¾Javaã³ã¼ããåãåºããããå¯èªæ§ãä½ããªããæ°ããè¨å®ã«ããã¨ãã«ã¯ã³ã³ãã¤ã«ãå¿ è¦ã«ãªã
- XMLã«ããã¨ãããã¡ãã£ã¨ã¯ãªã¢ã«ãªã
- Rubyã®è¨èªå DSL
- ã«ã¹ã¿ã ææ³ã®ã³ã¼ã(è¨èªå¤DSL)
- External DSL (è¨èªå¤DSL) 㨠Internal DSL (è¨èªå
DSL)
- è¨èªå DSLã¯ã親è¨èªã®å¶ç´ãåããããè¨èªã®ããã®ä½æ¥ããããªã - ãã®è¾ºã®ãã¬ã¼ããªã
- Command-Query API 㨠Fluent API (æµãããããªAPI)
- DSLã¨ã¯
- è¨èª
- ã³ã³ãã¥ã¼ã¿ããã°ã©ãã³ã°
- limited expressiveness (éå®çãªè¡¨ç¾å) <= general purpose ã§ã¯ãªã
- focused on particular domain (ç¹å®é åã«éä¸)
- write ãã read
- DSLãæ¸ããã¨ããªããã¸ãã¹ãã¼ãã«/ãã³ããã°ã©ããèªãããããªDSLã¯ãã³ãã¥ãã±ã¼ã·ã§ã³ãå©ããã
- [ææ³] æå¾ã®è©±(ãã³ããã°ã©ããèªããDSL)ã¯ãããã価å¤ããããã¨ã ã¨æãã¾ãããã¾ã¯Excelã§æ¸ãã表ã§ä¼è©±ãã¦ããããããã¾ãããããã®ã¾ã¾åä½ããã°ãã®æ¹ãé½é½¬ããªã訳ã§ããWord/Excelããwiki/cucumberã¸ããã£ã¦æãï¼
- DSLã«ã¤ãã¦ã®æ¬ãããï¼å¹´ãããæ¸ãã¦ãã
- ä¸æ¥ç®: åå2: ãã¥ã¼ãã£ãã«ã³ã¼ã / ã¾ã¤ã㨠ããã²ã
- ã³ã¼ãã¯è¨è¨ã§ãã
- è·äººè¸ãä¸åãã®ãåãæªãããã
- ã³ã¼ããæ¸ãããã®ä½æ¥å ¨ä½ãè¨è¨ãªã®ã«ããã®ä¸é¨ã®ä½æ¥ãåãåºãã¦ãè¨è¨ãã¨ããã®ã¯ã©ããã
- ã³ã¼ãã¯å®ç¨åã§ãã
- å®ç¨ã«ä¾ãã¦ãªãã¼ãç¨ã®ç¾
- ã³ã¼ãã¯èªã¿ç©ã§ãã
- å¹çããæ¢ããèªããã°ãçç£æ§ãä¸ãã <= ãCODE READINGã
- æå ã«ã½ã¼ã¹ãããã°ãããã¥ã¡ã³ãã«è¨è¿°ããã¦ããªãå 容ãçã§èªããã¨ãã§ãããOSSãã°ããããå®ç¨OSã®ã½ã¼ã¹ãå¦ã¹ããã¹ãã¼ã«ãã³ãBSDã®äººãã¡ã®æ´»åããã£ã¦ã®ãã¨ã
- ã³ã¼ãã¯äººãæåããã
- ãã¯ã¼ã®ç¾
- åªããã¢ã«ã´ãªãºã ã¯ãã§ããªããã¨ãã§ããããã«ããå
- Ruby1.9ã®M17Nãã吉田さんのパッチã§å®è¨¼ãããã¾ã§ã¯ã誰ãã§ããã¨æããªãã£ã
- å¹çã®ç¾
- ç°¡æ½ãã¯åãªã Paul Graham
- è¨èªã®é²åã®æ¹åã¯ãé ã®ä¸ã®ã¤ã¡ã¼ã¸ããã®ã¾ã¾æ¸ããæ¹åã¸
- Brooksã®çç£æ§ä¸å¤ã®æ³å(ã¢ã»ã³ãã©ã§ãRubyã§ãåæéã§æ¸ããè¡æ°ã¯åã => å®ç¾ã§ãããã¨ã¯å ¨ç¶éã)
- æ¬è³ªã«éä¸: ãã£ã¦ããã¡ã«ãã£ã¦ããã¨ãå¿ãã¡ãããããªãã®ã¯ãã¡
- å®è¡å¯è½ãªçä¼¼è¨èª Ruby
- DRY: Don't repeat yourself
- æ æ°ã®ããã®å¤å
- æ°´é³¥ã®ãã¨ã: ææãã¯ç¾ãããªãããè¦å´ãè¦ãã³ãããã®ã¯ç²ãããªã
- ã·ã³ãã«ã¨ã¯ãªã«ãï¼
- ç¾å®ã¯è¤éã人éãè¤éãè¤éãã¯ä¸å¯é¿
- 誰ããè¤éããå¼ãåããã°ã人ãæ¸ããã®ã¯åç´ã§ããã => 人éã®ããã®ã½ããã¦ã§ã¢
- ããã°ã©ã=ã¢ã¼ãã£ã¹ã
- æ¯è»ã§ã¯ãªããä½æ¥å¡ã§ã¯ãªããåµé çã»èªçºçã
- å é¢ã®ç¾: ã³ã¼ãã«å å¨ãããã°ã©ãã¯é¢å¿ãæã£ã¦æ¬²ãã
- å¤é¢ã®ç¾
- èªè¦ãéè¦: é£ã¹ããã¨ã¨ãã¯ãªã¨ã¤ãã£ãã§ãããã¨ã¨ã®ä¸¡ç«
- [ææ³]
- ã³ã¼ãããããã«æ¸ããã¨ã®æ義ãããã人ãå¢ããã¨ãããªãã¨æã
- å人çã«ãJavaScriptã®ã©ã¤ãã©ãª(è¨èªå¦çç³»å®è£ ãããªãã¦ä½¿ãæ¹)ã®ã³ã¼ããã¿ããªã§èªãä¼ããããã (ãããã«æ¸ããã)
- ã³ã¼ãã¯è¨è¨ã§ãã
- ä¸æ¥ç®: åå¾1: Open Webã®é²å±ã¨ãã®ä»å¾ / Dylan Schiemann
- Apps wants (ã¢ããªã±ã¼ã·ã§ã³ã«è¦æ±ããããã®)
- Web delivered (Webã§é å¸ã§ãã)
- useful (æç¨)
- ...
- It Depends (Webã¢ããªããã¾ãããã±ã¼ã¹)
- Apps with Static Contents (éçã³ã³ãã³ã)
- Document-oriented workflow (ããã¥ã¡ã³ãå¿åã®æ¥åæé )
- Text based content creation (ããã¹ããã¼ã¹ã§å 容ãæ¸ã)
- Dojoãªããã¢ããªãé«é »åº¦ã§ãªãªã¼ã¹ã§ãã
- HTMLã§é£ãããã¨
- â³ 2D, ãªãã©ã¤ã³/ã¹ãã¬ã¼ã¸, Comet
- à Audio/Video, 3D, ç»åå¤æ
- [ã½ã¼ã¹ã表示]ããªã§ããã£ãããWebã§ããæå³ãªããã
- ãã¯ããã¯ãé«éã«å¦ã¶ãã¨ãã§ãã
- Dojoã¯JavaScriptã«ã¯ã©ã¹ãæä¾ãã¦ãã
- jQueryã®ã¡ã½ãããã§ã¼ã³ã¯ãHTMLã®æä½ã«ã¯ãããã©....
- Browser Suck
- ãããã競äºãç¶æ³ãæ¹åãã¦ãã
- IE8以å¤ã¯é²åãæ©ã
- IEã®ã·ã§ã¢ã¯75%ãå²ã£ã
- html, javascript (Open Web)
- ä¸çªæ®åãããã©ãããã©ã¼ã
- HTML5, ECMAScript 3.1
- JavaScriptã®ã¨ã³ã¸ã³ãé«éåãã¦ãããã«ããã¯ã§ã¯ãªããªã£ã
- CSS3ã¯ãã¡
- Flex/Silverlightã¯ãããã©ãé·æçã«ã¯ç¬å ã®ç½
- ã¢ãã¤ã«ã®ãã©ã¦ã¶ã¯HTMLã§ããã°å®è¡ã§ãã
- é·æçãªå±æ
- [ææ³] Dojo使ã£ã¦ã¿ãããDojoXã«ä½¿ã£ã¦ã¿ããæ©è½ãããã¤ããã£ãã
- ä¸æçã«HTMLã§ã»ã¨ãã©ã®ãã¨ãã§ããã¨æãããããIEãIEãIEã
- ãã©ã¦ã¶ãJavaã¢ãã¬ãããWindowsã«æ¨æºã§è¼ã£ããã¨ã§æ®åããã¨è¨ã£ã¦ããã¨æãããã©ãJavaã¯ãã§ã«Sunãé å¸ãã¦ãã¦ãFlashã¯Adobeãã ã£ããããã©ã¦ã¶ãSafari/Chromeã§ããããããã¨ããæ°ãããã
- Apps wants (ã¢ããªã±ã¼ã·ã§ã³ã«è¦æ±ããããã®)
- ä¸æ¥ç®: åå¾2: Amazon Web Services in Action / Jeff Barr
- Speaker: Based on Seattle, Washington, USA. "Lifetime Technologist" StartupsâMicrosoftâã¹ã¿ã¼ãã¢ããã³ã³ãµã«âAmazon
- ã¯ã©ã¦ãã³ã³ãã¥ã¼ãã£ã³ã°
- over the Internet
- Flexible / On-Demand / At needed basis / pay-as-you-go
- ã¯ã©ã¦ãã解決ãããã®
- ITã®æ©æ¦(friction)ãæ¸ãã: å¥ç´ã帯åãæ¡å¼µãç½å®³å¯¾çãé»æº/å·æ¿ ...
- å£ããçµæ¸ã¢ãã«ã®ä¿®å¾©(Fix broken economic model): æè³ããã©ã³ãã³ã°ã³ã¹ãã«ãå®é対å¿ãäºæ¸¬æ§ã
- æ¸ãã: æ¥ãã§ããã°ã(hustule)ã æ½å¨ã³ã¹ããfear of success(ããããããã¦è½ã¡ãªããä¸å®)ãç´åå¾ ã¡ãç½é«ª
- Amazon Services
- EC2
- S3
- SQS: Simple Queue Service - ã¡ãã»ã¼ã¸ã³ã°
- CloudFront - ã³ã³ãã³ãããªããª
- AWS: Amazon Web Service
- Elastic MapReduce
- AWSã®ãªã¼ã¸ã§ã³
- US East 㨠EU West ããããAsiaã¯???
- åå ã«è¤æ°ã®ãã¼ã¿ã»ã³ã¿ãããããã ãAWSã使ãã¨ãã«ã©ãã使ããé¸æã§ãã
- [è£è¶³] è·é¢ãé·ãã¨éä¿¡ãé 延ããã®ã§ããµã¼ãã¹ç¸æã¨è¿ãã¨ããã§ãµã¼ãã¹ããå¿ è¦ãããã®ã ã¨æãã¾ã
- EC2 Elastic IP Addresses
- public static IP Address
- permanent Address
- Complete control
- EC2 Block Storage
- ãã£ã¹ã¯ 1GB ãã 1TBã¾ã§
- S3ã¸ã®Snapshot Backup ããµãã¼ã
- [ææ³] EC2/S3以æ¥ãAmazonã®ã¯ã©ã¦ãæ©è½ã¯é²åãã¦ãå®è³ªçã«ãªã£ã¦ãã¦ããã¨æããããªã¢ã¼ãã®ãã¼ã¿ã»ã³ã¿ã¼ã«å¿ è¦ãªæ©è½ããã¹ã¦æãã¦ãã¦ãã(æãããã¨ãã¦ãã)ã®ã§ã¯ãªãã ãããããã¼ããããããªãã
- 3.years.of(:ruby) å®ä¸çã®Ruby - 3å¹´éã®çµé¨ãã/ Martin Fowler
- 41åã®ããã¸ã§ã¯ãããã£ãã
- 2006-8
- ã»ã¨ãã©20人ã12ã¶æ以å
- atlanta project - 40人ã2年以ä¸
- jersey - 20人強ãï¼å¹´å
- mingle - 20人弱ãï¼å¹´å
- ã ãã ã大è¦æ¨¡ã®ããã¸ã§ã¯ã
- 2006 - 5-6人ã¾ã§
- 2007 - 25人ã®ããã¸ã§ã¯ã
- 2008 - 30äººè¶ ãï¼ã¤
- Rubyã¯å£²ãä¸ãã«è²¢ç®ãã¦ãããï¼
- Scott Conley: ããæ¹ãå¤ãã¦ããã競äºåªä½ã¸ã®è§¦åªãagile㧠第ä¸ç´ã®ãããæã£ã¦ãããã¨ã¨ã®ç¸ä¹å¹æãrubyã¯ããã®è¯ããå¼ãåºããã¦ããããã¹ããããã°ã¿ã¤ãã³ã°ãrakeãcapistranoã
- Rubyã¯éçºãã©ãããã©ã¼ã ã¨ãã¦ã©ã®ãããæç¨ã
- ThoughtWorks: Yes: 36, No: 5
- Noã®çç±: no worse fo Ruby (æ £ããªãæ°ããæè¡ã«å¯¾å¿ããã³ã¹ãã»ã©ã«ã¯æ¹åããªã)
- Noã®çç±: .NETã¢ããªã±ã¼ã·ã§ã³ã¨ã®ã¤ã³ãã°ã¬ã¼ã·ã§ã³ãé£ããã£ã
- Noã®çç±: social issues (Rubyã«å対ãã¦ãã人ããããITé¨éã«ã)
- â»ä»ã®ãã¼ã«ã¨ã¯æ¯è¼ãã¦ããªã
- æå¹æ§ã¯ã©ãæ¹åããã
- Improvement Ravine: å¦ã¶ã³ã¹ãããããããã£ããå¹çã¯è½ã¡è¾¼ããããã®å¾ãæ¥éå復ããé«ãå¹çã«ãªã
- Ravine(è°·é)ã¨ã¤ããã: Ravineãäºæ¸¬ããçµé¨ã使ã
- 人æ確ä¿
- Scott Conley
- ãã¶ã¤ã³çµé¨ã¨åçè¨èªã使ã£ããã¨ãããã°ãRubyã®çµé¨å¤ããªãã¦ã
- ã¡ã¿ããã°ã©ãã³ã°ãããã£ã¦ããã°
- ããªããªã¼ãªã¹ã¯ã¯ãã
- åçè¨èªã®ãã¶ã¤ã³ãã¿ã¼ã³ãç¥ã£ã¦ãããã¨ã¯ãRubyã®çµé¨ãããéè¦
- Rubyã®å¼·ã¿ã¯ã¡ã¿ããã°ã©ãã³ã°ãè¡ãããã®ãã¼ã«
- ã¡ã¿ããã°ã©ãã³ã³ã° => 使ããããã«ãªãã¨ããããããããããããäºæ¸¬ãããã¨ãéè¦ãå®é¨å ´(Sandbox)ã¨ã¡ã³ã¿ã¼ãå¿ è¦ã
- Monkey Patching
- ã©ã®ãã¡ã¤ã«ã§æ¡å¼µããã®ãããããªããªã => moduleã使ã£ã¦ã¤ã³ã¯ã«ã¼ãããã° class#ancesters ã§ãã©ããã
- Is a Ruby code base difficult to work with?
- David Rice: ã¯ãªã¼ã³ãªã³ã¼ãæ¸ããã10人ãããã®ã²ã¨ã§ãã³ã¼ããå ±åææã§ããã
- Badri Janakiraman: æ¯è¼çã«å°ããªãã¼ã (ãã¹ããããã£ã¦ãã人)ã§å§ããããã¼ã ãå¾ã ã«æ¡å¤§ã15人ãããã®ãã¼ã ã«ãªã£ããJavaã.NETããã·ã³ãã«ãªãã¼ã«ã§ååãIDEãããã°ããã®ã«ãã¨ãã話ã«ã¯ãªã£ã¦ãªããRubyã®ã³ã¼ããã¼ã¹ã¯ç®¡çãã¥ããã¨ãããã¨ã¯ããªãã40人ã®Atlantaãã¼ã ã§ã
- æåã¯çµé¨ã®è±å¯ãªå°ããªãã¼ã ã§å§ããã¨ãããRubyã§ãªãã¦ããã
- çç£æ§ã¯?
- Railsã§ããªãå¼·å¼ãªä¸»å¼µããã£ã
- ThoughtWorks: åä¸ãã 28 / ããã§ãªã 3
- ã©ã®ãããï¼: 2åã¨ããããã¸ã§ã¯ããå¤ãã£ãã1.5å-5åã¨ãã人ã75%以ä¸
- Rubyã使ã£ã¦ããã¨ãã«èãã¨ãã¾ãã¾ããC#ã«æ»ã£ããã¨ã«èãããããRubyã®æ¹ã2åãã¨ãã人ããã
- Scott Conley: ã¹ã³ã¼ããèããã¢ããªã¹ããå¤ãå¿ è¦ = éçºãã¼ã ã®çç£æ§ã¯é«ãã
- Is Ruby Slow?
- Yes: JRubyã¨ãã§æ¹åãã¦ãããã©ããã£ã±ãé ãè¨èª
- but: ã§ããRubyãããã«ããã¯ã«ãªããã¨ã¯ãã»ã¨ãã©ãªããã ãã ãDBãããã«ããã¯ã«ãªã
- ä¸é¨ã®ããã¸ã§ã¯ãã§ããã»ããµã®æ§è½ãåé¡ã«ãªããã¨ããã£ã: mingle
- David Rice: mingleã¯ææ°ã®ãã¼ã¿ãè¿ãå¿ è¦ããã£ãã®ã§ãhttpè¦æ±ã§CPU100%ã使ãåãããããã®åé«ããã·ã³ãè²·ã£ãããããããã¼ã ã¯å¹´ï¼åããªãªã¼ã¹ã§ããããªãªã¼ã¹ãããæ©è½ãå¤ããæè¡çãªè² åµã«ç¸ãããªãã顧客ã¯ãªãªã¼ã¹ãé¸æãããRails2.3/JRuby1.1.7ã§ã¹ã¬ããã»ã¼ãã¨æ§è½æ¹åãã¿ãã¾ãã
- Testing with Active Record
- ãªãã¸ã§ã¯ãã¨ãã¼ã¿ãã¼ã¹ãä¸å¯¾ä¸ã«ãã§ãç²çµåã§ãªããªãã=> ç解ããã®ãç°¡åã«ãªããå©ç¹ã®æ¹ãå¤ãã
- ãã¹ãã«åé¡ããããDBã¢ã¯ã»ã¹ã¯å®è¡ã³ã¹ããé«ãã®ã§ããã¹ããä½éã«ãªã => ã¹ã¿ãã§DBãã¹ã¿ãã¢ã¦ãããããã¹ãã¨æ¦ãã
- 80%ã¯ActiveRecordã§å¯¾å¿å¯è½ã ãã20%ã¯SQLãæ¸ããªãã¨ã§ããªãå ´å(ãªã¼ã¯)ããã
- ORãããã¯ä¸è½ã§ã¯ãªããç¹ã«ããã©ã¼ãã³ã¹ã
- SQLãç¥ããªãã¦ã¯ãããªã
- [ææ³] ããããã¼ã ãå®éã«Rubyã使ã£ã¦çç£æ§ãããã¦ãããã¨ããå ±åã¯ããããã¨æããããã¾ã¯ããããªãããã¼ã ãããã¨ããã絶対ã«æéã«ãªãã¨ãããã
- 41åã®ããã¸ã§ã¯ãããã£ãã
- Ruby on Railsã§å¤ããã¨ã³ã¿ã¼ãã©ã¤ãºéçºã®ç¾å ´ / å¤§å ´å¯§å
- ä¼å ´èª¿æ»: æå¤ã¨ãèªç¤¾æ¡ä»¶ãåè¨éçºã§æ¢ã«ä½¿ã£ã¦ãã人ããããã£ã
- ããã°ã©ãã®ä¸»å¼µ: Rubyã¯æ¥½ãã -> æªããï¼(ãªã¹ã¯ãæ°ã«ãªã) -> 楽ããããã楽ãããªããããããªã¹ã¯ã«ã¯é¢ä¿ãªãã§ããã
- çµå¶è ãRailsã使ã3ã¤ã®çç±
- (ãã¿ã¾ãããã¡ã¢ã¨ãããã¦é·ãã®ã§å²æãã¾ãããã¶ãè³æãã©ããã§ã§ãã®ã§ã¯ãªããã¨ã)
- [ææ³] çµå¶è è¦ç¹ã§ãRuby/Railsã®å©ç¨ã®ä¾¡å¤ãã³ã¹ãã«ã¤ãã¦ã¾ã¨ãã¦ãã¦ãä¼æ¥ã«ãã人ã社å ã®èª¬å¾ã«ä½¿ããããªãã¦ãã¦ãè©°ã¾ã£ã¦ããã
ä¸æ¥ç®ã¯ããã¾ã§ã§ããäºæ¥ç®ã¯ã¨ã³ããªåãã¾ãã