静的解析、しましょうか。
自己紹介株式会社ミクシィたんぽぽチームリーダ広木大地@hiroki_daichiやっていること*刺身にたんぽぽ*サービスアーキテクト*非機能要件全般*サービスのトラブル*安くて速くて安心
静的解析、しましょうか。せいてきかいせき
静的解析ってなんなんだよ。
静的性的
コードレビュー自動化刺身にたんぽぽおかせないソフトウェア測定
Technical Debt技術的負債最初のコードを出荷することは、借金をしに行くことと同じである。小さな負債は、代価を得て即座に書き直す機会を得るまでの開発を加速する。危険なのは、借金が返済されなかった場合である。
複雑な依存関係最長不倒関数王様モジュール
01●        ●         ●         ●      ●        ●        ●     技術的負債の見える化Inspect-package
95計測できないものは改善できない。
最長不倒関数Node(2)Node(3)If( is_foo())do_var()Edge(4)Node(1)Node(5)Edge(2)startdo_hoge()endEdge(1)Edge(3)Edge(5)Node(4)Edge(6)分岐、ループなど関数をグラフ構造としてとらえて、その複雑さを測定する。(Cyclomatic Complexity)
王様モジュールgoodbadModuleModuleより大きく、より多くの人によって差分が加えられているコードを探して計測する。
複雑な依存goodgoodbadBBBEAAACCCFDDDGより多くに依存しながら、より多くに依存されているコンポーネントを悪い依存として測定する。
計測measurement2011年2月某日サービスの結合性に関するポリシーは決めたこれから順次リファクタリングが必要あの日以来、すべてがスコアリングされた。
依存されている度サービス全体への負債依存している度$ inspect-package Mixi::TheServiceMayUKnow -type ALLSCORE      Ca      Ce      CC         SRP          couple        cohesion240     173     261         527           41520          138335最長不倒関数度コンポーネント内の負債王様モジュール指数
王様モジュールをレビュー$inspect-package Mixi/TheServiceUMayKnow -type SRPscore(  123):rev(  98):user(  16):lines(1331)   Mixi/TheServiceUMayKnow.pmscore(  107):rev(  80):user(  18):lines(1323)   Mixi/TheServiceUMayKnow/Object.pmscore(   47):rev(  40):user(   5):lines( 659)   Mixi/TheServiceUMayKnow/Admin/Ad.pm1300行で16人がいじってるけど、そろそろ責務がいりまじってるんじゃない?
最長不倒関数をレビュー$inspect-package Mixi::TheServiceUMayKnow -type CC          59      get_status   lib/Mixi/TheServiceUMayKnow/Analytics.pm 46      summarize         lib/Mixi/TheServiceUMayKnow/Counter/Summarizer.pm44      _select_own_page lib/Mixi/TheServiceUMayKnow/Feed.pm このモジュールのget_statusが複雑になりすぎてて、テストケース網羅できないほどだよ。
嫌だわ、早くすりつぶさないと
せいてきかいせき静的解析、しましょうか。
くわしいことはWEB+DB Press 62のPerl Hackers Hubにも載ってますhttp://gihyo.jp/dev/serial/01/perl-hackers-hub/000801

More Related Content

PDF
C言語静的解析ツールと Ruby 1.9 trunk
PPTX
より良いコードを書くための
ODP
小町のレス数が予測できるか試してみた
PDF
地域の魅力を伝えるツアーガイドAI
PDF
Railsプロジェクトを成功させるために現場ができること -Railsdevcon2010
ODP
継続的デリバリー読書会に寄せて
PDF
VentureCafe_第2回:SIerでのキャリアパスを考える_ござ先輩発表資料 V1.0
PDF
cec_Services.pdf
C言語静的解析ツールと Ruby 1.9 trunk
より良いコードを書くための
小町のレス数が予測できるか試してみた
地域の魅力を伝えるツアーガイドAI
Railsプロジェクトを成功させるために現場ができること -Railsdevcon2010
継続的デリバリー読書会に寄せて
VentureCafe_第2回:SIerでのキャリアパスを考える_ござ先輩発表資料 V1.0
cec_Services.pdf

Similar to 静的解析、しましょうか。 (20)

PDF
cecservices.pdf
PDF
cecservices
PDF
cecservices
PDF
cecservices.pdf
PDF
cec_services.pdf
PDF
【Dll3】scskプレゼン20170904
PDF
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
PDF
トラブルシューティングのあれこれ Yoshihiko kamata
PDF
受託開発でテストファーストしたらXXXを早期発見できてハイアジリティになったはなし
PPTX
マイクロサービスとは.pptx
PDF
AWS Cognito makes old web apps available from anywhere
PDF
Empirical Project Monitorの紹介
PDF
プログラミングLT 2019 Summer
PDF
Redmineの情報を自分好みに見える化した話
PPT
はじめてのアジャイル
PDF
財務分析勉強会挨拶
PDF
失敗しないパッケージ導入1
PDF
AIと協働する技術 コンテキストとの向き合い方 - Technologies for Collaborating with AI: Approaches...
PDF
ソフトウェア開発の現場風景
PPTX
Prig 残業泥棒 - 01. プロローグ 120121 杉浦
cecservices.pdf
cecservices
cecservices
cecservices.pdf
cec_services.pdf
【Dll3】scskプレゼン20170904
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
トラブルシューティングのあれこれ Yoshihiko kamata
受託開発でテストファーストしたらXXXを早期発見できてハイアジリティになったはなし
マイクロサービスとは.pptx
AWS Cognito makes old web apps available from anywhere
Empirical Project Monitorの紹介
プログラミングLT 2019 Summer
Redmineの情報を自分好みに見える化した話
はじめてのアジャイル
財務分析勉強会挨拶
失敗しないパッケージ導入1
AIと協働する技術 コンテキストとの向き合い方 - Technologies for Collaborating with AI: Approaches...
ソフトウェア開発の現場風景
Prig 残業泥棒 - 01. プロローグ 120121 杉浦
Ad

Recently uploaded (10)

PPTX
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
PDF
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
PDF
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...
PDF
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ
PDF
Yamaha DT200WR Real Enduro ENGINE CYLINDER TRANSMISSION
PPTX
Cosense - 整えずして完全勝利!Cosenseが他のwikiツールと違う理由
PPTX
Vibe Codingを触って感じた現実について.pptx .
PDF
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
PDF
20250823_IoTLT_vol126_kitazaki_v1___.pdf
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...
ココロ分解帳|感情をやさしく分解し自分と他者を理解するためのモバイルノートアプリ
Yamaha DT200WR Real Enduro ENGINE CYLINDER TRANSMISSION
Cosense - 整えずして完全勝利!Cosenseが他のwikiツールと違う理由
Vibe Codingを触って感じた現実について.pptx .
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
20250823_IoTLT_vol126_kitazaki_v1___.pdf
Ad

静的解析、しましょうか。