インフラ屋がRailsをやってみた #TechLunch

インフラ屋がRailsをやってみた #TechLunch

インフラ屋がRailsをやってみた
2013/11/16 (水) @ Livesense TechLunch
発表者:湖山 翔平

E60aa4f80303f3f386898546ddb3686a?s=128

Livesense Inc.

April 21, 2014
Tweet

Transcript

  1. ϓϥοτϑΥʔϜ։ൃG γεςϜ։ൃ෦ɹ Copyright © LIVESENSE Inc. ބࢁ ᠳฏ Πϯϑϥ԰͕ RailsͰΞϓϦΛ࡞ͬͯΈͨ

  2. ·ͣ͸͡Ίʹ みなさん、僕のことを覚えてるでしょうか?

  3. ࣗݾ঺հ 湖山です。

  4. ಛٕ 特技は・・・

  5. ಛٕ ゲーム

  6. -­‐Counter-­‐Strike  1.6-­‐   MXP  CUP  3位 (Team  |  Theory  &

     3pR)   BIGLAN  SOCKET  4  優勝(Team  |  Fellows) CS  Code-­‐Reality 準優勝(Team  |  Fellows) CSCTL  Season2  優勝(Team  |  Speeder) CSCTL  Season2.5  DeathMatch大会 優勝(個人)   NightLAN  1on1  Match  優勝(個人) CSCTL  Season3  優勝(Team  |  Speeder) Sion  Shootout!  全勝(個人) ESWC日本予選 優勝(Team  |  Speeder)   ESWC本選出場 (Team  |  Speeder)   CCDT3  優勝(個人) CCDT4  優勝(個人) CCDT5  3位(個人) CS  1on1  Boom  Headshot  Cup  3Ґ  (ݸਓ)   CCDT6  優勝(個人)   CCDT7  優勝(個人)   CCDT8  準優勝(個人) FPS甲子園 in  秋葉原 出場(Team  |  Speeder) Survival  of  Fi[est  13  Expert部門優勝 (Team  |  Speeder)   Survival  of  Fi[est  14  Expert部門優勝 (Team  |  Speeder)   Survival  of  Fi[est  15  Expert部門優勝 (Team  |  Speeder)   SteelSeriesとサポート契約 ドイツのmyRevengeとプロ契約 Asia  e-­‐Sports  Cup  2012  日本予選優勝(Team  |  myRevenge)   Asia  e-­‐Sports  Cup  2012  本戦優勝(Team  |  myRevenge)     -­‐PaperMan-­‐   東京ゲームショウ2007  出演 PaperMan祭り in  秋葉原 出演 ゲームマスターとしてCykan社に勤務 -­‐CrossFire-­‐   Cross  Fire  Tournament  League  優勝(Team  |  Fellows) Cross  Fire  オフラインイベント 特別講師として出演(Team  |  Fellows) -­‐TV-­‐   Road  to  ESWC  (スカパー!) ήʔϜܦྺ 優勝
  7. ·ͣ͸͡Ίʹ 分かって頂けたところで、   本題に入りましょう。

  8. ·ͣ͸͡Ίʹ 事件はシステム開発部月次定例で発生  

  9. 湖山   「稼働率出しました!    みんなが見れるようにWebアプリにするよ!」        ((Webアプリそこまで難しくないだろう。Google先生もいるし)) ‑

  10. ͳ͘ͳ͘ɻ ということで勉強も兼ねて   RailsでWebアプリを作ることに。

  11. ͳͥRailsΛબΜ͔ͩ ・会社がRailsに移行していってるから勉強も兼ねて ・Rubyを触ってみたかったから ・デザインがカッコいいし、楽そうだから(bootstrap) ・一度は「Railsでアプリ作った」と言ってみたかったから ・プラグインが便利でグラフにし易そう

  12. Ͳͷఔ౓ͷϓϩάϥϛϯάྗʁ ちなみに。。   社会人4年目になります。     プログラムはPerl  PHPをかじった程度。    

    Rubyは触ったことありません!   アプリとか作ったこと有りません!  
  13. ·ͣ࢝Ίͨ͜ͱ͸ 流れを図にしてみた。

  14. ໊୳ఁί◦ϯ 図にして分かったこと。     とりあえずデータ取らないと始まらないということ。

  15. ਅ࣮͸͍ͭ΋Ұͭ データを取る      ‑   mysql  操作      ‑  

    グラフじゃない      ‑   perlでいいんじゃね?
  16. ग़དྷ·ͨ͠ Perlで作りました

  17. ೰Μͩ఺ɺվળͨ͠఺ ①時間の計算が難しかった➡エポック秒とやらで解決     ②エラー発生時間insertから復旧時間のinsertまで、     DBのconnectを切った。(DBに張り付きは良くない)     ③テーブル見直しに時間がかかった

        (誰かに見てもらうのが一番)     ④executeで実行したらfinishできちんと閉じないと、     うまく動作しないことが分かったので修正
  18. ބࢁ͸ؾ͍ͮͨ Railsでグラフ化するとき、     データを何度も再計算させると   負荷高くなるんじゃね?

  19. ·ͨ࡞Γ·ͨ͠ Rails用のテーブル(resultテーブル)を作成。   毎朝9時にでtotal_counts➡resultテーブルに計算   Perlで!

  20. ͜͜·ͰRailsͷ࿩ͳ͠ あとはグラフにするだけ!順調!

  21. ͱΓ͋͑ͣͲ͏͠Α͏͔ そういえば社内でグラフにするやつがあったような。 Gaiaさん

  22. ಡΉ ソースコードを読んでみる。     分からないけど分かる。     というかこれパクればいけるんじゃね?      ‑  

      それじゃ面白くないっ
  23. Ұ͔Β࡞ͬͯΈΔ͜ͱʹ 一から作り直す判断が遅かったものの、   bootstrap  +  lazy_high_chartで作ってみることに。     そしてまずは初心者本を買ってみました。  

  24. ͓՛ࢠϠϯΩʔొ৔ この時期から、平山さんがお菓子を取りに来るときに   グラフまだ?   ・・・と恐喝される日々。   ?   お菓子足りないんだけど?

    ? もうできてるでしょ 恐怖 恐 喝 逝 。 縦社会
  25. ک͑ͳ͕Βϓϩάϥϛϯά Railsとmysqlの連携方法を理解したり、   Rubyの書式や言葉を覚えるのに苦戦。      ➡初心者本熟読     またRailsのコマンドの動きを覚えるのに時間もかかりました。  

    rails  コマンド   rake  コマンド      ➡初心者本熟読     Lazy_high_chartの挙動理解にも時間がかかりました。      ➡ブログ等のjps  +  highchartsのFAQ熟読  
  26. ͍ͦͯͭ͠ʹ なんだかんだやって、   色んな人に教えてもらい。。

  27. ग़དྷ·ͨ͠ h[p://10.29.3.101:3000/result2013

  28. dev.livesense.jpʹ͋Γ·͢ Gaiaさんの隣にいるなんて恐れ多いっ。。 ‐こいつ

  29. ࡞ͬͯײͨ͜͡ͱ part1 ①Rubyから勉強してRailsしたほうが良い。絶対     ②変数操作はperlのほうが柔軟。     ただ、Rubyは見やすい    

    ③lazy_high_chartはカスタマイズ出来る点が多くて便利     ④次回はhamlとかslim入れたい     ⑤本という先行投資は必要。お早めに  
  30. ࡞ͬͯײͨ͜͡ͱ part2 ⑥DB設計大事。早めに作ってレビューを貰うこと。     ⑦周りに素晴らしい先生がいっぱいいるので、     調べて分からなかったら聞いてみる    

    ⑧vimを改造していきたい     ⑨次回はテストを組み込んでいきたい     ⑩何もないところから出来たときの感動が素晴らしい  
  31. Ͳͷ͘Β͍͔͔ͬͨͷʁ ちなみに   ラック移設や障害対応などがあり、   かかった日数としては2〜3週間くらいです     (時間掛け過ぎとか言わないでね!!)

  32. ࠷ޙʹ ソースはひどいです。     が、まだまだ分からないことだらけなので、   精神的に、肉体的に病まない程度の   ご指摘お待ちしております。  

      罵倒してくれるドSな方、急募。  
  33. ࢀߟॻ෺ͳͲ h[p://colorschemedesigner.com/ 基礎 Ruby  on  Rails h[p://api.highcharts.com/highcharts Rails  で Lazy

     high  charts  を使ってチャートを実装してみた
  34. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ

  35. ͋ͨΓ·͑Λɺൃ໌͠Α͏ɻ