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