Submit Search
Upload
静的解析、しましょうか。
•
Download as PPTX, PDF
•
9 likes
•
3,765 views
Daichi Hiroki
Follow
YAPC Asia 2011のLT,mixi スポンサード, Techinical Debt,Code Metrics
Read less
Read more
Technology
Report
Share
Report
Share
1 of 20
Download now
Recommended
C言語静的解析ツールと Ruby 1.9 trunk
C言語静的解析ツールと Ruby 1.9 trunk
ikegami__
より良いコードを書くための
より良いコードを書くための
TATSUYA HAYAMIZU
小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみた
JubatusOfficial
地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI
JubatusOfficial
Railsプロジェクトを成功させるために現場ができること -Railsdevcon2010
Railsプロジェクトを成功させるために現場ができること -Railsdevcon2010
Yuki Akamatsu
継続的デリバリー読書会に寄せて
継続的デリバリー読書会に寄せて
Tsutomu Takeuchi
VentureCafe_第2回:SIerでのキャリアパスを考える_ござ先輩発表資料 V1.0
VentureCafe_第2回:SIerでのキャリアパスを考える_ござ先輩発表資料 V1.0
Michitaka Yumoto
cecservices.pdf
cecservices.pdf
DIBGMarketingCEC
Recommended
C言語静的解析ツールと Ruby 1.9 trunk
C言語静的解析ツールと Ruby 1.9 trunk
ikegami__
より良いコードを書くための
より良いコードを書くための
TATSUYA HAYAMIZU
小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみた
JubatusOfficial
地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI
JubatusOfficial
Railsプロジェクトを成功させるために現場ができること -Railsdevcon2010
Railsプロジェクトを成功させるために現場ができること -Railsdevcon2010
Yuki Akamatsu
継続的デリバリー読書会に寄せて
継続的デリバリー読書会に寄せて
Tsutomu Takeuchi
VentureCafe_第2回:SIerでのキャリアパスを考える_ござ先輩発表資料 V1.0
VentureCafe_第2回:SIerでのキャリアパスを考える_ござ先輩発表資料 V1.0
Michitaka Yumoto
cecservices.pdf
cecservices.pdf
DIBGMarketingCEC
cecservices.pdf
cecservices.pdf
DIBGMarketingCEC
cec_services.pdf
cec_services.pdf
DIBGMarketingCEC
cecservices
cecservices
DIBGMarketingCEC
cecservices
cecservices
DIBGMarketingCEC
cec_Services.pdf
cec_Services.pdf
DIBGMarketingCEC
【Dll3】scskプレゼン20170904
【Dll3】scskプレゼン20170904
Hirono Jumpei
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
Rakuten Group, Inc.
トラブルシューティングのあれこれ Yoshihiko kamata
トラブルシューティングのあれこれ Yoshihiko kamata
Rakuten Group, Inc.
受託開発でテストファーストしたらXXXを早期発見できてハイアジリティになったはなし
受託開発でテストファーストしたらXXXを早期発見できてハイアジリティになったはなし
terahide
マイクロサービスとは.pptx
マイクロサービスとは.pptx
ssuserdd7ea9
AWS Cognito makes old web apps available from anywhere
AWS Cognito makes old web apps available from anywhere
Yukiya Hayashi
Empirical Project Monitorの紹介
Empirical Project Monitorの紹介
Makoto SAKAI
プログラミングLT 2019 Summer
プログラミングLT 2019 Summer
Yusuke Mori
Redmineの情報を自分好みに見える化した話
Redmineの情報を自分好みに見える化した話
ToshiharuSakai
はじめてのアジャイル
はじめてのアジャイル
Yoshihito Kuranuki
財務分析勉強会挨拶
財務分析勉強会挨拶
oranie Narut
失敗しないパッケージ導入1
失敗しないパッケージ導入1
小島 規彰
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
Koichi ITO
Prig 残業泥棒 - 01. プロローグ 120121 杉浦
Prig 残業泥棒 - 01. プロローグ 120121 杉浦
urasandesu
Handii スタートアップエンジニア開発課題LT day2
Handii スタートアップエンジニア開発課題LT day2
Yusuke Mori
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
More Related Content
Similar to 静的解析、しましょうか。
cecservices.pdf
cecservices.pdf
DIBGMarketingCEC
cec_services.pdf
cec_services.pdf
DIBGMarketingCEC
cecservices
cecservices
DIBGMarketingCEC
cecservices
cecservices
DIBGMarketingCEC
cec_Services.pdf
cec_Services.pdf
DIBGMarketingCEC
【Dll3】scskプレゼン20170904
【Dll3】scskプレゼン20170904
Hirono Jumpei
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
Rakuten Group, Inc.
トラブルシューティングのあれこれ Yoshihiko kamata
トラブルシューティングのあれこれ Yoshihiko kamata
Rakuten Group, Inc.
受託開発でテストファーストしたらXXXを早期発見できてハイアジリティになったはなし
受託開発でテストファーストしたらXXXを早期発見できてハイアジリティになったはなし
terahide
マイクロサービスとは.pptx
マイクロサービスとは.pptx
ssuserdd7ea9
AWS Cognito makes old web apps available from anywhere
AWS Cognito makes old web apps available from anywhere
Yukiya Hayashi
Empirical Project Monitorの紹介
Empirical Project Monitorの紹介
Makoto SAKAI
プログラミングLT 2019 Summer
プログラミングLT 2019 Summer
Yusuke Mori
Redmineの情報を自分好みに見える化した話
Redmineの情報を自分好みに見える化した話
ToshiharuSakai
はじめてのアジャイル
はじめてのアジャイル
Yoshihito Kuranuki
財務分析勉強会挨拶
財務分析勉強会挨拶
oranie Narut
失敗しないパッケージ導入1
失敗しないパッケージ導入1
小島 規彰
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
Koichi ITO
Prig 残業泥棒 - 01. プロローグ 120121 杉浦
Prig 残業泥棒 - 01. プロローグ 120121 杉浦
urasandesu
Handii スタートアップエンジニア開発課題LT day2
Handii スタートアップエンジニア開発課題LT day2
Yusuke Mori
Similar to 静的解析、しましょうか。
(20)
cecservices.pdf
cecservices.pdf
cec_services.pdf
cec_services.pdf
cecservices
cecservices
cecservices
cecservices
cec_Services.pdf
cec_Services.pdf
【Dll3】scskプレゼン20170904
【Dll3】scskプレゼン20170904
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
トラブルシューティングのあれこれ Yoshihiko kamata
トラブルシューティングのあれこれ Yoshihiko kamata
受託開発でテストファーストしたらXXXを早期発見できてハイアジリティになったはなし
受託開発でテストファーストしたらXXXを早期発見できてハイアジリティになったはなし
マイクロサービスとは.pptx
マイクロサービスとは.pptx
AWS Cognito makes old web apps available from anywhere
AWS Cognito makes old web apps available from anywhere
Empirical Project Monitorの紹介
Empirical Project Monitorの紹介
プログラミングLT 2019 Summer
プログラミングLT 2019 Summer
Redmineの情報を自分好みに見える化した話
Redmineの情報を自分好みに見える化した話
はじめてのアジャイル
はじめてのアジャイル
財務分析勉強会挨拶
財務分析勉強会挨拶
失敗しないパッケージ導入1
失敗しないパッケージ導入1
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
Prig 残業泥棒 - 01. プロローグ 120121 杉浦
Prig 残業泥棒 - 01. プロローグ 120121 杉浦
Handii スタートアップエンジニア開発課題LT day2
Handii スタートアップエンジニア開発課題LT day2
Recently uploaded
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
Recently uploaded
(8)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
静的解析、しましょうか。
1.
2.
自己紹介 株式会社ミクシィ たんぽぽチームリーダ
広木大地 @hiroki_daichi やっていること *刺身にたんぽぽ *サービスアーキテクト *非機能要件全般 *サービスのトラブル *安くて速くて安心
3.
静的解析、 しましょうか。 せいてきかいせき
4.
静的解析 ってなんなんだよ。
5.
静的 性的
6.
コードレビュー自動化 刺身にたんぽぽ おかせない
ソフトウェア測定
7.
Technical Debt 技術的負債
最初のコードを出荷することは、借金をしに行くことと同じである。小さな負債は、代価を得て即座に書き直す機会を得るまでの開発を加速する。 危険なのは、借金が返済されなかった場合である。
8.
複雑な依存関係 最長不倒関数 王様モジュール
9.
01 ● ● ● ● ● ● ● 技術的負債の見える化
Inspect-package
10.
95 計測できないものは 改善できない。
11.
最長不倒関数 Node(2) Node(3)
If( is_foo()) do_var() Edge(4) Node(1) Node(5) Edge(2) start do_hoge() end Edge(1) Edge(3) Edge(5) Node(4) Edge(6) 分岐、ループなど関数をグラフ構造としてとらえて、 その複雑さを測定する。 (Cyclomatic Complexity)
12.
王様モジュール good bad
Module Module より大きく、より多くの人によって 差分が加えられているコードを探して計測する。
13.
複雑な依存 good good
bad B B B E A A A C C C F D D D G より多くに依存しながら、より多くに依存されている コンポーネントを悪い依存として測定する。
14.
計測 measurement 2011年2月某日
サービスの結合性に関するポリシーは決めた これから順次リファクタリングが必要 あの日以来、すべてがスコアリングされた。
15.
依存されている度 サービス全体への負債 依存している度
$ inspect-package Mixi::TheServiceMayUKnow -type ALLSCORE Ca Ce CC SRP couple cohesion 240 173 261 527 41520 138335 最長不倒関数度 コンポーネント内の負債 王様モジュール指数
16.
王様モジュールをレビュー $inspect-package Mixi/TheServiceUMayKnow
-type SRP score( 123):rev( 98):user( 16):lines(1331) Mixi/TheServiceUMayKnow.pm score( 107):rev( 80):user( 18):lines(1323) Mixi/TheServiceUMayKnow/Object.pm score( 47):rev( 40):user( 5):lines( 659) Mixi/TheServiceUMayKnow/Admin/Ad.pm 1300行で16人がいじってるけど、 そろそろ責務がいりまじってるんじゃない?
17.
最長不倒関数をレビュー $inspect-package Mixi::TheServiceUMayKnow
-type CC 59 get_status lib/Mixi/TheServiceUMayKnow/Analytics.pm 46 summarize lib/Mixi/TheServiceUMayKnow/Counter/Summarizer.pm 44 _select_own_page lib/Mixi/TheServiceUMayKnow/Feed.pm このモジュールのget_statusが複雑に なりすぎてて、テストケース網羅できないほどだよ。
18.
嫌だわ、早くすりつぶさないと
19.
せいてきかいせき 静的解析、 しましょうか。
20.
くわしいことは WEB+DB Press
62のPerl Hackers Hubにも載ってます http://gihyo.jp/dev/serial/01/perl-hackers-hub/000801
Download now