ruby on rails による web サイト構築
DESCRIPTION
Ruby on Rails による Web サイト構築. 吉田 和弘 [email protected] 2008-10-25 オープンセミナー 2008@ 岡山. Web application framework. Ruby on Rails Merb. Ruby on Rails. rails-2.1.1 gem install rails Rails Trac → Git and Lighthouse http://github.com/rails http :// rails.lighthouseapp.com. move to …. - PowerPoint PPT PresentationTRANSCRIPT
![Page 2: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/2.jpg)
Web application framework
• Ruby on Rails• Merb
![Page 3: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/3.jpg)
Ruby on Rails
• rails-2.1.1• gem install rails• Rails Trac → Git and Lighthouse– http://github.com/rails– http://rails.lighthouseapp.com
![Page 4: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/4.jpg)
move to …
• Subversion → Git• Test Unit → RSpec• Mongrel → Thin• Multi process → Multi thread• Ruby 1.8 → Ruby 1.9
![Page 5: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/5.jpg)
テスト駆動開発Test Driven Development
![Page 6: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/6.jpg)
Testing framework
• Test Unit → RSpec– Rubyist Magagine (るびま)– スはスペックのス
![Page 7: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/7.jpg)
RSpec
• test/unit → spec/models• test/functional → – spec/controllers– spec/helpers– spec/views
• test/integration → stories → features
![Page 8: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/8.jpg)
test/functional
Model
Controller View
Model
![Page 9: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/9.jpg)
spec/controllers
Model
Controller View
Model
mock Model
stub Model
stub render
![Page 10: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/10.jpg)
Stub and Mock
• isolation from database• isolation from view
![Page 11: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/11.jpg)
cucumber
• RSpec story runner → cucumber• integration test• rake features
![Page 12: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/12.jpg)
rcov
• code coverage tool• rake spec:rcov
![Page 13: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/13.jpg)
動的な UIAjax
![Page 14: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/14.jpg)
Ajax
• Sortable element• Add/Remove element (Client side)
![Page 15: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/15.jpg)
セキュリティSecurity
![Page 16: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/16.jpg)
security features
• SQL quoting• HTML sanitization• CSRF protection
![Page 17: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/17.jpg)
possible vulnerabilities
• Cookie session store• Mass assignment• DoS: ex. XML entity explosion attack
![Page 18: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/18.jpg)
キャッシュCache
![Page 19: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/19.jpg)
Cache
• ActiveSupport::Cache• Cache type:
Page / Action / Fragment• Cache store:
Memory / File / DRb /MemCache / CompressedMemCache
![Page 20: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/20.jpg)
サーバ構成Deployment
![Page 21: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/21.jpg)
Thread implementation
• Ruby 1.8:– Thread = Green Thread
• Ruby 1.9:– Thread = Native Thread with GIL– and Fiber
![Page 22: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/22.jpg)
Network programming
• Multi Threading + I/O Blocking• Single Threading + Non I/O Blocking– Never Block: Multi Fibering
![Page 23: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/23.jpg)
Rails 2.1
Ruby on Rails
DB
App
Ruby on Rails App
Ruby on Rails App
WebServer
![Page 24: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/24.jpg)
Rails 2.2
Ruby on Rails DBApp
PoolApp
App
WebServer
![Page 25: Ruby on Rails による Web サイト構築](https://reader035.vdocuments.mx/reader035/viewer/2022062310/56816371550346895dd44d1e/html5/thumbnails/25.jpg)
Thank you