[Confidential] © 2013 Actcat, Inc.
2014/03/30 Actcat, Inc.
Rubyでも今すぐ始められるCI How-to & Tips
[Confidential] © 2013 Actcat, Inc.
軽く自己紹介 あくときゃっと の すみ です
n そろそろ2年スタートアップやってる エンジニアですm(_ _)m
n エンジニアの開発効率改善サービスの開発に注力してます(いわゆるCI)
n Twitter: @sumyapp
2
[Confidential] © 2013 Actcat, Inc.
たまにブログで炎上してお騒がせしてます
3
「Ruby on Railsを勉強するな!」 というタイトルで、 炎上したりしてます。。。
Matzさんにリツイート頂いたり
[Confidential] © 2013 Actcat, Inc.
最近はCIネタのブログも始めました sideci.hatenablog.com
4
Matzさんにリツイート頂いたり
[Confidential] © 2013 Actcat, Inc. 5
RUBYでも今すぐ始められるCI HOW-TO & TIPS
[Confidential] © 2013 Actcat, Inc.
そもそもCIって何…?
n というのは省略。
n ざっくりと、 軽めにすぐに出来そうな、 コードの品質をちょっとよくしたり、 開発効率を上げたりなTipsを紹介します。
n ざっくりなので内容は浅いです
6
[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
[Confidential] © 2013 Actcat, Inc.
6. コードはなるべく書かない!みんな大好き www.ruby-‐toolbox.com
7. まずはエディタをいい感じにしよう! SublimeText vs Vim(Rubymine,Emacs,etc…)
8. 友達かチームかコラボレーターがいるならコードレビューしてもらおう、GitHub
9. 「パーフェクトRuby」か「メタプログラミングRuby」を読み始めて魔術使いになろう
10. クローズドβ中のSideCIを宣伝
8
[Confidential] © 2013 Actcat, Inc.
テストを書こうよ!RSpec
9
http://rspec.info/
こんな感じのコードに対して
こんな感じにテストコードを書く
[Confidential] © 2013 Actcat, Inc.
テストを書こうよ!RSpec
10
http://rspec.info/ テスト通った!
[Confidential] © 2013 Actcat, Inc.
テストを書こうよ!RSpec
11
http://rspec.info/ Specファイルに書いた内容のテスト当然落ちる!
実装してなかったり、バグが有ったりすると
[Confidential] © 2013 Actcat, Inc.
使っている人はそこまで多くないけど、 有名だよね、Cucumber
12
http://cukes.info/
~という状況が与えられているとき(Given)、誰かが何かをしたら(When)、こうなるはず(Then) みたいに英語でFeature全体のテストを書ける
[Confidential] © 2013 Actcat, Inc.
書いたらRunするとFailかPassしてくれる
13
http://cukes.info/
[Confidential] © 2013 Actcat, Inc.
RSpecとCucumber両方載ってる、 『The RSpec Book』
14
[Confidential] © 2013 Actcat, Inc.
静的解析ツールやSImpleCovなどを一括実行、なんでも分かるmetric_fu
n $ gem install metric_fu n $ metric_fu n で動いてくれたはずなんだけど、昨日適当にためそうとしたらREEKでコケたので、 とりあえずご紹介だけ。
n 色々な解析ツールを一括実行、数値やグラフ化して表示してくれるgemです
15
[Confidential] © 2013 Actcat, Inc. 16 http://d.hatena.ne.jp/tbpg/20130813/1376412269
[Confidential] © 2013 Actcat, Inc.
コードに規律を!RuboCop
n $ gem install rubocop n $ rubocop => 色々お叱りを頂けます
17 http://d.hatena.ne.jp/tbpg/20130813/1376412269
[Confidential] © 2013 Actcat, Inc.
日本語書くだけで怒られる、厳しい警官
18
[Confidential] © 2013 Actcat, Inc.
ちょっと賢くRailsのコード書いてみたい、 rails-bestpractices.com
n RailsでのBestなPracticeを投票しあう、 コミュニティサイト
n Whitespaceは削除しようぜ、 みたいな小さなことから、
n DRYなdatabase.ymlの書き方、のような、 勉強になる(けど小さいけど…)なことまで、 色々載ってるベストプラクティス集サイト
19
[Confidential] © 2013 Actcat, Inc. 20
[Confidential] © 2013 Actcat, Inc.
rails_best_practiceというgemもある
n さっきのmetric_fuでも使われてた。 n 使い方は簡単。Railsのディレクトリで n $ gem install rails_best_practices n $ rails_best_practices
21
[Confidential] © 2013 Actcat, Inc.
自動で実行させたいなら Guard
22
https://github.com/guard/guard
[Confidential] © 2013 Actcat, Inc.
Guardはファイルの保存を検知して、 何かを実行したり出来る
n Guardは色々な種類のgemがあるので、 わりとなんでも連動できます
n ちょっと設定ファイルとか多いので、 紹介されているQiita上の記事をぺたり テストの自動実行あれこれ http://qiita.com/okitan/items/25238a9b836c14d52cbd
23
[Confidential] © 2013 Actcat, Inc.
毎朝コツコツbundle outdatedと bundle update
n $ bundle outdated n 今あるBugはGemのBugかも? n アップデート可能なGemのリストが出るので、bundle updateしよう!
24
[Confidential] © 2013 Actcat, Inc.
コードはなるべく書かない!みんな大好き www.ruby-toolbox.com
25
[Confidential] © 2013 Actcat, Inc.
5分しか時間がないので省略…
n ブログに記事書いてあるんで、興味がある方は読んでもらえると>< http://sideci.hatenablog.com/
n コードを書かずに実装しよう、ruby-‐toolbox.com http://sideci.hatenablog.com/entry/2014/03/25/080000
26
[Confidential] © 2013 Actcat, Inc.
まずはエディタをいい感じにしよう! SublimeText vs Vim
n 素のVimやEmacs以外ならなんでも良いと思います、エディタ
n 素のVimとか使うと、whitespaceは入りまくるし、タブ幅はズレまくるし。。。
n トータルで最初からいい感じなSublime Textとか、Vimをカスタマイズして使うとかすると、CIツール使うよりよっぽどお手軽にコードが綺麗に!
27
[Confidential] © 2013 Actcat, Inc.
Web制作者のためのSublime Textの教科書 今すぐ最高のエディタを使いこなすプロのノウハウ
28
[Confidential] © 2013 Actcat, Inc.
友達かチームかコラボレーターがいるならコードレビューしてもらおう、GitHub
n プルリクエスト型開発に切り替えて、 コードレビューをお互いにするようにすると、いい感じにお互いの知見、思考が向上しますよ!(たぶん)
29
[Confidential] © 2013 Actcat, Inc.
GitHub実践入門 Pull Requestによる開発の変革
30
[Confidential] © 2013 Actcat, Inc.
「パーフェクトRuby」と「メタプログラミングRuby」を読み始めて魔術使いになろう n どちらも必読本です。 もしまだ読んでない人がいたらぜひ。
n 基礎が分かっている人は メタプログラミングRubyの方をオススメ。 可読性は高いけどコードを追うのが難しめだけど生産性高くて徹底的DRY、な魔術的コードの読み書きに役立つ本です
31
[Confidential] © 2013 Actcat, Inc. 32
[Confidential] © 2013 Actcat, Inc. 33
さいごに10個目のTIPSな宣伝
[Confidential] © 2013 Actcat, Inc.
クローズドβ中のSideCIを宣伝
n https://www.sideci.com/
34
[Confidential] © 2013 Actcat, Inc. 35
GitHubログインでかんたん導入。 設定ファイル不要
[Confidential] © 2013 Actcat, Inc.
既知のセキュリティ・ホールを検出
36
コードがプッシュされるとセキュリティ・ホールをチェック。 既知のセキュリティ・ホールを検出
セキュリティ・ホール要因のコードやCOMMITにコメント
[Confidential] © 2013 Actcat, Inc. 37
コードをrails-‐bestpractices.comのPracticeに基づきチェック 問題となる可能性が高いコードやCOMMITにコメント
例: 誰も使用していないメソッドを検出、指摘
[Confidential] © 2013 Actcat, Inc. 38
RubyのGemのバージョンアップをお知らせする機能追加 その他にもCIに欠かせない機能を随時アップデート!
[Confidential] © 2013 Actcat, Inc.
サービス利用時の流れ
39
Engineer
コードの標準化
自動テスト Coming soon.
セキュリティ保証
自動で実行、コメントで結果をお知らせ
ビルド、テスト等の CI的コマンドの実行
Githubログイン コードをPush
hook
[Confidential] © 2013 Actcat, Inc. 40
全ての解析結果の概要、詳細を確認できる管理画面 (GitHubやNotificationでは新しい解析結果のみをお知らせ)
[Confidential] © 2013 Actcat, Inc.
コードのセキュリティ
n SideCIのスタッフがあなたの コードを読むことはありません!
n 全ての接続をSSL暗号化
n 情報保護の徹底(NDA締結可) l 解析結果など、あらゆる個人情報、機密情報を 社外には一切提出しません
41
SIdeCI 解析結果に含まれるコードスニペットは 都度異なる鍵を用いて暗号化しています。
暗号化🔒
管理画面はもちろん、SideCIを構成する複数のサーバの 全ての接続をSSLによって暗号化し、通信を行っています。
ソースコードはGithubが管理。必要なタイミングでのみ、 SideCIが暗号化して預かっているGithub Tokenを復号、 コードをcheck out、解析しています。
[Confidential] © 2013 Actcat, Inc.
Plans & Pricing
42
ü Unlimited Private Repository ü Unlimited Analysis ü Unlimited Collaborator
¥0
※有料サービスの目処が立ちましたらご連絡致します
[Confidential] © 2013 Actcat, Inc.
「
」 Closed beta version