Your SlideShare is downloading. ×
「Webサービスのつくり方」     のつくり方 2013/02/23 Kansai.pm 第15回ミーティング       Yusuke Wada a.k.a. yusukebe
自己紹介• 和田裕介 1981年生=31歳• ゆーすけべー / yusukebe• 神奈川県出身 / 在住• (株) ワディット代表取締役社長• (株) オモロキ最高技術責任者
最近のお仕事• オモロキ業務 • ボケて 開発 運用 • 7割程度• ワディット業務       http://bokete.jp/ • メルマガ、執筆、講演 • 3割程度
ボケて• 写真で一言ボケるWebサービス• PC 2000万PV / month• スマホWeb 250万PV / month• iPhone / Android アプリ 計100万DL• 総 PV 1億PV弱 / month• Webサイド、...
そういえば...
本を出しました• Webサービスのつくり方• 技術評論社さんから2012/11/20発売
ということで...
今回のアジェンダ• 書籍を書いて出版した裏側や経緯• 本を書くのに使えるツール等の紹介• チームで開発していくことの留意点• よりツッコんだ Perl の話など• エンジニアが本を書くことへの考え
念願の書籍出版
実は 2009年 から...• 技評の細谷さんに声をかけてもらい... • 小飼弾のアルファギークに逢いたい❤ 出演 • WEB+DB Press Vol. 54 特集
「書籍を書かないか?」と言われて2010年頭には Perl本 の提案 をした
ちょw 本出したの2012年末だぜwww
3年越しの目的達成細谷さんありがとうございます
本はとにかく出したかった• 昔から本が好きだった• 自分でも何かしら書いてみたかった• 収入的なモノは求めてない• 本を出版する仕組みが知りたかった• ハクをつけるため
3年かけてよく書けたね?• Perl 本 からの方向転換• 一番興味のある Webサービス に焦点• 網羅的につくり方を紹介する• まぐまぐ!で 2012年2月からメルマガ開始• メルマガ内の連載を書籍にする戦略 • 結局これが功を奏した
33のエッセイという    切り口
はじめに エッセイ風にWebサービスのつくり方を語る●第1章 心構えと下準備             ●第4章 開発「ぐだぐだ言ってないでコードを書けよ、ハゲ」   30分、JavaScriptでつくるWebサービスの動くモックMac一つあれば...
本書の意図と企み• メルマガ連載とエッセイ形式は相性がいい • 個人的にエッセイが好きだったり... • どこから読んでもいい。技術書には珍しい• Webサービスの制作について俯瞰できるよう • 個別のツッコんだテクはググってもらう• 何かつく...
出してみての評判と感想• Amazonレビュー ★5 x 4 / ★3 x 3• Blogでの評判もまずまず• やる気が出たという意見 • 狙い通りで嬉しい!• 読みやすいという意見 • 想定してなかったけど嬉しい!
出版の行程
• 2012年2月から8月 原稿執筆• 9月上旬 脱稿• 9月〜10月 編集、ゲラ上がり、修正• 10月 装丁デザイン作成• 11月上旬 印刷所入稿• 11月13日 見本誌完成• 11月20日 一般発売• 11月30日 販促イベント
こだわり
コード例は  PerlでPerlはほどよく冗長に書けば     読みやすいから
技術書として異質に• 装丁に対してツッコんで要望 • 編集会社さんの打ち合わせにも同席• イラスト書いてもらった!
個人的に愛せる   本ができた!       読んでくれた方細谷さん、出版会社さんありがとうございます
原稿を書く時の武器
Markdown+Byword
Dropboxで共有
プレビューもしたいよねー   ってことで...
自作アプリ「Dropdown」
Dropdown• 自分のDropboxファイルをブラウザか らプレビュー出来るWebアプリ• Markdownっぽい拡張子のファイルは Text::Markdownを使って整形表示• Dropbox APIの開発モードだと1アプリ につき5ア...
use WebService::Dropboxsub login {    my $self = shift;    my $dropbox = $self->app->dropbox;    my $url = $dropbox->login...
use Text::Markdownuse Text::Markdown qw/markdown/;...;if ( $name =~ m!.(?:md|mkdn|markdown|mkd|mark|mdown)$! ) {    $conte...
結果的に便利だったhttp://github.com/yusukebe/Dropdown
デモ
もっと書きたかった今だから言いたい事
チームでのWebサービス企画 • 一人で小さい規模から始めること  以外のWebサービス企画 • チームビルディング • 打ち合わせ、ブレインストーミング • リーダーシップ • 戦略とマネタイズ
ざっくりと答えを言うと
楽しくやろう!
オモロキの例• 自然と気の合う仲間が集まって来た...• 話し合いのルールを暗黙の了解で • みんながリーダーシップを発揮する • 打ち合わせはダラダラしない • 最初は意見を否定しない • マネタイズは後から
Perlのツッコんだ話  もしたかった!
Mojolicious 推し!
Mojolicious• 薄い Web Application Framework• no O/R Mapper, not full-stack, but  components are full-stack.• つまり Mojolicious...
実はKindle出版を目指してMojoilcious本を書いてる...
MVCのモデルについて• Modelにビジネスロジックをまとめる とお得なのが分かるケース• PC用Webとスマホ用Webをつくる時• Command Line Interface からの利用• ある程度大きくなると「Controllerと 分...
ボケてでの事例Bokete::Web::Controller::Boke     Bokete::Model::Boke                 Controllerからの呼び出し                            ...
Validationも工夫• form -> FormValidator::Lite• data on Model -> Data::Validator  # controller  if($self->form(Boke)->has_erro...
開発しつつ運用• VPSを使ってもいいのは2台まで!?• ボケてをAWSへ移行した! • さくらVPSで10数台を使ってた...• 運用は自動化 / 委譲をして楽をする• Cinnamon かわいいよ
Cinnamon$ cinnamon web deploy:update$ cinnamon web server:restart      naoyaさんのレシピほぼまんま使ってるよ! Perlだからconfig.plで条件分岐もすぐ書けちゃう...
そろそろ締める...
エンジニアが本を書くこと
ぐだぐだ文章書いてないで  コード書いてた方が   いいんじゃね?
確かにでも書きたかった...
Why?
気づかせてくれた紹介文  Sendai.pmの後藤さんによる
そうか!モノをつくる楽しさを 伝えたいんだった!
俺はPerl他を通じて楽しんでWebをつくってるしその楽しさを多くの人に知ってもらいたいし仲間  を増やしたい!
まとめ
本を出した件• つくる行程自体はじめてで楽しかった• 評判やレビュー等勉強になります• もっとツッコんだ話もしたい• とにかく本を出せて成長出来た• エンジニアリングの楽しさを伝えていく
Webサービスのつくり方「新しい」を生み出すための33のエッセイAmazonやおっきめの書店で好評発売中!
「Webサービスのつくり方」 のつくり方
「Webサービスのつくり方」 のつくり方
「Webサービスのつくり方」 のつくり方
Upcoming SlideShare
Loading in...5
×

「Webサービスのつくり方」 のつくり方

19,934

Published on

2013/02/23 Kansai.pm 第15回ミーティング / Yusuke Wada a.k.a. yusukebe

Published in: Technology
1 Comment
63 Likes
Statistics
Notes
  • Please dear can you contact me on my email id jessicaduale@yahoo.com, i have something private to discuss with you. Thank, i will be happy to meet you in my email. Jessica
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
19,934
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
0
Comments
1
Likes
63
Embeds 0
No embeds

No notes for slide

Transcript of "「Webサービスのつくり方」 のつくり方"

  1. 1. 「Webサービスのつくり方」 のつくり方 2013/02/23 Kansai.pm 第15回ミーティング Yusuke Wada a.k.a. yusukebe
  2. 2. 自己紹介• 和田裕介 1981年生=31歳• ゆーすけべー / yusukebe• 神奈川県出身 / 在住• (株) ワディット代表取締役社長• (株) オモロキ最高技術責任者
  3. 3. 最近のお仕事• オモロキ業務 • ボケて 開発 運用 • 7割程度• ワディット業務 http://bokete.jp/ • メルマガ、執筆、講演 • 3割程度
  4. 4. ボケて• 写真で一言ボケるWebサービス• PC 2000万PV / month• スマホWeb 250万PV / month• iPhone / Android アプリ 計100万DL• 総 PV 1億PV弱 / month• Webサイド、バックエンドを一人で開発 / 運用• コラボ企画、モバイル更新、PC新UI
  5. 5. そういえば...
  6. 6. 本を出しました• Webサービスのつくり方• 技術評論社さんから2012/11/20発売
  7. 7. ということで...
  8. 8. 今回のアジェンダ• 書籍を書いて出版した裏側や経緯• 本を書くのに使えるツール等の紹介• チームで開発していくことの留意点• よりツッコんだ Perl の話など• エンジニアが本を書くことへの考え
  9. 9. 念願の書籍出版
  10. 10. 実は 2009年 から...• 技評の細谷さんに声をかけてもらい... • 小飼弾のアルファギークに逢いたい❤ 出演 • WEB+DB Press Vol. 54 特集
  11. 11. 「書籍を書かないか?」と言われて2010年頭には Perl本 の提案 をした
  12. 12. ちょw 本出したの2012年末だぜwww
  13. 13. 3年越しの目的達成細谷さんありがとうございます
  14. 14. 本はとにかく出したかった• 昔から本が好きだった• 自分でも何かしら書いてみたかった• 収入的なモノは求めてない• 本を出版する仕組みが知りたかった• ハクをつけるため
  15. 15. 3年かけてよく書けたね?• Perl 本 からの方向転換• 一番興味のある Webサービス に焦点• 網羅的につくり方を紹介する• まぐまぐ!で 2012年2月からメルマガ開始• メルマガ内の連載を書籍にする戦略 • 結局これが功を奏した
  16. 16. 33のエッセイという 切り口
  17. 17. はじめに エッセイ風にWebサービスのつくり方を語る●第1章 心構えと下準備 ●第4章 開発「ぐだぐだ言ってないでコードを書けよ、ハゲ」 30分、JavaScriptでつくるWebサービスの動くモックMac一つあれば… 月額980円のさくらVPSを個人用に使い倒すエディタという道具 Web APIで巨人の肩の上に立つなければつくる いかにして大量のおっぱい画像をダウンロードするか言語習得にまつわるエピソード 全裸で学ぶMVC事始めデータ表現について分かった瞬間 MVCのMについて僕がPerlを使うことから見る言語の選択 WAFあれこれブログの効用 テストを書こう勉強会に飛び込む イカ娘でTwitter OAuth認証ライブラリという文化 CSS Frameworkを持つ●第2章 企画 ●第5章 プロモーションと運用実装までにつくる「企画」の全て Webサービス、最初の宣伝アイデアの発想法 「普通の」サーバ構成そこに潜むリスク 運用してこそWebサービス Webアプリのパフォーマンスアップ作戦●第3章 設計 キャッシュ、キャッシュ、キャッシュユースケースを書こう サービスをスケールさせる時データベース設計クールなURI? おわりに ── やり方は一つじゃないWebサービスを動かすための要素
  18. 18. 本書の意図と企み• メルマガ連載とエッセイ形式は相性がいい • 個人的にエッセイが好きだったり... • どこから読んでもいい。技術書には珍しい• Webサービスの制作について俯瞰できるよう • 個別のツッコんだテクはググってもらう• 何かつくりたい!と思ってもらうように!
  19. 19. 出してみての評判と感想• Amazonレビュー ★5 x 4 / ★3 x 3• Blogでの評判もまずまず• やる気が出たという意見 • 狙い通りで嬉しい!• 読みやすいという意見 • 想定してなかったけど嬉しい!
  20. 20. 出版の行程
  21. 21. • 2012年2月から8月 原稿執筆• 9月上旬 脱稿• 9月〜10月 編集、ゲラ上がり、修正• 10月 装丁デザイン作成• 11月上旬 印刷所入稿• 11月13日 見本誌完成• 11月20日 一般発売• 11月30日 販促イベント
  22. 22. こだわり
  23. 23. コード例は PerlでPerlはほどよく冗長に書けば 読みやすいから
  24. 24. 技術書として異質に• 装丁に対してツッコんで要望 • 編集会社さんの打ち合わせにも同席• イラスト書いてもらった!
  25. 25. 個人的に愛せる 本ができた! 読んでくれた方細谷さん、出版会社さんありがとうございます
  26. 26. 原稿を書く時の武器
  27. 27. Markdown+Byword
  28. 28. Dropboxで共有
  29. 29. プレビューもしたいよねー ってことで...
  30. 30. 自作アプリ「Dropdown」
  31. 31. Dropdown• 自分のDropboxファイルをブラウザか らプレビュー出来るWebアプリ• Markdownっぽい拡張子のファイルは Text::Markdownを使って整形表示• Dropbox APIの開発モードだと1アプリ につき5アカウントまでが自由に使える
  32. 32. use WebService::Dropboxsub login { my $self = shift; my $dropbox = $self->app->dropbox; my $url = $dropbox->login( $self->req->url->base . /callback ); $self->session( request_token => $dropbox->request_token, request_secret => $dropbox->request_secret ); $self->redirect_to($url);}sub callback { my $self = shift; my $dropbox = $self->app->dropbox; $dropbox->request_token( $self->session(request_token) ); $dropbox->request_secret( $self->session(request_secret) ); $dropbox->auth; $self->session( access_token => $dropbox->access_token, access_secret => $dropbox->access_secret, ); $self->redirect_to(/);}
  33. 33. use Text::Markdownuse Text::Markdown qw/markdown/;...;if ( $name =~ m!.(?:md|mkdn|markdown|mkd|mark|mdown)$! ) { $content = decode_utf8($content); $self->stash->{markdown_html} = markdown($content); return $self->render( template => dropbox/markdown, format => html );}
  34. 34. 結果的に便利だったhttp://github.com/yusukebe/Dropdown
  35. 35. デモ
  36. 36. もっと書きたかった今だから言いたい事
  37. 37. チームでのWebサービス企画 • 一人で小さい規模から始めること 以外のWebサービス企画 • チームビルディング • 打ち合わせ、ブレインストーミング • リーダーシップ • 戦略とマネタイズ
  38. 38. ざっくりと答えを言うと
  39. 39. 楽しくやろう!
  40. 40. オモロキの例• 自然と気の合う仲間が集まって来た...• 話し合いのルールを暗黙の了解で • みんながリーダーシップを発揮する • 打ち合わせはダラダラしない • 最初は意見を否定しない • マネタイズは後から
  41. 41. Perlのツッコんだ話 もしたかった!
  42. 42. Mojolicious 推し!
  43. 43. Mojolicious• 薄い Web Application Framework• no O/R Mapper, not full-stack, but components are full-stack.• つまり Mojolicious だけ追えばいい• Router, Controller, Template が主力• ModelはPerlオブジェクトで作りつなぐ
  44. 44. 実はKindle出版を目指してMojoilcious本を書いてる...
  45. 45. MVCのモデルについて• Modelにビジネスロジックをまとめる とお得なのが分かるケース• PC用Webとスマホ用Webをつくる時• Command Line Interface からの利用• ある程度大きくなると「Controllerと 分けててよかった」感
  46. 46. ボケてでの事例Bokete::Web::Controller::Boke Bokete::Model::Boke Controllerからの呼び出し my $b = $self->model(‘Boke’); my $bokes = $b->recent_entries({}, Bokete::DBx { page => $page, limit => 20 }); $self->stash->{bokes} = $bokes; SQL::Abstract::Limit + DBI MySQL or Memcached
  47. 47. Validationも工夫• form -> FormValidator::Lite• data on Model -> Data::Validator # controller if($self->form(Boke)->has_error) { return $self->render_fill(/boke/post); }
  48. 48. 開発しつつ運用• VPSを使ってもいいのは2台まで!?• ボケてをAWSへ移行した! • さくらVPSで10数台を使ってた...• 運用は自動化 / 委譲をして楽をする• Cinnamon かわいいよ
  49. 49. Cinnamon$ cinnamon web deploy:update$ cinnamon web server:restart naoyaさんのレシピほぼまんま使ってるよ! Perlだからconfig.plで条件分岐もすぐ書けちゃう!とにかくシンプルだから「何やってるか分かる感」!
  50. 50. そろそろ締める...
  51. 51. エンジニアが本を書くこと
  52. 52. ぐだぐだ文章書いてないで コード書いてた方が いいんじゃね?
  53. 53. 確かにでも書きたかった...
  54. 54. Why?
  55. 55. 気づかせてくれた紹介文 Sendai.pmの後藤さんによる
  56. 56. そうか!モノをつくる楽しさを 伝えたいんだった!
  57. 57. 俺はPerl他を通じて楽しんでWebをつくってるしその楽しさを多くの人に知ってもらいたいし仲間 を増やしたい!
  58. 58. まとめ
  59. 59. 本を出した件• つくる行程自体はじめてで楽しかった• 評判やレビュー等勉強になります• もっとツッコんだ話もしたい• とにかく本を出せて成長出来た• エンジニアリングの楽しさを伝えていく
  60. 60. Webサービスのつくり方「新しい」を生み出すための33のエッセイAmazonやおっきめの書店で好評発売中!

×