Upload
hiraku-nakano
View
3.713
Download
2
Embed Size (px)
DESCRIPTION
第78回 PHP勉強会 - PHP勉強会@東京 | Doorkeeper http://phpstudy.doorkeeper.jp/events/11523 で話した内容です。
Citation preview
Scrutinizerで始める静的解析
@Hiraku
自己紹介
•中野 拓
• https://twitter.com/Hiraku
• http://blog.tojiru.net/
• https://github.com/hirak
•最近昔のコードを書きなおしてGitHubに上げなおしてる。
•フレームワーク論争に疲れました
コードの品質を高める工夫、してますか?
二つの潮流
品質の高い
コード
実行して試す
•テスト
•ドッグフーディング
実行せず読む
•インスペクション
•コードレビュー
Scrutinizer(すくりゅーてぃないざー)
• https://scrutinizer-ci.com/
•コードの静的解析サービス
•インスペクション特化型Travis-CI
•レポートの見た目がカッコいい
Code ClimateのPHP版と言えば分かるかも?
• Code ClimateはRubyとJavaScriptのみ。
• ScrutinizerはPHPとJavaScriptのみ。
できること
•全自動コードレビュー
•バグっぽいところの検出
•循環度や依存度の警告
•修正内容の提案(パッチ自動作成)
•品質に点数をつけてくれる• 他のOSSと比較して優越感にひたる
•カバレッジをGitHubバッジにしてくれる• Coveralls的な機能
Scrutinizerの長所
• Travis-CIやJenkinsでもOSSを組み合わせれば実行できるが…• CodeSnifferとかpdependとかMess DetectorとかCPDとか
• 結構面倒くさい
•ほとんどセットアップせずに使えて、レポートがカッコいい
• PHP Analyzerという独自解析ツール
• publicリポジトリなら無料で使える
• privateリポジトリは有償プランで
PHPライブラリ作成を支えるサービス
• Composer (依存管理)
• Packagist (中央リポジトリ)
• Poser (packagistのバッジサービス)
• VersionEye (依存パッケージのバージョンアップに追随しているかチェック)
• Travis-CI (Jenkinsよりお手軽)
• Scrutinizer-CI (静的解析だけならTravisよりお手軽)
バッジをREADME.mdに貼りましょう
• https://github.com/Ocramius/ProxyManager/blob/master/README.md
両側から攻めて、クリーンなコードを目指せ!!
品質の高い
コード
実行して試す
•テスト
•ドッグフーディング
実行せず読む
•インスペクション
•コードレビュー