rubyでも今すぐ始められるci how-to & tips - sideci tokyuruby会議07 lt資料 #tqrk07

43
[Confidential] © 2013 Actcat, Inc. 2014/03/30 Actcat, Inc. Rubyでも今すぐ始められるCI How-to & Tips

Upload: koichiro-sumi

Post on 18-Dec-2014

1.061 views

Category:

Internet


0 download

DESCRIPTION

TokyuRuby会議07 LTで使った資料です。 #tqrk07 Rubyでも今すぐ始められるCI How-to & Tips というタイトルで、5分で収まる程度のRuby x CIに関するすごく浅めな情報共有的な資料です。

TRANSCRIPT

Page 1: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

2014/03/30 Actcat, Inc.

Rubyでも今すぐ始められるCI How-to & Tips

Page 2: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

軽く自己紹介 あくときゃっと の すみ です

n そろそろ2年スタートアップやってる  エンジニアですm(_  _)m  

n エンジニアの開発効率改善サービスの開発に注力してます(いわゆるCI)  

n Twitter:  @sumyapp

2

Page 3: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

たまにブログで炎上してお騒がせしてます

3

「Ruby  on  Railsを勉強するな!」  というタイトルで、  炎上したりしてます。。。  

Matzさんにリツイート頂いたり

Page 4: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

最近はCIネタのブログも始めました sideci.hatenablog.com

4

Matzさんにリツイート頂いたり

Page 5: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc. 5

RUBYでも今すぐ始められるCI HOW-TO & TIPS

Page 6: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

そもそもCIって何…?

n というのは省略。  

n ざっくりと、  軽めにすぐに出来そうな、  コードの品質をちょっとよくしたり、  開発効率を上げたりなTipsを紹介します。  

n ざっくりなので内容は浅いです

6

Page 7: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

1人で開発している人でもだれでも、 今すぐ始められるCI Tips 10選

1.  テストを書こうよ!RSpecとCucumber  2.  静的解析ツールやSImpleCovなどを一括実行、なんでも分かるmetric_fu  

3.  コードに規律を!RuboCop  4.  ちょっと賢くRailsのコード書いてみたい、  

rails-­‐bestpractices.com  5.  毎朝コツコツbundle  outdated  と  bundle  

update

7

Page 8: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

6.  コードはなるべく書かない!みんな大好き www.ruby-­‐toolbox.com  

7.  まずはエディタをいい感じにしよう!  SublimeText  vs  Vim(Rubymine,Emacs,etc…)  

8.  友達かチームかコラボレーターがいるならコードレビューしてもらおう、GitHub  

9.  「パーフェクトRuby」か「メタプログラミングRuby」を読み始めて魔術使いになろう  

10. クローズドβ中のSideCIを宣伝  

8

Page 9: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

テストを書こうよ!RSpec

9

http://rspec.info/

こんな感じのコードに対して

こんな感じにテストコードを書く

Page 10: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

テストを書こうよ!RSpec

10

http://rspec.info/ テスト通った!

Page 11: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

テストを書こうよ!RSpec

11

http://rspec.info/ Specファイルに書いた内容のテスト当然落ちる!

実装してなかったり、バグが有ったりすると

Page 12: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

使っている人はそこまで多くないけど、 有名だよね、Cucumber

12

http://cukes.info/

~という状況が与えられているとき(Given)、誰かが何かをしたら(When)、こうなるはず(Then)  みたいに英語でFeature全体のテストを書ける

Page 13: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

書いたらRunするとFailかPassしてくれる

13

http://cukes.info/

Page 14: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

RSpecとCucumber両方載ってる、 『The RSpec Book』

14

Page 15: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

静的解析ツールやSImpleCovなどを一括実行、なんでも分かるmetric_fu

n $  gem  install  metric_fu  n $  metric_fu  n で動いてくれたはずなんだけど、昨日適当にためそうとしたらREEKでコケたので、  とりあえずご紹介だけ。  

n 色々な解析ツールを一括実行、数値やグラフ化して表示してくれるgemです

15

Page 16: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc. 16 http://d.hatena.ne.jp/tbpg/20130813/1376412269

Page 17: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

コードに規律を!RuboCop

n $  gem  install  rubocop  n $  rubocop  =>  色々お叱りを頂けます

17 http://d.hatena.ne.jp/tbpg/20130813/1376412269

Page 18: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

日本語書くだけで怒られる、厳しい警官

18

Page 19: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

ちょっと賢くRailsのコード書いてみたい、 rails-bestpractices.com

n RailsでのBestなPracticeを投票しあう、  コミュニティサイト  

n Whitespaceは削除しようぜ、  みたいな小さなことから、  

n DRYなdatabase.ymlの書き方、のような、  勉強になる(けど小さいけど…)なことまで、  色々載ってるベストプラクティス集サイト

19

Page 20: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc. 20

Page 21: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

rails_best_practiceというgemもある

