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.

同人スケジューリングサービス作ってみた

624 views

Published on

同人スケジューリングサービス作ってみた

同人秘書 http://dojin-scheduler.herokuapp.com/

Published in: Engineering
  • Login to see the comments

同人スケジューリングサービス作ってみた

  1. 1. 同人スケジューリングサービス 作ってみた ゆるふわRuby勉強会Chofu.rb(おためし版)
  2. 2. アジェンダ ● 発表者紹介 ● サービス紹介 ● 工夫/苦労した箇所 ● Sinatraの感想 ● これからサービスを作る貴方に
  3. 3. あんた誰? うのはな透(@unohanaT) ● (株)MTMシステムズ 開発部 ● (多分)WEBエンジニア o ruby, Java, C# etc. ● 社畜から抜け出したくて今年5月転職 ● 副業は同人作家
  4. 4. 何を作った? 同人スケジューリングサービス ● 作品制作スケジュールを見積もり・立案できる ● 毎日の進捗を入力することで、遅れ/進みを把握でき る ● 作品制作後、制作ペースなどの実績を把握できる 新刊を落とさなくなる!
  5. 5. 運用 サービス構成 JQuery 開発 ActiveRecord Twitter/UserLoca l Batch
  6. 6. 工夫/苦労した箇所
  7. 7. Ajax with jsRender jsRender: javascriptのレンダリングライブラリ 1. 必要なデータをAjaxにてjsonで受け取る 2. テンプレートをAjaxにてtxtで受け取る 3. テンプレート&データをjsRenderでレンダ リング● データ転送量の削減が見込める ● サーバ側の負荷(レンダリング)を軽減できる ● erb一本よりは学習コストが高いのが難点か
  8. 8. Twitterへの通知 下記ページを参照 http://qiita.com/enmtknt/items/b1ff3bcd5d3ef8819845 ● 公式アカウントからtweetをするだけなら簡単 (TwitterAppsで自分のアカウントのアクセストークン が取得できる) ● API制限に引っかからないように10分毎に5件送信する ように設定している(最大41.6post/Hに対し、 30post/H) ● ちなみに当初は10分毎に1件だったが、いつの間にか通 知件数が増えすぎて対応できなくなっていた
  9. 9. 制作ペースの計算 「今日は12時間作業して、下描き2P、ペン入 れ3P作業したぞ!」 下描き・ペン入れにそれぞれ何時間掛け た? ● 1日の進捗では求められないけど、2日分進捗があ れば連立方程式で解ける! ● サンプルが偏らないように複数の連立方程式を立て る! ● ruby的にはMatrix/Vectorを利用(x = A-1b の要領)
  10. 10. アクセスログの送信 当初の想定:クライアント側でAjax通信 改案:DBにアクセス情報溜めてバッチで通信 ● クライアントにパラメータが送られない ● リアルタイム性は落ちる(10分ごと)が、影響ない ● クロスオリジンに引っかかって通信不可能! ● パラメータがユーザに見えるので好ましくない
  11. 11. Sinatraの感想
  12. 12. とにかく軽い! ● 直感的ですぐ始められる ● Railsよりブラックボック スが少ないので、変なと ころで詰まらない ● ActiveRecordとよく馴染 む 「習うより慣れろ」を体現した
  13. 13. ただし不満点もある ● rbファイルがすぐ肥大化する(少数のファイ ルに詰め込みがち) ● beforeフィルタの機能がやや弱い ● Railsほどライブラリが充実していない 規模が大きくなって「Railsに乗り換えようかな?」と思っ ても時すでに遅し…… Sinatraで一本作って雰囲気掴んだら、次はPadrinoがいい かも
  14. 14. これからサービスを作る貴方に
  15. 15. 知らなきゃならないことは多いぞ! ● HTTP(e.g. GET/POSTの違いは? RESTfulとは?) ● Javascript(e.g. ダイアログはどうやって出す? モ ーダル/モードレスの違いは?) ● Ajax(e.g. どんな時に使うべき?) ● DB(e.g. どんなテーブル構成? パフォーマンス は?) ● セッション(e.g. 何を突っ込む? 複数画面対策 は?) ● セキュリティ(e.g. SQLインジェクション対策は万
  16. 16. でも知らなくても案外なんとかなるよ ● 個人で趣味サービスを立ち上げる程度なら、 あまり身構えなくてもよい o 隗より始めよ。習うより慣れろ o まずはこれくらいシンプルなのを → vivit_jcになれるボタン o 知識が要求されるのは仕事になってから ● たのしくプログラミングしましょう!!
  17. 17. おわり

×