misc.log

日常茶飯事とお仕事と

NDepend

たまたまこのダイアリーの「おとなり」リンクで飛んだ先(http://d.hatena.ne.jp/coma2n/20080229/1204278767)で、.NETアセンブリの依存関係を抽出するツール、NDependの存在を知った。先日、デブサミでLattixというツールを見て、これいいなぁ、とおもっていたのだが、それに近い出力をしてくれるようだったので、早速ダウンロード。

製品版と体験版があるようで、製品版はそれなりの値段。とりあえず体験版で。

インストール、というのは無いのだが、起動してから、Visual StudioとReflectorへのアドインをインストールするボタンが登場する。Visual Studioは...うーん。さすがに2003はもう対象じゃないのね。とりあえずこのまま使おう。

Ndepend
http://www.ndepend.com/Default.aspx

下図は、とりあえず今扱っている案件のソース依存関係をマトリクス表示させた状態(あんまり拡大するとネタがわかっちゃうので、このサイズで...)


今扱っている案件、ひじょーに良くない傾向を持っていて

  • 共通と名のつくライブラリに、共通でないものが多数入っている→業務要件の変更で共通ライブラリに頻繁に変更が入る。
  • 共通と名のつくライブラリ同士が密に結合しあっている→うかつに修正すると、意外なところから問題が..。
  • 上記で「意外」とかいているとおり、互いの依存関係についてまとめたり整理している資料がないし、全体を掌握している人も居ない。

最後の問題については、昨年夏まで、ある担当者が依存関係をExcelに「手で」まとめていたのだけれど、さすがにそんなことをやっている時間はなく、しょうがないので

  • 修正の時は自分たちで勝手に調べろ
  • 全ソースのビルドやテスト用リリースビルドの際は、細かい依存を考えなくていいように大きな固まりで一気にやる

という方針で今まで開発を進めてきたわけ。でも、カットオーバーしたらそうもいっていられない。リリース物は極力サイズを小さく、って方針が客先から要望も出ているので、「直したところと関係部分だけをリリース」という運用を行わないといけない。本来なら、共通部分の方針や構造も含め、根底から直せ!なんですが、まぁお馬鹿さん達は痛い目に遭わないと問題に気づかないわけで、かれこれ1年近く、言っても嫌われ言っても嫌われ...という状態で来たわけです(自分たちは正しいと思って採用した方針らしいので、指摘されると嫌われるわけです)。
まぁバカが痛い目に遭うのは知ったこっちゃ無いのですが、一応、こちらの会社を名乗って仕事しているわけで、変な評判をつけられても仕方ないので、そこは裏側からきっちりサポートしてやんなきゃな、ってなわけで、依存関係を「バカでも洗い出して、グラフィカルに見て理解できる」ツールを探していたという..。


そんな低い次元から来た我々ですが、このツールはそれにしてもよさげです。
レポートは追々書いていくということで、とりあえずしばらく使ってみます。

できれば購入したいな...と。