n さっきのmetric_fuでも使われてた。  n 使い方は簡単。Railsのディレクトリで  n $  gem  install  rails_best_practices  n $  rails_best_practices

21

Page 22: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

自動で実行させたいなら Guard

22

https://github.com/guard/guard

Page 23: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

Guardはファイルの保存を検知して、 何かを実行したり出来る

n Guardは色々な種類のgemがあるので、  わりとなんでも連動できます  

n ちょっと設定ファイルとか多いので、  紹介されているQiita上の記事をぺたり    テストの自動実行あれこれ  http://qiita.com/okitan/items/25238a9b836c14d52cbd  

23

Page 24: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

毎朝コツコツbundle outdatedと bundle update

n $  bundle  outdated  n 今あるBugはGemのBugかも? n アップデート可能なGemのリストが出るので、bundle  updateしよう!  

24

Page 25: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

コードはなるべく書かない!みんな大好き www.ruby-toolbox.com

25

Page 26: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

5分しか時間がないので省略…

n ブログに記事書いてあるんで、興味がある方は読んでもらえると><  http://sideci.hatenablog.com/  

n コードを書かずに実装しよう、ruby-­‐toolbox.com  http://sideci.hatenablog.com/entry/2014/03/25/080000

26

Page 27: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

まずはエディタをいい感じにしよう! SublimeText vs Vim

n 素のVimやEmacs以外ならなんでも良いと思います、エディタ  

n 素のVimとか使うと、whitespaceは入りまくるし、タブ幅はズレまくるし。。。  

n トータルで最初からいい感じなSublime  Textとか、Vimをカスタマイズして使うとかすると、CIツール使うよりよっぽどお手軽にコードが綺麗に!

27

Page 28: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

Web制作者のためのSublime Textの教科書 今すぐ最高のエディタを使いこなすプロのノウハウ

28

Page 29: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

友達かチームかコラボレーターがいるならコードレビューしてもらおう、GitHub

n プルリクエスト型開発に切り替えて、  コードレビューをお互いにするようにすると、いい感じにお互いの知見、思考が向上しますよ!(たぶん)  

29

Page 30: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

GitHub実践入門 Pull Requestによる開発の変革

30

Page 31: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

「パーフェクトRuby」と「メタプログラミングRuby」を読み始めて魔術使いになろう n どちらも必読本です。  もしまだ読んでない人がいたらぜひ。  

n 基礎が分かっている人は  メタプログラミングRubyの方をオススメ。  可読性は高いけどコードを追うのが難しめだけど生産性高くて徹底的DRY、な魔術的コードの読み書きに役立つ本です

31

Page 32: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc. 32

Page 33: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc. 33

さいごに10個目のTIPSな宣伝

Page 34: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

クローズドβ中のSideCIを宣伝

n https://www.sideci.com/

34

Page 35: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc. 35

GitHubログインでかんたん導入。  設定ファイル不要  

Page 36: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

既知のセキュリティ・ホールを検出

36

コードがプッシュされるとセキュリティ・ホールをチェック。  既知のセキュリティ・ホールを検出  

セキュリティ・ホール要因のコードやCOMMITにコメント  

Page 37: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc. 37

コードをrails-­‐bestpractices.comのPracticeに基づきチェック  問題となる可能性が高いコードやCOMMITにコメント  

例:  誰も使用していないメソッドを検出、指摘

Page 38: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc. 38

RubyのGemのバージョンアップをお知らせする機能追加  その他にもCIに欠かせない機能を随時アップデート!  

Page 39: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

サービス利用時の流れ

39

Engineer

コードの標準化

自動テスト  Coming  soon.

セキュリティ保証

自動で実行、コメントで結果をお知らせ

ビルド、テスト等の  CI的コマンドの実行

Githubログイン  コードをPush

hook

Page 40: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc. 40

全ての解析結果の概要、詳細を確認できる管理画面  (GitHubやNotificationでは新しい解析結果のみをお知らせ)  

Page 41: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

コードのセキュリティ

n SideCIのスタッフがあなたの  コードを読むことはありません!  

n 全ての接続をSSL暗号化  

n 情報保護の徹底(NDA締結可)  l 解析結果など、あらゆる個人情報、機密情報を  社外には一切提出しません

41

SIdeCI 解析結果に含まれるコードスニペットは  都度異なる鍵を用いて暗号化しています。  

暗号化🔒

管理画面はもちろん、SideCIを構成する複数のサーバの  全ての接続をSSLによって暗号化し、通信を行っています。  

ソースコードはGithubが管理。必要なタイミングでのみ、  SideCIが暗号化して預かっているGithub  Tokenを復号、  コードをcheck  out、解析しています。  

Page 42: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

Plans & Pricing

42

ü Unlimited  Private  Repository  ü Unlimited  Analysis  ü Unlimited  Collaborator  

¥0  

※有料サービスの目処が立ちましたらご連絡致します

Page 43: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07

[Confidential] © 2013 Actcat, Inc.

「    

         」 Closed  beta  version