Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜リリース編 先生:増井雄一郎

1,071 views

Published on

ーーーーーーーーーーーーーーーーーーーーーーー
schoo WEB-campusは「WEBに誕生した、学校の新しいカタチ」。
WEB生放送の授業を無料で配信しています。
▼こちらから授業に参加すると、先生への質問や、ユーザーとのチャット、資料の拡大表示等が可能です。
https://schoo.jp/class/599/room
ーーーーーーーーーーーーーーーーーーーーーーー

Published in: Business
  • Login to see the comments

増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの広め方〜リリース編 先生:増井雄一郎

  1. 1. 「wri.pe」を事例に学ぶ 自作サービスの作り方 Yuichiro MASUI / @masuidrive ∼ リリース編 ∼
  2. 2. @masuidrive Yuichiro MASUI miil / Toreta ! MobiRuby / PukiWiki Ruby on Rails
  3. 3. アジェンダ • 振り返り - 5min • Herokuへデプロイ - 10min • 自動テスト - 15min
  4. 4. source code http://bit.ly/open-wripe
  5. 5. http://bit.ly/open-wripe
  6. 6. 欲しいメモ帳アプリ • プログラマならMarkdown • gmailみたいなArchive • カレンダービュー • 全文検索・キーボードオペレーション • iPhone/iPad/Androidサポート
  7. 7. 設計 • 1週間以内に常用できるレベルのサービス構築 • 自分でずっと使える • メンテナンス・バージョンアップを簡単に • データの保全性を第一に
  8. 8. 技術選択 • 認証はGithubとFacebook • テストも兼ねてRails 4.0.0 + Ruby 2.0 • JavascriptはBackbone.js + HTML5 storage • 運用はPaaSで
  9. 9. View Model Controller Browser Ruby on RailsMySQL WebAPI
  10. 10. Javascripts! 57% Libraries! 8% Models! 15% Controllers! 20%
  11. 11. リリースに向けて • 技術的タスク • 広報的タスク
  12. 12. デプロイ • ハードウエア • OS • ミドルウエア • デプロイ
  13. 13. デプロイ先 • 自宅サーバ • データセンタ • VPS • Amazon Web ServiceA
  14. 14. PaaS • Platform as a Service • RubyやJavaなどの実行環境をサービスとして提供 • Heroku(SalesForce), EngineYard, Mogok(IIJ)
  15. 15. PaaSのメリット • 障害発生時に対応してもらえる • 高負荷時に対応が容易 • バックアップなど開発以外のコンポーネントが用意 されている • 多くの場合、開発時は無料で使える
  16. 16. PaaSのデメリット • 用意されているコンポーネント以外使えない • PaaS自体に障害が発生した場合対処できない • 処理性能に比べて高価格 • 設置リージョンの選択子が少ない
  17. 17. Heroku • 歴史がある (2007年∼) • 実績多数 • アドオンが多様 • Matzいるし • US/EUリージョン
  18. 18. deployは超簡単 • heroku toolbeltをインストールして • heroku create プロジェクト名 • git push heroku master • open http://PROJECT.herokuapp.com/
  19. 19. 維持コスト • Heroku Dyno x 2: $34.50 • Heroku Worker x 1: $36.00 • Heroku Postgres Olive: $50.00 • Adept Scale Skiff: $18.00 • Heroku SSL: $20.00 • Websolr Cobalt: $20.00 • Total: $178.50/mo
  20. 20. 気をつけたこと • なるべく軽快に動く様に作る • Rails以外のモノを使うときはAdd-onでサポートさ れているか確認
  21. 21. Rails使うならNew Relic • レスポンスタイムなどの統計情報をグラフ化 • 基本プランは無料 • 有料プランだと詳細な実行状態を確認できる
  22. 22. テストの自動化 • 一回のリリースだけならテストは重要ではない • 趣味の開発の場合、次の開発が1年後とかも • 一人で開発するにもテストが重要
  23. 23. テスト 機能テスト 結合テスト 単体テスト ← Unit test ← Integration test ← Functional test
  24. 24. Railsのテスト • 標準テスト - UnitTest • RSpec
  25. 25. Javascriptのテスト • RailsのテストはAPIレベルでのテストのみ • ユーザが触れるブラウザの挙動はテストされない
  26. 26. ブラウザを使ったテスト
  27. 27. 自動テスト • Selenium IDEで記録・実行 • ブラウザのみで実行
  28. 28. サーバと連携 • Selenium RC/Webdriver • プログラムから操作 • Capybara (Rails), PHPUnit extension
  29. 29. wri.peのテスト • Capybara - ブラウザ操作 • RSpec - テストフレームワーク • FactoryGirl - Fixture管理
  30. 30. まとめ • 運用を考えてリリースしよう • 継続的なリリースのためにテストを書こう • 一人プロジェクトでもテストは大事
  31. 31. 宿題 なぜテストが重要なのか 書き出しなさい

×