Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07
-
Upload
koichiro-sumi -
Category
Internet
-
view
1.061 -
download
0
description
Transcript of Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07
![Page 1: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/1.jpg)
[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](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/2.jpg)
[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](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/3.jpg)
[Confidential] © 2013 Actcat, Inc.
たまにブログで炎上してお騒がせしてます
3
「Ruby on Railsを勉強するな!」 というタイトルで、 炎上したりしてます。。。
Matzさんにリツイート頂いたり
![Page 4: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/4.jpg)
[Confidential] © 2013 Actcat, Inc.
最近はCIネタのブログも始めました sideci.hatenablog.com
4
Matzさんにリツイート頂いたり
![Page 5: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/5.jpg)
[Confidential] © 2013 Actcat, Inc. 5
RUBYでも今すぐ始められるCI HOW-TO & TIPS
![Page 6: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/6.jpg)
[Confidential] © 2013 Actcat, Inc.
そもそもCIって何…?
n というのは省略。
n ざっくりと、 軽めにすぐに出来そうな、 コードの品質をちょっとよくしたり、 開発効率を上げたりなTipsを紹介します。
n ざっくりなので内容は浅いです
6
![Page 7: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/7.jpg)
[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](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/8.jpg)
[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](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/9.jpg)
[Confidential] © 2013 Actcat, Inc.
テストを書こうよ!RSpec
9
http://rspec.info/
こんな感じのコードに対して
こんな感じにテストコードを書く
![Page 10: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/10.jpg)
[Confidential] © 2013 Actcat, Inc.
テストを書こうよ!RSpec
10
http://rspec.info/ テスト通った!
![Page 11: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/11.jpg)
[Confidential] © 2013 Actcat, Inc.
テストを書こうよ!RSpec
11
http://rspec.info/ Specファイルに書いた内容のテスト当然落ちる!
実装してなかったり、バグが有ったりすると
![Page 12: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/12.jpg)
[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](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/13.jpg)
[Confidential] © 2013 Actcat, Inc.
書いたらRunするとFailかPassしてくれる
13
http://cukes.info/
![Page 14: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/14.jpg)
[Confidential] © 2013 Actcat, Inc.
RSpecとCucumber両方載ってる、 『The RSpec Book』
14
![Page 15: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/15.jpg)
[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](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/16.jpg)
[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](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/17.jpg)
[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](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/18.jpg)
[Confidential] © 2013 Actcat, Inc.
日本語書くだけで怒られる、厳しい警官
18
![Page 19: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/19.jpg)
[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](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/20.jpg)
[Confidential] © 2013 Actcat, Inc. 20
![Page 21: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/21.jpg)
[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](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/22.jpg)
[Confidential] © 2013 Actcat, Inc.
自動で実行させたいなら Guard
22
https://github.com/guard/guard
![Page 23: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/23.jpg)
[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](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/24.jpg)
[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](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/25.jpg)
[Confidential] © 2013 Actcat, Inc.
コードはなるべく書かない!みんな大好き www.ruby-toolbox.com
25
![Page 26: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/26.jpg)
[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](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/27.jpg)
[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](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/28.jpg)
[Confidential] © 2013 Actcat, Inc.
Web制作者のためのSublime Textの教科書 今すぐ最高のエディタを使いこなすプロのノウハウ
28
![Page 29: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/29.jpg)
[Confidential] © 2013 Actcat, Inc.
友達かチームかコラボレーターがいるならコードレビューしてもらおう、GitHub
n プルリクエスト型開発に切り替えて、 コードレビューをお互いにするようにすると、いい感じにお互いの知見、思考が向上しますよ!(たぶん)
29
![Page 30: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/30.jpg)
[Confidential] © 2013 Actcat, Inc.
GitHub実践入門 Pull Requestによる開発の変革
30
![Page 31: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/31.jpg)
[Confidential] © 2013 Actcat, Inc.
「パーフェクトRuby」と「メタプログラミングRuby」を読み始めて魔術使いになろう n どちらも必読本です。 もしまだ読んでない人がいたらぜひ。
n 基礎が分かっている人は メタプログラミングRubyの方をオススメ。 可読性は高いけどコードを追うのが難しめだけど生産性高くて徹底的DRY、な魔術的コードの読み書きに役立つ本です
31
![Page 32: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/32.jpg)
[Confidential] © 2013 Actcat, Inc. 32
![Page 33: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/33.jpg)
[Confidential] © 2013 Actcat, Inc. 33
さいごに10個目のTIPSな宣伝
![Page 34: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/34.jpg)
[Confidential] © 2013 Actcat, Inc.
クローズドβ中のSideCIを宣伝
n https://www.sideci.com/
34
![Page 35: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/35.jpg)
[Confidential] © 2013 Actcat, Inc. 35
GitHubログインでかんたん導入。 設定ファイル不要
![Page 36: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/36.jpg)
[Confidential] © 2013 Actcat, Inc.
既知のセキュリティ・ホールを検出
36
コードがプッシュされるとセキュリティ・ホールをチェック。 既知のセキュリティ・ホールを検出
セキュリティ・ホール要因のコードやCOMMITにコメント
![Page 37: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/37.jpg)
[Confidential] © 2013 Actcat, Inc. 37
コードをrails-‐bestpractices.comのPracticeに基づきチェック 問題となる可能性が高いコードやCOMMITにコメント
例: 誰も使用していないメソッドを検出、指摘
![Page 38: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/38.jpg)
[Confidential] © 2013 Actcat, Inc. 38
RubyのGemのバージョンアップをお知らせする機能追加 その他にもCIに欠かせない機能を随時アップデート!
![Page 39: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/39.jpg)
[Confidential] © 2013 Actcat, Inc.
サービス利用時の流れ
39
Engineer
コードの標準化
自動テスト Coming soon.
セキュリティ保証
自動で実行、コメントで結果をお知らせ
ビルド、テスト等の CI的コマンドの実行
Githubログイン コードをPush
hook
![Page 40: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/40.jpg)
[Confidential] © 2013 Actcat, Inc. 40
全ての解析結果の概要、詳細を確認できる管理画面 (GitHubやNotificationでは新しい解析結果のみをお知らせ)
![Page 41: Rubyでも今すぐ始められるCI How-to & Tips - SideCI TokyuRuby会議07 LT資料 #tqrk07](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/41.jpg)
[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](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/42.jpg)
[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](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d4c6b47959514d8b50c7/html5/thumbnails/43.jpg)
[Confidential] © 2013 Actcat, Inc.
「
」 Closed beta version