2011年12月4日日曜日

読書ノート: The Elements of UML 2.0 Style


この本には、より理解しやすいUMLモデルを書くためのTipsがまとめられている。一つ一つのTipは短く、長いTipでも1ページに満たないほど。

タイトルにも”Style”という言葉が入っている通り、UMLの書き方(関連の書き方、要素の名の付け方等)に関するTips集で、設計に関してのTips(どのようにクラスに責務を割り当てるべきか、クラス間の関連はどうするべきか等)ではないのが、本書の特徴。

グループで働いているとき、コミュニケーションの道具としてUMLモデルは利用されるため、モデルの資料としての読みやすさは、モデルの品質と同じほど重要だと思う。

サンプルとして各種UML図が出てくるため、UMLの勉強にも良い。

2011年11月21日月曜日

find-dired + dired-do-query-replace-regexpの便利な利用方法

emacsを使い始めて早や数年。このパワフルなエディタをようやく少しだけ使いこなせてきたかなと思う今日この頃。未だ2ヶ月に1度ほど、emacsを利用していて感動的な程便利な機能を発見する。いつまで経っても新しい発見のあるemacsの奥深さが、また楽しい。

今回、気づいた便利な機能は、find-diredコマンドとdired-do-query-replace-regexpコマンドの合わせ技。

find-diredは、findコマンドを実行して、コマンドの実行結果のバッファをDiredモードで開くコマンド。

dired-do-query-replace-regexpはdiredでマークしたファイルに対して、query-replace-regexpコマンドを実行してくれるコマンド。

query-replace-rexexp対象のファイルが複数あり、異なるディレクトリに散在しているときは、find-diredと組み合わせると、アッと言う間に文字列の置換ができてしまう。

例えば、fileA、fileB、fileCというファイルが、異なるディレクトリにあり3ファイルに含まれる文字列を置換したい場合。まず、find-diredをrootディレクトリに対して"-name"オプションで実行し、fileA、fileB、fileCを含むようにdiredを表示する。そこで、ファイルをマーク(diredのバッファで 'm'キーを押下)して、'Q'キーを押すとマークしたファイルの文字列をクエリ形式で置換できる。
 
   root
   └───src
           ├───client
           │         └───system_web
           │                     └───fileB
           ├───images
           │         └───fileA
           └───fileC


find-diredの便利さは、複数のディレクトリにファイルが散在している場合でも、それらのファイルが仮想的に1つのディレクトリ以下にあるものとして扱えること。