11
Scrutinizerで始める 静的解析 @Hiraku

Scrutinizer CIでPHPも静的解析 #phpstudy

Embed Size (px)

DESCRIPTION

第78回 PHP勉強会 - PHP勉強会@東京 | Doorkeeper http://phpstudy.doorkeeper.jp/events/11523 で話した内容です。

Citation preview

Page 1: Scrutinizer CIでPHPも静的解析 #phpstudy

Scrutinizerで始める静的解析

@Hiraku

Page 2: Scrutinizer CIでPHPも静的解析 #phpstudy

自己紹介

•中野 拓

• https://twitter.com/Hiraku

• http://blog.tojiru.net/

• https://github.com/hirak

•最近昔のコードを書きなおしてGitHubに上げなおしてる。

•フレームワーク論争に疲れました

Page 3: Scrutinizer CIでPHPも静的解析 #phpstudy

コードの品質を高める工夫、してますか?

Page 4: Scrutinizer CIでPHPも静的解析 #phpstudy

二つの潮流

品質の高い

コード

実行して試す

•テスト

•ドッグフーディング

実行せず読む

•インスペクション

•コードレビュー

Page 5: Scrutinizer CIでPHPも静的解析 #phpstudy

Scrutinizer(すくりゅーてぃないざー)

• https://scrutinizer-ci.com/

•コードの静的解析サービス

•インスペクション特化型Travis-CI

•レポートの見た目がカッコいい

Page 6: Scrutinizer CIでPHPも静的解析 #phpstudy

Code ClimateのPHP版と言えば分かるかも?

• Code ClimateはRubyとJavaScriptのみ。

• ScrutinizerはPHPとJavaScriptのみ。

Page 7: Scrutinizer CIでPHPも静的解析 #phpstudy

できること

•全自動コードレビュー

•バグっぽいところの検出

•循環度や依存度の警告

•修正内容の提案(パッチ自動作成)

•品質に点数をつけてくれる• 他のOSSと比較して優越感にひたる

•カバレッジをGitHubバッジにしてくれる• Coveralls的な機能

Page 8: Scrutinizer CIでPHPも静的解析 #phpstudy

Scrutinizerの長所

• Travis-CIやJenkinsでもOSSを組み合わせれば実行できるが…• CodeSnifferとかpdependとかMess DetectorとかCPDとか

• 結構面倒くさい

•ほとんどセットアップせずに使えて、レポートがカッコいい

• PHP Analyzerという独自解析ツール

• publicリポジトリなら無料で使える

• privateリポジトリは有償プランで

Page 9: Scrutinizer CIでPHPも静的解析 #phpstudy

PHPライブラリ作成を支えるサービス

• Composer (依存管理)

• Packagist (中央リポジトリ)

• Poser (packagistのバッジサービス)

• VersionEye (依存パッケージのバージョンアップに追随しているかチェック)

• Travis-CI (Jenkinsよりお手軽)

• Scrutinizer-CI (静的解析だけならTravisよりお手軽)

Page 10: Scrutinizer CIでPHPも静的解析 #phpstudy

バッジをREADME.mdに貼りましょう

• https://github.com/Ocramius/ProxyManager/blob/master/README.md

Page 11: Scrutinizer CIでPHPも静的解析 #phpstudy

両側から攻めて、クリーンなコードを目指せ!!

品質の高い

コード

実行して試す

•テスト

•ドッグフーディング

実行せず読む

•インスペクション

•コードレビュー